{ "components": { "headers": { "location": { "description": "A URL to access the newly created resource.", "example": "/malware-policies/post-malware-policies", "schema": { "type": "string" }, "x-akamai": { "file-path": "headers/location.yaml" } } }, "parameters": { "config-id-path": { "description": "A unique identifier for each configuration.", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, "custom-deny-id-path": { "description": "A unique identifier for each custom deny action.", "in": "path", "name": "customDenyId", "required": true, "schema": { "example": "112231", "type": "string" }, "x-akamai": { "file-path": "parameters/custom-deny-id-path.yaml" } }, "detail-query": { "description": "When `true`, the results contain detailed information on versions. With the default `false`, the results contain summary information on versions.", "in": "query", "name": "detail", "schema": { "default": false, "example": true, "type": "boolean" }, "x-akamai": { "file-path": "parameters/detail-query.yaml" } }, "include-child-object-name-query": { "description": "Specify whether to return the object name in the payload, true` by default.", "in": "query", "name": "includeChildObjectName", "schema": { "default": true, "example": false, "type": "boolean" }, "x-akamai": { "file-path": "parameters/include-child-object-name-query.yaml" } }, "include-hostnames-query": { "description": "If `true`, include the list of hostnames protected by this security configuration in the production network. If `false`, exclude the list of hostnames protected by this security configuration in the production network.", "in": "query", "name": "includeHostnames", "required": false, "schema": { "default": false, "example": false, "type": "boolean" }, "x-akamai": { "file-path": "parameters/include-hostnames-query.yaml" } }, "malware-policy-id-path": { "description": "A unique identifier for each malware policy.", "in": "path", "name": "malwarePolicyId", "required": true, "schema": { "example": 112231, "type": "integer" }, "x-akamai": { "file-path": "parameters/malware-policy-id-path.yaml" } }, "page-query": { "description": "The index of the result page. If the value is `-1`, then pagination is ignored. The default value is `1`.", "in": "query", "name": "page", "schema": { "default": 1, "example": 2, "type": "integer" }, "x-akamai": { "file-path": "parameters/page-query.yaml" } }, "page-size-query": { "description": "The number of items on each result page. The default value is `25`.", "in": "query", "name": "pageSize", "schema": { "default": 25, "example": 10, "type": "integer" }, "x-akamai": { "file-path": "parameters/page-size-query.yaml" } }, "policy-id-query": { "description": "Specifies the security policy to filter match targets.", "in": "query", "name": "policyId", "schema": { "example": "abc_123456", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-query.yaml" } }, "rate-policy-id-path": { "description": "A unique identifier for each rate policy.", "in": "path", "name": "ratePolicyId", "required": true, "schema": { "example": 112231, "type": "integer" }, "x-akamai": { "file-path": "parameters/rate-policy-id-path.yaml" } }, "reputation-profile-id-path": { "description": "A unique identifier for each reputation profile.", "in": "path", "name": "reputationProfileId", "required": true, "schema": { "example": 112231, "type": "integer" }, "x-akamai": { "file-path": "parameters/reputation-profile-id-path.yaml" } }, "rule-id-path": { "description": "A unique identifier for rule.", "in": "path", "name": "ruleId", "required": true, "schema": { "example": 699989, "type": "integer" }, "x-akamai": { "file-path": "parameters/rule-id-path.yaml" } }, "search-hostname": { "description": "Get results by hostname.", "in": "query", "name": "hostname", "schema": { "example": "www.example.com", "type": "string" }, "x-akamai": { "file-path": "parameters/search-hostname.yaml" } }, "search-query": { "description": "Filter results by name, description, or ID. You can match on substrings.", "in": "query", "name": "search", "schema": { "example": "SQL Injection", "type": "string" }, "x-akamai": { "file-path": "parameters/search-query.yaml" } }, "target-id-path": { "description": "A unique identifier for each match target.", "in": "path", "name": "targetId", "required": true, "schema": { "example": 112231, "type": "integer" }, "x-akamai": { "file-path": "parameters/target-id-path.yaml" } }, "url-protection-policy-id-path": { "description": "A unique identifier for each URL protection policy.", "in": "path", "name": "urlProtectionPolicyId", "required": true, "schema": { "example": 112231, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/url-protection-policy-id-path.yaml" } }, "version-number-path": { "description": "A unique identifier for each version of a configuration.", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } }, "responses": { "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "400-client-read-errors": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } }, "403-client-write-errors": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } }, "404-client-read-errors": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "412": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is in use and cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 412, "title": "Precondition Failed", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/PRECONDITION-FAILED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Precondition failed](https://techdocs.akamai.com/application-security/reference/412).", "x-akamai": { "file-path": "errors/412.yaml" } }, "500-server-errors": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "schemas": { "attack-payload-logging": { "additionalProperties": false, "description": "The settings for attack payload logging.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "attack-payload-logging-get-200": { "additionalProperties": false, "description": "The GET Response JSON for attack payload logging.", "properties": { "enabled": { "description": "Whether attack payload logging is enabled.", "type": "boolean" }, "requestBody": { "additionalProperties": false, "description": "The settings for how Akamai's network logs attack payloads in request bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "responseBody": { "additionalProperties": false, "description": "The settings for how Akamai's network logs attack payloads in response bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } } }, "required": [ "enabled", "requestBody", "responseBody" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging-get-200.yaml" } }, "attack-payload-logging-put": { "additionalProperties": false, "description": "The PUT Request JSON for attack payload logging.", "properties": { "enabled": { "description": "Whether attack payload logging is enabled.", "type": "boolean" }, "requestBody": { "additionalProperties": false, "description": "Settings for request body.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "responseBody": { "additionalProperties": false, "description": "Settings for response body.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } } }, "required": [ "enabled", "requestBody", "responseBody" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging-put.yaml" } }, "attack-payload-logging-put-200": { "additionalProperties": false, "description": "The PUT Response JSON for attack payload logging.", "properties": { "enabled": { "description": "Whether attack payload logging is enabled.", "type": "boolean" }, "requestBody": { "additionalProperties": false, "description": "The settings for how our network logs attack payloads in request bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "responseBody": { "additionalProperties": false, "description": "The settings for how our network logs attack payloads in response bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } } }, "required": [ "enabled", "requestBody", "responseBody" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging-put-200.yaml" } }, "bypass-network-lists-get": { "additionalProperties": false, "description": "Contains bypass network lists for the specified configuration version.", "properties": { "networkLists": { "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" } }, "required": [ "networkLists" ], "type": "object", "x-akamai": { "file-path": "schemas/bypass-network-lists-get.yaml" } }, "bypass-network-lists-put": { "additionalProperties": false, "description": "Contains bypass network lists for the specified configuration version.", "properties": { "networkLists": { "description": "Contains a list of network list IDs.", "items": { "description": "List of network lists. The values are the network lists' IDs.", "type": "string" }, "type": "array" } }, "required": [ "networkLists" ], "type": "object", "x-akamai": { "file-path": "schemas/bypass-network-lists-put.yaml" } }, "client-reputation-condition": { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } }, "config-clone-post": { "additionalProperties": false, "description": "Specifies the settings for a new clone of a security configuration.", "properties": { "createFromVersion": { "description": "The configuration version to clone from.", "type": "integer" }, "ruleUpdate": { "description": "Specifies whether the application rules should be migrated to the latest version.", "type": "boolean" } }, "required": [ "createFromVersion", "ruleUpdate" ], "type": "object", "x-akamai": { "file-path": "schemas/config-clone-post.yaml" } }, "config-get": { "additionalProperties": false, "description": "Contains details about a security configuration.", "properties": { "description": { "description": "__Read-only__ Describes the security configuration.", "readOnly": true, "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the security configuration.", "readOnly": true, "type": "integer" }, "latestVersion": { "description": "__Read-only__ The latest version of the security configuration.", "readOnly": true, "type": "integer" }, "name": { "description": "__Read-only__ The security configuration name.", "readOnly": true, "type": "string" }, "productionHostnames": { "description": "__Read-only__ The list of hostnames protected by this security configuration in the production network.", "items": { "type": "string" }, "readOnly": true, "type": "array" }, "productionVersion": { "description": "__Read-only__ The latest security configuration version active in the production network.", "readOnly": true, "type": "integer" }, "stagingVersion": { "description": "__Read-only__ The latest security configuration version active in the staging network.", "readOnly": true, "type": "integer" } }, "required": [ "id", "latestVersion", "name" ], "type": "object", "x-akamai": { "file-path": "schemas/config-get.yaml" } }, "config-post": { "additionalProperties": false, "description": "Specifies the details of a security config.", "properties": { "contractId": { "description": "Contract ID.", "type": "string" }, "createFrom": { "additionalProperties": false, "description": "Contains details about a source configuration and version for cloning a new security configuration.", "properties": { "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "version": { "description": "The configuration version to clone from.", "type": "integer" } }, "required": [ "configId", "version" ], "type": "object" }, "description": { "description": "Describes the security configuration.", "type": "string" }, "groupId": { "description": "Group ID.", "type": "integer" }, "hostnames": { "description": "List of hostnames to be added to the configuration.", "items": { "type": "string" }, "type": "array" }, "name": { "description": "The name you assigned to the security configuration.", "type": "string" } }, "required": [ "name", "description", "hostnames" ], "type": "object", "x-akamai": { "file-path": "schemas/config-post.yaml" } }, "config-rename": { "additionalProperties": false, "description": "Contains details of a security configuration.", "properties": { "description": { "description": "Describes the security configuration.", "type": "string" }, "name": { "description": "The name you assigned to the security configuration.", "type": "string" } }, "required": [ "name" ], "type": "object", "x-akamai": { "file-path": "schemas/config-rename.yaml" } }, "configs-get": { "additionalProperties": false, "description": "Specifies the details of a security config.", "properties": { "configurations": { "description": "A list of security configurations.", "items": { "additionalProperties": false, "description": "Contains details about a security configuration.", "properties": { "description": { "description": "__Read-only__ Describes the security configuration.", "readOnly": true, "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the security configuration.", "readOnly": true, "type": "integer" }, "latestVersion": { "description": "__Read-only__ The latest version of the security configuration.", "readOnly": true, "type": "integer" }, "name": { "description": "__Read-only__ The security configuration name.", "readOnly": true, "type": "string" }, "productionHostnames": { "description": "__Read-only__ The list of hostnames protected by this security configuration in the production network.", "items": { "type": "string" }, "readOnly": true, "type": "array" }, "productionVersion": { "description": "__Read-only__ The latest security configuration version active in the production network.", "readOnly": true, "type": "integer" }, "stagingVersion": { "description": "__Read-only__ The latest security configuration version active in the staging network.", "readOnly": true, "type": "integer" } }, "required": [ "id", "latestVersion", "name" ], "type": "object", "x-akamai": { "file-path": "schemas/config-get.yaml" } }, "type": "array" } }, "required": [ "configurations" ], "type": "object", "x-akamai": { "file-path": "schemas/configs-get.yaml" } }, "cookie-settings": { "additionalProperties": false, "description": "Contains the cookie settings for a configuration.", "properties": { "cookieDomain": { "description": "Choose the type of domain. The default recommended type is `automatic`. Otherwise, choose `fqdn` to use the current Fully Qualified Domain name, `legacy` to use the original way in which the domain was selected, or `psl` to use the public suffix list to identify a private domain.", "enum": [ "automatic", "fqdn", "legacy", "psl" ], "type": "string" }, "useAllSecureTraffic": { "description": "If all of your traffic uses HTTPS, specify `true`. This option sets the Secure flag on all security product cookies, which are then only included with HTTPS traffic. It also adds `SameSite=None` to most bot management cookies, ensuring that recent browser versions submit the cookies with protected requests. The `SameSite=None` cookie setting is necessary for site architectures that involve cross-domain form submission or inclusion of cross-domain iframes.", "type": "boolean" } }, "type": "object", "x-akamai": { "file-path": "schemas/cookie-settings.yaml" } }, "custom-denies": { "additionalProperties": false, "description": "Contains details about custom deny actions.", "properties": { "ratePolicies": { "description": "A list of custom deny actions in this configuration version.", "items": { "additionalProperties": false, "description": "Contains details about a custom deny action.", "properties": { "description": { "description": "Describes the custom deny action.", "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the custom deny action.", "readOnly": true, "type": "string" }, "name": { "description": "The name you assigned to the custom deny action.", "type": "string" }, "parameters": { "description": "Describes the custom deny parameters.", "items": { "additionalProperties": false, "description": "Contains a list of parameters for the custom deny action. These parameters are not the same type of parameters you usually include in the path of a request.", "properties": { "displayName": { "description": "The description of the custom deny parameter.", "type": "string" }, "name": { "description": "The custom deny parameter you choose instead of the Akamai default response. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "enum": [ "response_status_code", "prevent_browser_cache", "response_content_type", "response_body_content", "response_header_name", "response_header_value", "custom_deny_hostname", "custom_deny_path", "include_true_ip", "include_reference_id" ], "type": "string" }, "value": { "description": "The value you assign to the custom deny parameter. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "name", "parameters" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-deny.yaml" } }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/custom-denies.yaml" } }, "custom-deny": { "additionalProperties": false, "description": "Contains details about a custom deny action.", "properties": { "description": { "description": "Describes the custom deny action.", "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the custom deny action.", "readOnly": true, "type": "string" }, "name": { "description": "The name you assigned to the custom deny action.", "type": "string" }, "parameters": { "description": "Describes the custom deny parameters.", "items": { "additionalProperties": false, "description": "Contains a list of parameters for the custom deny action. These parameters are not the same type of parameters you usually include in the path of a request.", "properties": { "displayName": { "description": "The description of the custom deny parameter.", "type": "string" }, "name": { "description": "The custom deny parameter you choose instead of the Akamai default response. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "enum": [ "response_status_code", "prevent_browser_cache", "response_content_type", "response_body_content", "response_header_name", "response_header_value", "custom_deny_hostname", "custom_deny_path", "include_true_ip", "include_reference_id" ], "type": "string" }, "value": { "description": "The value you assign to the custom deny parameter. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "name", "parameters" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-deny.yaml" } }, "custom-rule": { "additionalProperties": false, "description": "Contains settings for a custom rule.", "properties": { "conditions": { "description": "Contains the details about the condition that triggers the custom rule.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to the custom rule.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ] }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "nameWildcard": { "description": "Whether the provided header `name` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The type of condition. See [CustomRule condition type values](https://techdocs.akamai.com/application-security/reference/condition-type-values).", "enum": [ "cookieMatch", "extensionMatch", "filenameMatch", "ipMatch", "pathMatch", "requestHeaderMatch", "requestMethodMatch", "requestProtocolVersionMatch", "uriQueryMatch", "headerOrderMatch", "argsPostMatch", "argsPostNamesMatch", "clientCertPresentMatch", "clientCertValidMatch", "clientTlsFingerprintMatch", "hostMatch", "ipAddressMatch", "geoMatch", "asNumberMatch", "clientListMatch" ], "type": "string" }, "useXForwardForHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This only applies when the `type` is `ipAddressMatch`, `geoMatch`, `asNumberMatch`, or `clientListMatch`.", "type": "boolean" }, "value": { "description": "The value that triggers the condition when matched or not matched. Specify a string for the `requestProtocolVersionMatch`, `clientCertPresentMatch`, `clientCertValidMatch`, and `headerOrderMatch` conditions. For all other conditions, specify an array of strings.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ], "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueExactMatch": { "description": "Whether to consider only exact matches of the header `value`.", "type": "boolean" }, "valueIgnoreSegment": { "description": "Whether to ignore path segments when matching. This only applies when the `type` is `pathMatch`.", "type": "boolean" }, "valueNormalize": { "description": "Whether to normalize the value of the header when matching. This only applies to type values of `extensionMatch` and `pathMatch`.", "type": "boolean" }, "valueRecursive": { "description": "Whether to use recursion when matching. When `false`, you can only match on the filename in the root folder. This only applies when the condition `type` is `filenameMatch`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies when the condition `type` is `requestHeaderMatch`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object" }, "type": "array" }, "description": { "description": "The custom rule description.", "type": "string" }, "effectiveTimePeriod": { "additionalProperties": false, "description": "The time period during which the custom rule is active.", "properties": { "endDate": { "description": "An ISO 8601 timestamp that sets when the rule expires or deactivates.", "type": "string" }, "startDate": { "description": "An ISO 8601 timestamp that sets when the rule activates.", "format": "date-time", "type": "string" }, "status": { "description": "The current status of the rule based on its `startDate` and `endDate`. By default, rules are active for 30 days. When `ACTIVE`, the rule triggers when conditions are met. When `INACTIVE`, the rule doesn't trigger. When `EXPIRING`, the rule still triggers because it's still active until its specified expiration date. When the rule's status is `EXPIRED`, the rule is inactive and doesn't trigger. If your rule expires and you want to use it again, make a PUT request to [Modify a custom rule](https://techdocs.akamai.com/application-security/reference/put-config-custom-rule) with the new dates you'd like the rule to be active.", "enum": [ "active", "inactive", "expiring", "expired" ], "type": "string" } }, "required": [ "endDate", "startDate" ], "type": "object" }, "id": { "description": "Uniquely identifies the rule.", "type": "integer" }, "inspectRequest": { "description": "Whether to inspect the HTTP request for unstructured custom rules.", "type": "boolean" }, "inspectResponse": { "description": "Whether to inspect the HTTP response for unstructured custom rules.", "type": "boolean" }, "loggingOptions": { "description": "The specific conditions to be logged.", "items": { "additionalProperties": false, "description": "Condition to be logged.", "properties": { "id": { "description": "The unique identifier for each logging option. See [Logging option values](https://techdocs.akamai.com/application-security/reference/logging-option-values).", "enum": [ "CLIENT_TLS_FINGERPRINT_MATCH", "HEADER_ORDER_MATCH", "REQUEST_HEADER_MATCH", "COOKIE_MATCH", "URI_QUERY_MATCH", "ARGS_POST_MATCH" ], "type": "string" }, "name": { "description": "A description of the logging option type.", "type": "string" }, "value": { "description": "The value on which to match when determining whether to log the custom rule condition.", "type": "string" } }, "required": [ "id" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-option.yaml" } }, "type": "array" }, "metadata": { "description": "The metadata you provided for unstructured custom rules.", "type": "string" }, "name": { "description": "The custom rule name.", "type": "string" }, "operation": { "description": "Specify `AND` logic to require all conditions, or `OR` logic to require at least one condition to match.", "enum": [ "AND", "OR" ], "type": "string" }, "ruleActivated": { "description": "Whether the rule is active in the configuration.", "type": "boolean" }, "samplingRate": { "description": "The portion of traffic to sample, expressed as a percent.", "maximum": 100, "minimum": 0, "type": "integer" }, "stagingOnly": { "default": false, "description": "Whether to show traffic from only the staging network, or all traffic. The default setting is `false` and only shows in the response when `true`. ", "type": "boolean" }, "structured": { "description": "Whether you created the rule with the structured custom rule builder or free-form XML. This needs to be `true`.", "type": "boolean" }, "tag": { "description": "The list of labels you assigned to the custom rule.", "items": { "type": "string" }, "type": "array" }, "version": { "description": "The custom rule version.", "type": "integer" } }, "required": [ "name", "operation", "structured" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-rule.yaml" } }, "custom-rules": { "additionalProperties": false, "description": "Describes the custom rule's basic information.", "properties": { "customRules": { "description": "Describes basic information about a custom rule, such as activation status or time the rule is active.", "items": { "additionalProperties": false, "properties": { "effectiveTimePeriod": { "additionalProperties": false, "description": "The time period during which the custom rule is active.", "properties": { "endDate": { "description": "An ISO 8601 timestamp that sets when the rule expires or deactivates.", "type": "string" }, "startDate": { "description": "An ISO 8601 timestamp that sets when the rule activates.", "format": "date-time", "type": "string" }, "status": { "description": "The current status of the rule based on its `startDate` and `endDate`. By default, rules are active for 30 days. When `ACTIVE`, the rule triggers when conditions are met. When `INACTIVE`, the rule doesn't trigger. When `EXPIRING`, the rule still triggers because it's still active until its specified expiration date. When the rule's status is `EXPIRED`, the rule is inactive and doesn't trigger. If your rule expires and you want to use it again, make a PUT request to [Modify a custom rule](https://techdocs.akamai.com/application-security/reference/put-config-custom-rule) with the new dates you'd like the rule to be active.", "enum": [ "active", "inactive", "expiring", "expired" ], "type": "string" } }, "required": [ "endDate", "startDate" ], "type": "object" }, "id": { "description": "Uniquely identifies the custom rule.", "type": "integer" }, "link": { "description": "The link to the full custom rule definition. This member is only available when you run the [List custom rules](https://techdocs.akamai.com/application-security/reference/get-configs-custom-rules) operation.", "type": "string" }, "name": { "description": "The name you assign to the custom rule.", "type": "string" }, "samplingRate": { "description": "The portion of traffic to sample, expressed as a percent.", "maximum": 100, "minimum": 0, "type": "integer" }, "status": { "description": "The custom rule deployment status. Either `activated` if a rule is enabled in at least one security policy within a security configuration currently active in production, `published` if a rule is associated with at least one security policy in an inactive security configuration, or `unused` if a rule exists as a shared resource, but isn't associated with any security policy. This member is only available when you run the [List custom rules](https://techdocs.akamai.com/application-security/reference/get-configs-custom-rules) operation.", "enum": [ "activated", "published", "unused" ], "type": "string" }, "version": { "description": "The custom rule version.", "type": "integer" } }, "required": [ "id", "link", "name", "status", "version" ], "type": "object" }, "type": "array" } }, "required": [ "customRules" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-rules.yaml" } }, "effectiveTimePeriod": { "additionalProperties": false, "description": "The time period during which the custom rule is active.", "properties": { "endDate": { "description": "An ISO 8601 timestamp that sets when the rule expires or deactivates.", "type": "string" }, "startDate": { "description": "An ISO 8601 timestamp that sets when the rule activates.", "format": "date-time", "type": "string" }, "status": { "description": "The current status of the rule based on its `startDate` and `endDate`. By default, rules are active for 30 days. When `ACTIVE`, the rule triggers when conditions are met. When `INACTIVE`, the rule doesn't trigger. When `EXPIRING`, the rule still triggers because it's still active until its specified expiration date. When the rule's status is `EXPIRED`, the rule is inactive and doesn't trigger. If your rule expires and you want to use it again, make a PUT request to [Modify a custom rule](https://techdocs.akamai.com/application-security/reference/put-config-custom-rule) with the new dates you'd like the rule to be active.", "enum": [ "active", "inactive", "expiring", "expired" ], "type": "string" } }, "required": [ "endDate", "startDate" ], "type": "object" }, "evasive-path-match-get-200": { "additionalProperties": false, "description": "The GET Response JSON for Evasive Path Match.", "properties": { "enablePathMatch": { "description": "When enabled, evaluates requests with the following list of characters removed ` & ! $ ' ( ) + , [ ] * @ ^ \\ \"` and `.` only when it appears as a trailing character at the end of the URL.", "type": "boolean" } }, "required": [ "enablePathMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/evasive-path-match-get-200.yaml" } }, "evasive-path-match-put": { "additionalProperties": false, "description": "The PUT Request JSON for Evasive Path Match.", "properties": { "enablePathMatch": { "description": "When enabled, evaluates requests with the following list of characters removed ` & ! $ ' ( ) + , [ ] * @ ^ \\ \"` and `.` only when it appears as a trailing character at the end of the URL.", "type": "boolean" } }, "required": [ "enablePathMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/evasive-path-match-put.yaml" } }, "evasive-path-match-put-200": { "additionalProperties": false, "description": "The PUT Response JSON for Evasive Path Match.", "properties": { "enablePathMatch": { "description": "When enabled, evaluates requests with the following list of characters removed ` & ! $ ' ( ) + , [ ] * @ ^ \\ \"` and `.` only when it appears as a trailing character at the end of the URL. This feature does not match on characters that are an integral part of URL requests, like: ``` : / # & ; = ``` and `.` when it appears inside the URL string.", "type": "boolean" } }, "required": [ "enablePathMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/evasive-path-match-put-200.yaml" } }, "header-logging-get-200": { "additionalProperties": false, "description": "The GET Response JSON for HTTP Header Logging.", "properties": { "allowSampling": { "description": "Enables HTTP Header logging.", "type": "boolean" }, "cookies": { "additionalProperties": false, "description": "Settings for cookie headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "customHeaders": { "additionalProperties": false, "description": "Settings for custom headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "standardHeaders": { "additionalProperties": false, "description": "Settings for standard headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } } }, "required": [ "allowSampling", "cookies", "customHeaders", "standardHeaders" ], "type": "object", "x-akamai": { "file-path": "schemas/header-logging-get-200.yaml" } }, "header-logging-put": { "additionalProperties": false, "description": "The PUT Request JSON for HTTP Header Logging.", "properties": { "allowSampling": { "description": "Whether to enable HTTP Header logging.", "type": "boolean" }, "cookies": { "additionalProperties": false, "description": "Settings for cookie headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "customHeaders": { "additionalProperties": false, "description": "Settings for custom headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "standardHeaders": { "additionalProperties": false, "description": "Settings for standard headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } } }, "required": [ "allowSampling" ], "type": "object", "x-akamai": { "file-path": "schemas/header-logging-put.yaml" } }, "header-logging-put-200": { "additionalProperties": false, "description": "The PUT Response JSON for HTTP Header Logging.", "properties": { "allowSampling": { "description": "Enables HTTP Header logging.", "type": "boolean" }, "cookies": { "additionalProperties": false, "description": "Settings for cookie headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "customHeaders": { "additionalProperties": false, "description": "Settings for custom headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "standardHeaders": { "additionalProperties": false, "description": "Settings for standard headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } } }, "required": [ "allowSampling", "cookies", "customHeaders", "standardHeaders" ], "type": "object", "x-akamai": { "file-path": "schemas/header-logging-put-200.yaml" } }, "host-info-in-config": { "additionalProperties": false, "description": "Contains the list of hostnames available for protection and its details.", "properties": { "availableSet": { "description": "The available hosts set for the current user.", "items": { "additionalProperties": false, "description": "Contains details about the hostname and its status.", "properties": { "activeInProduction": { "description": "Whether the hostname is active in the production network.", "type": "boolean" }, "activeInStaging": { "description": "Whether the hostname is active in the staging network.", "type": "boolean" }, "arlInclusion": { "description": "Whether the hostname is Akamai Resource Locator (ARL) included.", "type": "boolean" }, "configIdInProduction": { "description": "Uniquely identifies the configuration that protects the hostname.", "nullable": true, "type": "integer" }, "configNameInProduction": { "description": "The name of the configuration that protects the hostname.", "nullable": true, "type": "string" }, "hostname": { "description": "The hostname.", "type": "string" } }, "required": [ "hostname" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-object.yaml" } }, "type": "array" }, "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "configVersion": { "description": "The security configuration version.", "type": "integer" }, "errorSet": { "description": "The requested hosts aren't available in this configuration version.", "items": { "additionalProperties": false, "properties": { "hostname": { "description": "The hostname that triggers an error.", "type": "string" }, "reason": { "description": "The reason why the hosts aren't protectable in this configuration version.", "type": "string" }, "reasonCode": { "description": "The error status code for the hostname.", "type": "integer" } }, "required": [ "reason", "reasonCode", "hostname" ], "type": "object" }, "type": "array" }, "protectARLInclusionHost": { "description": "Whether the host defined in the ARL file has legacy WAF enabled in the configuration.", "type": "boolean" }, "selectedSet": { "description": "The selected set of hostnames in this configuration version.", "items": { "additionalProperties": false, "description": "Contains details about the hostname and its status.", "properties": { "activeInProduction": { "description": "Whether the hostname is active in the production network.", "type": "boolean" }, "activeInStaging": { "description": "Whether the hostname is active in the staging network.", "type": "boolean" }, "arlInclusion": { "description": "Whether the hostname is Akamai Resource Locator (ARL) included.", "type": "boolean" }, "configIdInProduction": { "description": "Uniquely identifies the configuration that protects the hostname.", "nullable": true, "type": "integer" }, "configNameInProduction": { "description": "The name of the configuration that protects the hostname.", "nullable": true, "type": "string" }, "hostname": { "description": "The hostname.", "type": "string" } }, "required": [ "hostname" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-object.yaml" } }, "type": "array" } }, "required": [ "configId", "configVersion", "protectARLInclusionHost" ], "type": "object", "x-akamai": { "file-path": "schemas/host-info-in-config.yaml" } }, "hostname-coverage-match-target": { "additionalProperties": false, "description": "Contains details about a hostname coverage match target.", "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": "integer" }, "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": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "type": "integer" }, "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" }, "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" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-coverage-match-target.yaml" } }, "hostname-coverage-match-target-get-200": { "additionalProperties": false, "description": "Contains the hostname coverage API and website match targets defined in the security configuration version.", "properties": { "matchTargets": { "additionalProperties": false, "description": "Contains the API and website match targets defined in the security configuration version.", "properties": { "apiTargets": { "description": "The list of `api` match targets.", "items": { "additionalProperties": false, "description": "Contains details about a hostname coverage match target.", "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": "integer" }, "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": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "type": "integer" }, "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" }, "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" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-coverage-match-target.yaml" } }, "type": "array" }, "websiteTargets": { "description": "The list of `website` match targets.", "items": { "additionalProperties": false, "description": "Contains details about a hostname coverage match target.", "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": "integer" }, "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": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "type": "integer" }, "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" }, "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" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-coverage-match-target.yaml" } }, "type": "array" } }, "required": [ "apiTargets", "websiteTargets" ], "type": "object" } }, "required": [ "matchTargets" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-coverage-match-target-get-200.yaml" } }, "hostname-coverage-overlapping-get-200": { "additionalProperties": false, "description": "Describes configurations that use the same hostname, causing overlapping coverage.", "properties": { "overLappingList": { "description": "The list of configurations that overlap coverage for the hostname.", "items": { "additionalProperties": false, "description": "Contains details about an overlapping configuration.", "properties": { "configId": { "description": "The configuration ID.", "type": "integer" }, "configName": { "description": "The configuration name.", "type": "string" }, "configVersion": { "description": "The configuration version.", "type": "integer" }, "contractId": { "description": "The contract ID.", "type": "string" }, "contractName": { "description": "The contract name.", "type": "string" }, "hostnames": { "description": "List of version tags, any combination of `STAGING` and `LAST_CREATED`.", "items": { "description": "The version tag.", "enum": [ "STAGING", "LAST_CREATED" ], "type": "string" }, "type": "array" } }, "required": [ "configId", "configName", "configVersion" ], "type": "object", "x-akamai": { "file-path": "schemas/overlap-config.yaml" } }, "type": "array" } }, "required": [ "overLappingList" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-coverage-overlapping-get-200.yaml" } }, "hostname-object": { "additionalProperties": false, "description": "Contains details about the hostname and its status.", "properties": { "activeInProduction": { "description": "Whether the hostname is active in the production network.", "type": "boolean" }, "activeInStaging": { "description": "Whether the hostname is active in the staging network.", "type": "boolean" }, "arlInclusion": { "description": "Whether the hostname is Akamai Resource Locator (ARL) included.", "type": "boolean" }, "configIdInProduction": { "description": "Uniquely identifies the configuration that protects the hostname.", "nullable": true, "type": "integer" }, "configNameInProduction": { "description": "The name of the configuration that protects the hostname.", "nullable": true, "type": "string" }, "hostname": { "description": "The hostname.", "type": "string" } }, "required": [ "hostname" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-object.yaml" } }, "hostnames": { "additionalProperties": false, "description": "Contains a list of selected hostnames for the specified configuration version.", "properties": { "hostnameList": { "description": "The list of hostnames for a configuration version.", "items": { "additionalProperties": false, "properties": { "hostname": { "description": "The hostname on which to match the request.", "type": "string" } }, "required": [ "hostname" ], "type": "object" }, "type": "array" }, "mode": { "description": "The type of update you want to make to the evaluation hostname list. Use `append` to add additional hostnames, `remove` to delete the hostnames from the list, or `replace` to replace the existing list with the hostnames you pass in your request.", "enum": [ "append", "remove", "replace" ], "type": "string" } }, "required": [ "hostnameList" ], "type": "object", "x-akamai": { "file-path": "schemas/hostnames.yaml" } }, "logging-header-setting": { "additionalProperties": false, "description": "The header settings for HTTP Header Logging.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "logging-option": { "additionalProperties": false, "description": "Condition to be logged.", "properties": { "id": { "description": "The unique identifier for each logging option. See [Logging option values](https://techdocs.akamai.com/application-security/reference/logging-option-values).", "enum": [ "CLIENT_TLS_FINGERPRINT_MATCH", "HEADER_ORDER_MATCH", "REQUEST_HEADER_MATCH", "COOKIE_MATCH", "URI_QUERY_MATCH", "ARGS_POST_MATCH" ], "type": "string" }, "name": { "description": "A description of the logging option type.", "type": "string" }, "value": { "description": "The value on which to match when determining whether to log the custom rule condition.", "type": "string" } }, "required": [ "id" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-option.yaml" } }, "malware-policies": { "additionalProperties": false, "description": "Contains details about malware policies.", "properties": { "malwarePolicies": { "description": "A list of malware policies in this configuration version.", "items": { "additionalProperties": false, "description": "Contains details about a malware policy.", "properties": { "allowListId": { "description": "The ID of a client list containing file hashes of specific files to allow.", "type": "string" }, "blockListId": { "description": "The ID of a client list containing file hashes of specific files to block.", "type": "string" }, "contentTypes": { "description": "The content types and encodings to match.", "items": { "additionalProperties": false, "properties": { "encodedContentAttributes": { "description": "An optional list of encoded attribute paths.", "items": { "additionalProperties": false, "properties": { "encoding": { "description": "The encodings used for the attribute path. Currently only `base64` is supported.", "items": { "enum": [ "base64" ], "type": "string" }, "type": "array" }, "path": { "description": "The JSONPath to an attribute with encoded content. The path must point to a single item, and may not include the `$`, `..`, `?` or `*` operators.", "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "description": "The name of the content type.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "hostnames": { "description": "The hostnames to match. This is where you want the malware detections to focus.", "items": { "type": "string" }, "type": "array" }, "id": { "description": "__Read-only__ Uniquely identifies each malware policy.", "readOnly": true, "type": "integer" }, "logFilename": { "default": false, "description": "Whether to log the name of the file that triggered an `alert` or `deny` action.", "type": "boolean" }, "name": { "description": "The name you assign to a malware policy.", "type": "string" }, "paths": { "description": "The paths to match. You can use the `?` and `*` wildcards anywhere in a path.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "hostnames", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policy.yaml" } }, "type": "array" } }, "required": [ "malwarePolicies" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policies.yaml" } }, "malware-policies-content-types": { "additionalProperties": false, "description": "Contains a list of supported malware policy content types for the specified configuration version.", "properties": { "malwareContentTypes": { "description": "The list of supported content types in a malware policy.", "items": { "description": "The malware content type.", "type": "string" }, "type": "array" } }, "required": [ "malwareContentTypes" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policies-content-types.yaml" } }, "malware-policy": { "additionalProperties": false, "description": "Contains details about a malware policy.", "properties": { "allowListId": { "description": "The ID of a client list containing file hashes of specific files to allow.", "type": "string" }, "blockListId": { "description": "The ID of a client list containing file hashes of specific files to block.", "type": "string" }, "contentTypes": { "description": "The content types and encodings to match.", "items": { "additionalProperties": false, "properties": { "encodedContentAttributes": { "description": "An optional list of encoded attribute paths.", "items": { "additionalProperties": false, "properties": { "encoding": { "description": "The encodings used for the attribute path. Currently only `base64` is supported.", "items": { "enum": [ "base64" ], "type": "string" }, "type": "array" }, "path": { "description": "The JSONPath to an attribute with encoded content. The path must point to a single item, and may not include the `$`, `..`, `?` or `*` operators.", "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "description": "The name of the content type.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "hostnames": { "description": "The hostnames to match. This is where you want the malware detections to focus.", "items": { "type": "string" }, "type": "array" }, "id": { "description": "__Read-only__ Uniquely identifies each malware policy.", "readOnly": true, "type": "integer" }, "logFilename": { "default": false, "description": "Whether to log the name of the file that triggered an `alert` or `deny` action.", "type": "boolean" }, "name": { "description": "The name you assign to a malware policy.", "type": "string" }, "paths": { "description": "The paths to match. You can use the `?` and `*` wildcards anywhere in a path.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "hostnames", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policy.yaml" } }, "match-target": { "additionalProperties": false, "description": "Contains information about a match target.", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } }, "match-targets": { "additionalProperties": false, "description": "Describes match target settings.", "properties": { "matchTargets": { "additionalProperties": false, "description": "Match target settings.", "properties": { "apiTargets": { "description": "The `api` match targets.", "items": { "additionalProperties": false, "description": "Contains information about a match target.", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } }, "type": "array" }, "websiteTargets": { "description": "The `website` match targets.", "items": { "additionalProperties": false, "description": "Contains information about a match target.", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } }, "type": "array" } }, "required": [ "apiTargets", "websiteTargets" ], "type": "object" } }, "required": [ "matchTargets" ], "type": "object", "x-akamai": { "file-path": "schemas/match-targets.yaml" } }, "match-targets-sequence": { "additionalProperties": false, "description": "Contains match target settings and a list of objects containing match targets with their assigned sequence number.", "properties": { "targetSequence": { "description": "Contains the ID and sequence of a match target.", "items": { "additionalProperties": false, "properties": { "sequence": { "description": "The position in the sequence of match targets.", "type": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "type": "integer" } }, "required": [ "sequence", "targetId" ], "type": "object" }, "type": "array" }, "type": { "description": "Describes the type of match target, either `WEBSITE` or `API`.", "enum": [ "WEBSITE", "API" ], "type": "string" } }, "required": [ "type", "targetSequence" ], "type": "object", "x-akamai": { "file-path": "schemas/match-targets-sequence.yaml" } }, "overlap-config": { "additionalProperties": false, "description": "Contains details about an overlapping configuration.", "properties": { "configId": { "description": "The configuration ID.", "type": "integer" }, "configName": { "description": "The configuration name.", "type": "string" }, "configVersion": { "description": "The configuration version.", "type": "integer" }, "contractId": { "description": "The contract ID.", "type": "string" }, "contractName": { "description": "The contract name.", "type": "string" }, "hostnames": { "description": "List of version tags, any combination of `STAGING` and `LAST_CREATED`.", "items": { "description": "The version tag.", "enum": [ "STAGING", "LAST_CREATED" ], "type": "string" }, "type": "array" } }, "required": [ "configId", "configName", "configVersion" ], "type": "object", "x-akamai": { "file-path": "schemas/overlap-config.yaml" } }, "pii-learning": { "additionalProperties": false, "description": "Summarizes availability of PII learning.", "properties": { "enablePiiLearning": { "description": "Enables PII learning.", "type": "boolean" } }, "required": [ "enablePiiLearning" ], "type": "object", "x-akamai": { "file-path": "schemas/pii-learning.yaml" } }, "pragma-header": { "additionalProperties": false, "description": "Describes which headers you can exclude from inspection when you pass a `Pragma` debug header.", "properties": { "action": { "description": "The action to perform when a user passes a `Pragma` header. The only action currently supported is `REMOVE`.", "enum": [ "REMOVE" ], "type": "string" }, "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "type": "string" }, "excludeCondition": { "description": "The conditions to exclude from the default `remove` action. Any condition you set in this object appears in the `Pragma` header debug response object.", "items": { "additionalProperties": false, "properties": { "header": { "description": "The name of the request header. In the example, `accept`.", "type": "string" }, "name": { "description": "The name of the request header to ignore from inspection. In the example, `type`.", "type": "string" }, "positiveMatch": { "description": "When `true`, matches the selected values. When `false`, matches on anything outside the selected values.", "type": "boolean" }, "type": { "description": "The header value you want to appear in the response. You can choose from `requestHeaderValueMatch`, `ipMatch`, `networkList`, or `queryParamNameValueMatch`.", "enum": [ "requestHeaderValueMatch", "ipMatch", "networkList", "queryParamNameValueMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include the `X-Forwarded-For` header (XFF) header. This only applies when the condition `type` is `IP_MATCH` or `NETWORK_LIST`.", "type": "boolean" }, "value": { "description": "List of header values, query parameter values, IP addresses, or names of network lists. To manage networks lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api).", "items": { "type": "string" }, "type": "array" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header value. This only applies when the condition `type` is `REQUEST_HEADER_VALUE_MATCH`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header value includes wildcards, such as `*` or `?`. This only applies to the `REQUEST_HEADER_VALUE_MATCH` condition type.", "type": "boolean" } }, "required": [ "type", "positiveMatch", "value" ], "type": "object" }, "type": "array" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/pragma-header.yaml" } }, "prefetch-request-get-200": { "additionalProperties": false, "description": "The GET Response JSON for Prefetch Requests.", "properties": { "allExtensions": { "description": "Whether to enable prefetch requests for all extensions.", "type": "boolean" }, "enableAppLayer": { "description": "Whether to enable Prefetch Requests.", "type": "boolean" }, "enableRateControls": { "description": "Whether to enable Prefetch Requests for rate controls.", "type": "boolean" }, "extensions": { "description": "List of extensions.", "items": { "type": "string" }, "type": "array" } }, "required": [ "allExtensions", "enableAppLayer", "enableRateControls" ], "type": "object", "x-akamai": { "file-path": "schemas/prefetch-request-get-200.yaml" } }, "prefetch-request-put": { "additionalProperties": false, "description": "The PUT Request JSON for Prefetch Requests.", "properties": { "allExtensions": { "description": "Whether to enable prefetch requests for all extensions.", "type": "boolean" }, "enableAppLayer": { "description": "Whether to enable Prefetch Requests.", "type": "boolean" }, "enableRateControls": { "description": "Whether to enable Prefetch Requests for rate controls.", "type": "boolean" }, "extensions": { "description": "List of extensions.", "items": { "type": "string" }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/prefetch-request-put.yaml" } }, "prefetch-request-put-200": { "additionalProperties": false, "description": "The PUT Response JSON for Prefetch Requests.", "properties": { "allExtensions": { "description": "Whether to enable prefetch requests for all extensions.", "type": "boolean" }, "enableAppLayer": { "description": "Whether to enable Prefetch Requests.", "type": "boolean" }, "enableRateControls": { "description": "Whether to enable Prefetch Requests for rate controls.", "type": "boolean" }, "extensions": { "description": "List of extensions.", "items": { "type": "string" }, "type": "array" } }, "required": [ "allExtensions", "enableAppLayer", "enableRateControls" ], "type": "object", "x-akamai": { "file-path": "schemas/prefetch-request-put-200.yaml" } }, "problem-details": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } }, "rate-policies": { "additionalProperties": false, "description": "Contains details about rate policies.", "properties": { "ratePolicies": { "description": "A list of rate policies in this configuration version.", "items": { "additionalProperties": false, "description": "Contains details about a rate policy.", "properties": { "additionalMatchOptions": { "description": "The list of additional match conditions.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The match condition type. The `RequestHeaderCondition` listed here is deprecated. Specify `RequestHeaderCondition` as an `atomicCondition` to match on request headers. See [Export match condition type values](https://techdocs.akamai.com/application-security/reference/cndval).", "enum": [ "IpAddressCondition", "NetworkListCondition", "RequestHeaderCondition", "RequestMethodCondition", "ResponseHeaderCondition", "ResponseStatusCondition", "UserAgentCondition", "AsNumberCondition" ], "type": "string" }, "values": { "description": "The list of values that trigger the condition on match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type", "positiveMatch", "values" ], "type": "object" }, "type": "array" }, "apiSelectors": { "description": "The API endpoints to match in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "averageThreshold": { "description": "The allowed hits per second during any two-minute interval.", "minimum": 1, "type": "integer" }, "bodyParameters": { "description": "The list of body parameters to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to a body parameter.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The body parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "The time span for the `burstThreshold` interval. For existing rate policies, analyze your traffic in Alert mode before you reduce the measure window from 5 seconds. [Learn more about thresholds here](https://techdocs.akamai.com/kona-site-defender/docs/rate-thresholds).", "maximum": 5, "minimum": 1, "type": "integer" }, "clientIdentifier": { "description": "The client identifier you want to use to identify and track request senders. The value is required only for WAF type, and `api-key` is supported only for API match criteria. Using `ip-useragent` is typically more specific than using `ip` alone when trying to identify a client. Tracking by `cookie:value` applies to requests per individual session, even if the IP address changes.", "enum": [ "api-key", "ip-useragent", "ip", "cookie:value" ], "type": "string" }, "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the rate policy.", "properties": { "atomicConditions": { "description": "The conditions that trigger the rate policy. Specify one or more request headers, TLS fingerprints, or client reputation categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } } ] }, "minItems": 1, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "counterType": { "default": "per_edge", "description": "The rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "createDate": { "description": "__Read-only__ The time stamp when you created the rate policy.", "example": "2016-07-22 18:57:08.0", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "evaluation": { "additionalProperties": false, "description": "Contains details about rate policy evaluation.", "properties": { "averageThreshold": { "description": "The allowed hits per second during any two-minute interval during evaluation.", "minimum": 1, "type": "integer" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval during evaluation.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "__Read-only__ The time span for the `burstThreshold` interval used during evaluation. This value is always set to the `burstWindow` specified by the main rate policy.", "readOnly": true, "type": "integer" }, "counterType": { "default": "region_aggregated", "description": "The evaluation rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "endDate": { "description": "__Read-only__ The time stamp when evaluation ends.", "format": "date-time", "readOnly": true, "type": "string" }, "evaluationId": { "description": "__Read-only__ Uniquely identifies an evaluation.", "readOnly": true, "type": "integer" }, "evaluationStatus": { "description": "__Read-only__ Reflects evaluation status, either `in_progress`, `pending_activation`, or `completed`.", "enum": [ "in_progress", "pending_activation", "completed" ], "readOnly": true, "type": "string" }, "startDate": { "description": "__Read-only__ The time stamp when evaluation starts.", "format": "date-time", "readOnly": true, "type": "string" }, "version": { "description": "__Read-only__ Evaluation version.", "readOnly": true, "type": "integer" } }, "required": [ "averageThreshold", "burstThreshold" ], "type": "object" }, "fileExtensions": { "additionalProperties": false, "description": "Contains the file extension match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The file extensions to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "hostnames": { "description": "__Deprecated__. The hostnames to match. This array member is deprecated. Use the `hosts` object instead.", "items": { "type": "string" }, "type": "array" }, "hosts": { "additionalProperties": false, "description": "The hostnames to match, and whether to trigger on a match or absence of match.", "properties": { "positiveMatch": { "default": true, "description": "When `true`, triggers on hostnames that match any hostnames in this array. When `false`, triggers on hostnames that don't match any in this array.", "type": "boolean" }, "values": { "description": "The hostnames you choose to match, or specifically not match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "id": { "description": "__Read-only__ Uniquely identifies each rate policy.", "readOnly": true, "type": "integer" }, "matchType": { "description": "The match type in a rate policy. Either `path` to match website paths or `api` to match API paths.", "enum": [ "path", "api" ], "type": "string" }, "name": { "description": "The name you assign to a rate policy.", "type": "string" }, "path": { "additionalProperties": false, "description": "Contains details about the path match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "pathMatchType": { "description": "The type of paths to match in incoming requests. Either `AllRequests` to match an empty path or any path that ends in a trailing slash (`/`), `TopLevel` to match top-level hostnames only, or `Custom` to match a specific path or path component. This applies only when the corresponding `matchType` member is `path`.", "enum": [ "AllRequests", "TopLevel", "Custom" ], "type": "string" }, "pathUriPositiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "queryParameters": { "description": "The list of query parameter objects to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The query parameter name.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The list of query parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "requestType": { "description": "The type of requests to count towards the rate policy's thresholds. Either `ClientRequest` to count client requests to edge servers, `ClientResponse` to count edge responses to the client, `ForwardResponse` to count origin responses to the client, or `ForwardRequest` to count edge requests to your origin.", "enum": [ "ClientRequest", "ClientResponse", "ForwardResponse", "ForwardRequest" ], "type": "string" }, "sameActionOnIpv6": { "description": "Whether to apply the same action to the IPv6 traffic as to the IPv4 traffic.", "type": "boolean" }, "type": { "description": "The rate policy type. Either `WAF` for Web Application Firewall, or `BOTMAN` for Bot Manager.", "enum": [ "WAF", "BOTMAN" ], "type": "string" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the rate policy.", "example": "2017-02-22 00:05:41.0", "format": "date-time", "readOnly": true, "type": "string" }, "useXForwardForHeaders": { "description": "Whether to check the contents of the `X-Forwarded-For` header in incoming requests.", "type": "boolean" }, "used": { "description": "__Read-only__ Whether you're currently using the rate policy.", "readOnly": true, "type": "boolean" } }, "required": [ "matchType", "type", "name", "averageThreshold", "burstThreshold", "clientIdentifier", "requestType", "sameActionOnIpv6", "pathMatchType" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy.yaml" } }, "type": "array" } }, "required": [ "ratePolicies" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policies.yaml" } }, "rate-policy": { "additionalProperties": false, "description": "Contains details about a rate policy.", "properties": { "additionalMatchOptions": { "description": "The list of additional match conditions.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The match condition type. The `RequestHeaderCondition` listed here is deprecated. Specify `RequestHeaderCondition` as an `atomicCondition` to match on request headers. See [Export match condition type values](https://techdocs.akamai.com/application-security/reference/cndval).", "enum": [ "IpAddressCondition", "NetworkListCondition", "RequestHeaderCondition", "RequestMethodCondition", "ResponseHeaderCondition", "ResponseStatusCondition", "UserAgentCondition", "AsNumberCondition" ], "type": "string" }, "values": { "description": "The list of values that trigger the condition on match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type", "positiveMatch", "values" ], "type": "object" }, "type": "array" }, "apiSelectors": { "description": "The API endpoints to match in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "averageThreshold": { "description": "The allowed hits per second during any two-minute interval.", "minimum": 1, "type": "integer" }, "bodyParameters": { "description": "The list of body parameters to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to a body parameter.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The body parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "The time span for the `burstThreshold` interval. For existing rate policies, analyze your traffic in Alert mode before you reduce the measure window from 5 seconds. [Learn more about thresholds here](https://techdocs.akamai.com/kona-site-defender/docs/rate-thresholds).", "maximum": 5, "minimum": 1, "type": "integer" }, "clientIdentifier": { "description": "The client identifier you want to use to identify and track request senders. The value is required only for WAF type, and `api-key` is supported only for API match criteria. Using `ip-useragent` is typically more specific than using `ip` alone when trying to identify a client. Tracking by `cookie:value` applies to requests per individual session, even if the IP address changes.", "enum": [ "api-key", "ip-useragent", "ip", "cookie:value" ], "type": "string" }, "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the rate policy.", "properties": { "atomicConditions": { "description": "The conditions that trigger the rate policy. Specify one or more request headers, TLS fingerprints, or client reputation categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } } ] }, "minItems": 1, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "counterType": { "default": "per_edge", "description": "The rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "createDate": { "description": "__Read-only__ The time stamp when you created the rate policy.", "example": "2016-07-22 18:57:08.0", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "evaluation": { "additionalProperties": false, "description": "Contains details about rate policy evaluation.", "properties": { "averageThreshold": { "description": "The allowed hits per second during any two-minute interval during evaluation.", "minimum": 1, "type": "integer" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval during evaluation.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "__Read-only__ The time span for the `burstThreshold` interval used during evaluation. This value is always set to the `burstWindow` specified by the main rate policy.", "readOnly": true, "type": "integer" }, "counterType": { "default": "region_aggregated", "description": "The evaluation rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "endDate": { "description": "__Read-only__ The time stamp when evaluation ends.", "format": "date-time", "readOnly": true, "type": "string" }, "evaluationId": { "description": "__Read-only__ Uniquely identifies an evaluation.", "readOnly": true, "type": "integer" }, "evaluationStatus": { "description": "__Read-only__ Reflects evaluation status, either `in_progress`, `pending_activation`, or `completed`.", "enum": [ "in_progress", "pending_activation", "completed" ], "readOnly": true, "type": "string" }, "startDate": { "description": "__Read-only__ The time stamp when evaluation starts.", "format": "date-time", "readOnly": true, "type": "string" }, "version": { "description": "__Read-only__ Evaluation version.", "readOnly": true, "type": "integer" } }, "required": [ "averageThreshold", "burstThreshold" ], "type": "object" }, "fileExtensions": { "additionalProperties": false, "description": "Contains the file extension match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The file extensions to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "hostnames": { "description": "__Deprecated__. The hostnames to match. This array member is deprecated. Use the `hosts` object instead.", "items": { "type": "string" }, "type": "array" }, "hosts": { "additionalProperties": false, "description": "The hostnames to match, and whether to trigger on a match or absence of match.", "properties": { "positiveMatch": { "default": true, "description": "When `true`, triggers on hostnames that match any hostnames in this array. When `false`, triggers on hostnames that don't match any in this array.", "type": "boolean" }, "values": { "description": "The hostnames you choose to match, or specifically not match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "id": { "description": "__Read-only__ Uniquely identifies each rate policy.", "readOnly": true, "type": "integer" }, "matchType": { "description": "The match type in a rate policy. Either `path` to match website paths or `api` to match API paths.", "enum": [ "path", "api" ], "type": "string" }, "name": { "description": "The name you assign to a rate policy.", "type": "string" }, "path": { "additionalProperties": false, "description": "Contains details about the path match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "pathMatchType": { "description": "The type of paths to match in incoming requests. Either `AllRequests` to match an empty path or any path that ends in a trailing slash (`/`), `TopLevel` to match top-level hostnames only, or `Custom` to match a specific path or path component. This applies only when the corresponding `matchType` member is `path`.", "enum": [ "AllRequests", "TopLevel", "Custom" ], "type": "string" }, "pathUriPositiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "queryParameters": { "description": "The list of query parameter objects to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The query parameter name.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The list of query parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "requestType": { "description": "The type of requests to count towards the rate policy's thresholds. Either `ClientRequest` to count client requests to edge servers, `ClientResponse` to count edge responses to the client, `ForwardResponse` to count origin responses to the client, or `ForwardRequest` to count edge requests to your origin.", "enum": [ "ClientRequest", "ClientResponse", "ForwardResponse", "ForwardRequest" ], "type": "string" }, "sameActionOnIpv6": { "description": "Whether to apply the same action to the IPv6 traffic as to the IPv4 traffic.", "type": "boolean" }, "type": { "description": "The rate policy type. Either `WAF` for Web Application Firewall, or `BOTMAN` for Bot Manager.", "enum": [ "WAF", "BOTMAN" ], "type": "string" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the rate policy.", "example": "2017-02-22 00:05:41.0", "format": "date-time", "readOnly": true, "type": "string" }, "useXForwardForHeaders": { "description": "Whether to check the contents of the `X-Forwarded-For` header in incoming requests.", "type": "boolean" }, "used": { "description": "__Read-only__ Whether you're currently using the rate policy.", "readOnly": true, "type": "boolean" } }, "required": [ "matchType", "type", "name", "averageThreshold", "burstThreshold", "clientIdentifier", "requestType", "sameActionOnIpv6", "pathMatchType" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy.yaml" } }, "rate-policy-evaluation-put": { "additionalProperties": false, "description": "Lists actions you can perform on a rate policy evaluation.", "properties": { "action": { "description": "Specifies the action to perform on a rate policy evaluation, either `APPLY` or `DISCARD`.", "enum": [ "APPLY", "DISCARD" ], "type": "string" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy-evaluation-put.yaml" } }, "reputation-profile": { "additionalProperties": false, "description": "Contains details about a reputation profile.", "properties": { "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the reputation profile.", "properties": { "atomicConditions": { "description": "The conditions that trigger the reputation profile.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).", "enum": [ "NetworkListCondition", "AsNumberCondition", "IpAddressCondition", "RequestCookieCondition", "RequestHeaderCondition", "HostCondition", "UrlPatternCondition" ], "type": "string" }, "value": { "description": "The list of values that trigger the condition.", "items": { "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "valueCase": { "default": false, "description": "Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.", "type": "boolean" }, "valueWildcard": { "default": true, "description": "Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.", "type": "boolean" } }, "type": "object" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "context": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "contextReadable": { "description": "__Read-only__ Describes the reputation category.", "readOnly": true, "type": "string" }, "description": { "description": "Describes the reputation profile.", "type": "string" }, "enabled": { "description": "__Read-only__ Whether you enabled the reputation profile.", "readOnly": true, "type": "boolean" }, "id": { "description": "__Read-only__ Uniquely identifies the reputation profile.", "readOnly": true, "type": "integer" }, "name": { "description": "The name you assigned to the reputation profile.", "type": "string" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "threshold": { "description": "The threshold when the profile to triggers.", "type": "number" } }, "required": [ "name", "context", "threshold", "sharedIpHandling" ], "type": "object", "x-akamai": { "file-path": "schemas/reputation-profile.yaml" } }, "reputation-profiles": { "additionalProperties": false, "description": "Contains details about reputation profiles.", "properties": { "reputationProfiles": { "description": "A list of reputation profiles in this configuration version.", "items": { "additionalProperties": false, "description": "Contains details about a reputation profile.", "properties": { "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the reputation profile.", "properties": { "atomicConditions": { "description": "The conditions that trigger the reputation profile.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).", "enum": [ "NetworkListCondition", "AsNumberCondition", "IpAddressCondition", "RequestCookieCondition", "RequestHeaderCondition", "HostCondition", "UrlPatternCondition" ], "type": "string" }, "value": { "description": "The list of values that trigger the condition.", "items": { "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "valueCase": { "default": false, "description": "Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.", "type": "boolean" }, "valueWildcard": { "default": true, "description": "Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.", "type": "boolean" } }, "type": "object" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "context": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "contextReadable": { "description": "__Read-only__ Describes the reputation category.", "readOnly": true, "type": "string" }, "description": { "description": "Describes the reputation profile.", "type": "string" }, "enabled": { "description": "__Read-only__ Whether you enabled the reputation profile.", "readOnly": true, "type": "boolean" }, "id": { "description": "__Read-only__ Uniquely identifies the reputation profile.", "readOnly": true, "type": "integer" }, "name": { "description": "The name you assigned to the reputation profile.", "type": "string" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "threshold": { "description": "The threshold when the profile to triggers.", "type": "number" } }, "required": [ "name", "context", "threshold", "sharedIpHandling" ], "type": "object", "x-akamai": { "file-path": "schemas/reputation-profile.yaml" } }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/reputation-profiles.yaml" } }, "request-body": { "additionalProperties": false, "description": "Contains the size limits for a request body.", "properties": { "requestBodyInspectionLimitInKB": { "description": "Request body size in KB, either `8`, `16`, or `32` as string-formatted integers, or `default` to use Akamai's best practice value.", "enum": [ "8", "16", "32", "default" ], "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/request-body.yaml" } }, "request-header-condition-2": { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, "security-controls": { "additionalProperties": false, "description": "Describes the operational status of security controls.", "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" } }, "required": [ "applyApplicationLayerControls", "applyNetworkLayerControls", "applyRateControls", "applyReputationControls", "applyBotmanControls", "applyApiConstraints", "applySlowPostControls" ], "type": "object", "x-akamai": { "file-path": "schemas/security-controls.yaml" } }, "siem-settings": { "additionalProperties": false, "description": "Contains Security Information Event Management (SIEM) integration settings.", "properties": { "enableForAllPolicies": { "description": "Whether you enabled SIEM for all the security policies in the configuration version.", "type": "boolean" }, "enableSiem": { "description": "Whether you enabled SIEM in a security configuration version.", "type": "boolean" }, "enabledBotmanSiemEvents": { "description": "__Deprecated__ Whether you enabled SIEM for the Bot Manager events. Use `exceptions` parameter instead to set botman siem events exception. ", "type": "boolean", "x-akamai": { "status": "DEPRECATED" } }, "exceptions": { "description": "Describes all attack type exceptions that will be ignored in siem events.", "items": { "additionalProperties": false, "properties": { "actionTypes": { "description": "Describes actions to be excluded for a particular attack type. A `*` value means all actions.", "items": { "enum": [ "*", "alert", "deny", "all_custom", "abort", "allow", "delay", "ignore", "monitor", "slow", "tarpit" ], "type": "string" }, "type": "array" }, "protection": { "description": "Attack type to be added as an exception.", "enum": [ "ipgeo", "rate", "urlProtection", "slowpost", "customrules", "waf", "apirequestconstraints", "clientrep", "malwareprotection", "botmanagement", "aprProtection" ], "type": "string" } }, "type": "object" }, "type": "array" }, "firewallPolicyIds": { "description": "The list of security policy identifiers for which to enable the SIEM integration.", "items": { "type": "string" }, "type": "array" }, "siemDefinitionId": { "description": "Uniquely identifies the SIEM settings.", "type": "integer" } }, "required": [ "enableSiem" ], "type": "object", "x-akamai": { "file-path": "schemas/siem-settings.yaml" } }, "siem-version": { "additionalProperties": false, "description": "Contains Security Information Event Management (SIEM) version settings.", "properties": { "id": { "description": "Uniquely identifies the SIEM version.", "type": "integer" }, "name": { "description": "The name assigned to the SIEM version.", "type": "boolean" } }, "required": [ "id", "name" ], "type": "object", "x-akamai": { "file-path": "schemas/siem-version.yaml" } }, "siem-versions": { "additionalProperties": false, "description": "Contains details about SIEM versions.", "properties": { "siemDefinitions": { "description": "A list of SIEM versions.", "items": { "additionalProperties": false, "description": "Contains Security Information Event Management (SIEM) version settings.", "properties": { "id": { "description": "Uniquely identifies the SIEM version.", "type": "integer" }, "name": { "description": "The name assigned to the SIEM version.", "type": "boolean" } }, "required": [ "id", "name" ], "type": "object", "x-akamai": { "file-path": "schemas/siem-version.yaml" } }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/siem-versions.yaml" } }, "tls-fingerprint-condition": { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, "url-protection-bypass-client-list-condition": { "additionalProperties": false, "description": "Collects data needed for condition matches on client lists and network lists.", "properties": { "checkIps": { "description": "__Read-only__ Whether the connecting IP or both the connecting IP and `X-Forwarded-For` (XFF) header match on the client list or network list. URL protection bypass supports `connecting` only.", "enum": [ "connecting" ], "readOnly": true, "type": "string" }, "className": { "description": "Choose `NetworkListCondition` to match the requesting client's identifier, like IP, GEO, ASN or TLS Fingerprint, against the specified client list or network list.", "enum": [ "NetworkListCondition" ], "type": "string" }, "positiveMatch": { "description": "__Read-only__ Whether the condition triggers on a match or lack of match.", "readOnly": true, "type": "boolean" }, "value": { "description": "Identifies the client list or network list.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "NetworkListCondition", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-bypass-client-list-condition.yaml" } }, "url-protection-bypass-request-header-condition": { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "Choose `RequestHeaderCondition` to match a header from the requesting client to the specified header.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards in the specified `name`.", "type": "boolean" }, "positiveMatch": { "description": "__Read-only__ Whether the condition triggers on a match or lack of match.", "readOnly": true, "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches the specified headers.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider case when matching header values, `true` for case-sensitive matches.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards in the specified `value`.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-bypass-request-header-condition.yaml" } }, "url-protection-category": { "additionalProperties": false, "description": "Specify one or more load shedding categories for the URL protection policy.", "properties": { "type": { "description": "Specify the type of traffic to shed first before reaching the requests per second (RPS) limit. `BOTS` includes bots from Akamai's existing list of known bots. `CLIENT_REPUTATIONS` includes traffic from clients with a bad client reputation score. `CLOUD_PROVIDERS` includes traffic from providers like AWS, Microsoft Azure, and Google Cloud. `PROXIES` includes proxy traffic as determined by IPQualityScore (IPQS) and Akamai EdgeScape. `TOR_EXIT_NODES` includes traffic defined in Akamai's existing network list of nodes. `PLATFORM_DDOS_INTELLIGENCE` includes traffic detected by Akamai's DDOS Intelligence platform.", "enum": [ "BOTS", "CLIENT_REPUTATIONS", "CLOUD_PROVIDERS", "PROXIES", "TOR_EXIT_NODES", "PLATFORM_DDOS_INTELLIGENCE" ], "type": "string" } }, "required": [ "type" ], "title": "urlProtectionCategory", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-category.yaml" } }, "url-protection-client-list-category": { "additionalProperties": false, "description": "Defines a `CLIENT_LIST` load shedding category for a URL protection policy.", "properties": { "listIds": { "description": "A list of client list identifiers to match on.", "items": { "type": "string" }, "type": "array" }, "positiveMatch": { "description": "Whether the selected client lists match.", "type": "boolean" }, "type": { "description": "Specify `CLIENT_LIST` to match on a client list.", "enum": [ "CLIENT_LIST" ], "type": "string" } }, "required": [ "type" ], "title": "urlProtectionCategory", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-client-list-category.yaml" } }, "url-protection-policies": { "additionalProperties": false, "description": "Contains details about URL protection policies.", "properties": { "urlProtectionPolicies": { "description": "A list of URL protection policies in the configuration version.", "items": { "additionalProperties": false, "description": "Contains details about a URL protection policy.", "properties": { "apiDefinitions": { "description": "The API endpoints to match on in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "format": "int64", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "format": "int64", "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "bypassCondition": { "additionalProperties": false, "description": "Exempts specific clients from being processed by the URL protection policy.", "properties": { "atomicConditions": { "description": "Specify one or more types of conditions to match on. You can match on client lists, request headers, or both.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "Choose `RequestHeaderCondition` to match a header from the requesting client to the specified header.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards in the specified `name`.", "type": "boolean" }, "positiveMatch": { "description": "__Read-only__ Whether the condition triggers on a match or lack of match.", "readOnly": true, "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches the specified headers.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider case when matching header values, `true` for case-sensitive matches.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards in the specified `value`.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-bypass-request-header-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on client lists and network lists.", "properties": { "checkIps": { "description": "__Read-only__ Whether the connecting IP or both the connecting IP and `X-Forwarded-For` (XFF) header match on the client list or network list. URL protection bypass supports `connecting` only.", "enum": [ "connecting" ], "readOnly": true, "type": "string" }, "className": { "description": "Choose `NetworkListCondition` to match the requesting client's identifier, like IP, GEO, ASN or TLS Fingerprint, against the specified client list or network list.", "enum": [ "NetworkListCondition" ], "type": "string" }, "positiveMatch": { "description": "__Read-only__ Whether the condition triggers on a match or lack of match.", "readOnly": true, "type": "boolean" }, "value": { "description": "Identifies the client list or network list.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "NetworkListCondition", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-bypass-client-list-condition.yaml" } } ] }, "minItems": 1, "type": "array" } }, "type": "object" }, "categories": { "description": "The traffic categories to perform load shedding on when the origin traffic rate exceeds the load shedding threshold. If `intelligentLoadShedding` is set to `true`, specify one or more categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Specify one or more load shedding categories for the URL protection policy.", "properties": { "type": { "description": "Specify the type of traffic to shed first before reaching the requests per second (RPS) limit. `BOTS` includes bots from Akamai's existing list of known bots. `CLIENT_REPUTATIONS` includes traffic from clients with a bad client reputation score. `CLOUD_PROVIDERS` includes traffic from providers like AWS, Microsoft Azure, and Google Cloud. `PROXIES` includes proxy traffic as determined by IPQualityScore (IPQS) and Akamai EdgeScape. `TOR_EXIT_NODES` includes traffic defined in Akamai's existing network list of nodes. `PLATFORM_DDOS_INTELLIGENCE` includes traffic detected by Akamai's DDOS Intelligence platform.", "enum": [ "BOTS", "CLIENT_REPUTATIONS", "CLOUD_PROVIDERS", "PROXIES", "TOR_EXIT_NODES", "PLATFORM_DDOS_INTELLIGENCE" ], "type": "string" } }, "required": [ "type" ], "title": "Client list category", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-category.yaml" } }, { "additionalProperties": false, "description": "Defines a `CLIENT_LIST` load shedding category for a URL protection policy.", "properties": { "listIds": { "description": "A list of client list identifiers to match on.", "items": { "type": "string" }, "type": "array" }, "positiveMatch": { "description": "Whether the selected client lists match.", "type": "boolean" }, "type": { "description": "Specify `CLIENT_LIST` to match on a client list.", "enum": [ "CLIENT_LIST" ], "type": "string" } }, "required": [ "type" ], "title": "Other categories", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-client-list-category.yaml" } } ] }, "type": "array" }, "configId": { "description": "Uniquely identifies the security configuration.", "format": "int64", "type": "integer" }, "configVersion": { "description": "The security configuration version.", "type": "integer" }, "createDate": { "description": "__Read-only__ The timestamp when you created the URL protection policy.", "format": "date-time", "readOnly": true, "type": "string" }, "createdBy": { "description": "__Read-only__ The username of the person who created the URL protection policy.", "readOnly": true, "type": "string" }, "description": { "description": "A description of the rate policy.", "type": "string" }, "hostnamePaths": { "description": "The hostname and path combinations to match on.", "items": { "additionalProperties": false, "description": "The hostname and path combinations to match on.", "properties": { "hostname": { "description": "The hostnames you choose to match on.", "type": "string" }, "paths": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "hostname", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/url-protection-policy-hostpath.yaml" } }, "minItems": 1, "type": "array" }, "intelligentLoadShedding": { "description": "Enable or disable intelligent load shedding. If enabled, traffic that matches the load shedding categories is eligible for shedding if the origin rate exceeds the load shedding threshold.", "type": "boolean" }, "name": { "description": "The rate policy's unique name.", "type": "string" }, "policyId": { "description": "__Read-only__ Uniquely identifies the URL protection policy.", "format": "int64", "readOnly": true, "type": "integer" }, "protectionType": { "description": "If matching on `hostnamePaths`, specify `SINGLE` to match on a hostname and path, or `MULTIPLE` to match on hostname and path combinations.", "enum": [ "SINGLE", "MULTIPLE" ], "type": "string" }, "rateThreshold": { "description": "The allowed hits per second during any five-second interval.", "type": "integer" }, "sheddingThresholdHitsPerSec": { "description": "Specify the threshold value, in hits per second, after which traffic can be shed. The `sheddingThresholdHitsPerSec` value must be between 70%-90% of the `rateThreshold` value. If you enabled `intelligentLoadShedding`, this value is required.", "type": "integer" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the URL protection policy.", "format": "date-time", "readOnly": true, "type": "string" }, "updatedBy": { "description": "__Read-only__ Username who last updated the URL protection policy.", "readOnly": true, "type": "string" }, "used": { "description": "__Read-only__ Whether you're currently using the URL protection policy.", "readOnly": true, "type": "boolean" } }, "required": [ "intelligentLoadShedding", "rateThreshold", "name" ], "type": "object", "x-akamai": { "file-path": "schemas/url-protection-policy.yaml" } }, "type": "array" } }, "required": [ "urlProtectionPolicies" ], "type": "object", "x-akamai": { "file-path": "schemas/url-protection-policies.yaml" } }, "url-protection-policy": { "additionalProperties": false, "description": "Contains details about a URL protection policy.", "properties": { "apiDefinitions": { "description": "The API endpoints to match on in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "format": "int64", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "format": "int64", "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "bypassCondition": { "additionalProperties": false, "description": "Exempts specific clients from being processed by the URL protection policy.", "properties": { "atomicConditions": { "description": "Specify one or more types of conditions to match on. You can match on client lists, request headers, or both.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "Choose `RequestHeaderCondition` to match a header from the requesting client to the specified header.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards in the specified `name`.", "type": "boolean" }, "positiveMatch": { "description": "__Read-only__ Whether the condition triggers on a match or lack of match.", "readOnly": true, "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches the specified headers.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider case when matching header values, `true` for case-sensitive matches.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards in the specified `value`.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-bypass-request-header-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on client lists and network lists.", "properties": { "checkIps": { "description": "__Read-only__ Whether the connecting IP or both the connecting IP and `X-Forwarded-For` (XFF) header match on the client list or network list. URL protection bypass supports `connecting` only.", "enum": [ "connecting" ], "readOnly": true, "type": "string" }, "className": { "description": "Choose `NetworkListCondition` to match the requesting client's identifier, like IP, GEO, ASN or TLS Fingerprint, against the specified client list or network list.", "enum": [ "NetworkListCondition" ], "type": "string" }, "positiveMatch": { "description": "__Read-only__ Whether the condition triggers on a match or lack of match.", "readOnly": true, "type": "boolean" }, "value": { "description": "Identifies the client list or network list.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "NetworkListCondition", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-bypass-client-list-condition.yaml" } } ] }, "minItems": 1, "type": "array" } }, "type": "object" }, "categories": { "description": "The traffic categories to perform load shedding on when the origin traffic rate exceeds the load shedding threshold. If `intelligentLoadShedding` is set to `true`, specify one or more categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Specify one or more load shedding categories for the URL protection policy.", "properties": { "type": { "description": "Specify the type of traffic to shed first before reaching the requests per second (RPS) limit. `BOTS` includes bots from Akamai's existing list of known bots. `CLIENT_REPUTATIONS` includes traffic from clients with a bad client reputation score. `CLOUD_PROVIDERS` includes traffic from providers like AWS, Microsoft Azure, and Google Cloud. `PROXIES` includes proxy traffic as determined by IPQualityScore (IPQS) and Akamai EdgeScape. `TOR_EXIT_NODES` includes traffic defined in Akamai's existing network list of nodes. `PLATFORM_DDOS_INTELLIGENCE` includes traffic detected by Akamai's DDOS Intelligence platform.", "enum": [ "BOTS", "CLIENT_REPUTATIONS", "CLOUD_PROVIDERS", "PROXIES", "TOR_EXIT_NODES", "PLATFORM_DDOS_INTELLIGENCE" ], "type": "string" } }, "required": [ "type" ], "title": "Client list category", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-category.yaml" } }, { "additionalProperties": false, "description": "Defines a `CLIENT_LIST` load shedding category for a URL protection policy.", "properties": { "listIds": { "description": "A list of client list identifiers to match on.", "items": { "type": "string" }, "type": "array" }, "positiveMatch": { "description": "Whether the selected client lists match.", "type": "boolean" }, "type": { "description": "Specify `CLIENT_LIST` to match on a client list.", "enum": [ "CLIENT_LIST" ], "type": "string" } }, "required": [ "type" ], "title": "Other categories", "type": "object", "x-akamai": { "file-path": "schemas/url-protection-client-list-category.yaml" } } ] }, "type": "array" }, "configId": { "description": "Uniquely identifies the security configuration.", "format": "int64", "type": "integer" }, "configVersion": { "description": "The security configuration version.", "type": "integer" }, "createDate": { "description": "__Read-only__ The timestamp when you created the URL protection policy.", "format": "date-time", "readOnly": true, "type": "string" }, "createdBy": { "description": "__Read-only__ The username of the person who created the URL protection policy.", "readOnly": true, "type": "string" }, "description": { "description": "A description of the rate policy.", "type": "string" }, "hostnamePaths": { "description": "The hostname and path combinations to match on.", "items": { "additionalProperties": false, "description": "The hostname and path combinations to match on.", "properties": { "hostname": { "description": "The hostnames you choose to match on.", "type": "string" }, "paths": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "hostname", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/url-protection-policy-hostpath.yaml" } }, "minItems": 1, "type": "array" }, "intelligentLoadShedding": { "description": "Enable or disable intelligent load shedding. If enabled, traffic that matches the load shedding categories is eligible for shedding if the origin rate exceeds the load shedding threshold.", "type": "boolean" }, "name": { "description": "The rate policy's unique name.", "type": "string" }, "policyId": { "description": "__Read-only__ Uniquely identifies the URL protection policy.", "format": "int64", "readOnly": true, "type": "integer" }, "protectionType": { "description": "If matching on `hostnamePaths`, specify `SINGLE` to match on a hostname and path, or `MULTIPLE` to match on hostname and path combinations.", "enum": [ "SINGLE", "MULTIPLE" ], "type": "string" }, "rateThreshold": { "description": "The allowed hits per second during any five-second interval.", "type": "integer" }, "sheddingThresholdHitsPerSec": { "description": "Specify the threshold value, in hits per second, after which traffic can be shed. The `sheddingThresholdHitsPerSec` value must be between 70%-90% of the `rateThreshold` value. If you enabled `intelligentLoadShedding`, this value is required.", "type": "integer" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the URL protection policy.", "format": "date-time", "readOnly": true, "type": "string" }, "updatedBy": { "description": "__Read-only__ Username who last updated the URL protection policy.", "readOnly": true, "type": "string" }, "used": { "description": "__Read-only__ Whether you're currently using the URL protection policy.", "readOnly": true, "type": "boolean" } }, "required": [ "intelligentLoadShedding", "rateThreshold", "name" ], "type": "object", "x-akamai": { "file-path": "schemas/url-protection-policy.yaml" } }, "url-protection-policy-hostpath": { "additionalProperties": false, "description": "The hostname and path combinations to match on.", "properties": { "hostname": { "description": "The hostnames you choose to match on.", "type": "string" }, "paths": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "hostname", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/url-protection-policy-hostpath.yaml" } }, "validation": { "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" } }, "validations": { "additionalProperties": false, "description": "Contains warnings, errors, or notices determined by validating the match target.", "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" } }, "required": [ "notices", "errors", "warnings" ], "type": "object", "x-akamai": { "file-path": "schemas/validations.yaml" } }, "version-notes-get-200": { "additionalProperties": false, "description": "The GET Response for Version Notes.", "properties": { "notes": { "description": "The version notes.", "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/version-notes-get-200.yaml" } }, "version-notes-put": { "additionalProperties": false, "description": "Specifies the setting for a version note update request.", "properties": { "notes": { "description": "The version notes.", "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/version-notes-put.yaml" } }, "version-notes-put-200": { "additionalProperties": false, "description": "The PUT Response for Version Notes.", "properties": { "notes": { "description": "The version notes.", "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/version-notes-put-200.yaml" } }, "waf-config-version": { "additionalProperties": false, "description": "Contains configuration version details.", "properties": { "basedOn": { "description": "__Read-only__ The version from which you cloned this version.", "readOnly": true, "type": "integer" }, "configId": { "description": "__Read-only__ Uniquely identifies the security configuration.", "readOnly": true, "type": "integer" }, "configName": { "description": "The security configuration name.", "type": "string" }, "createDate": { "description": "__Read-only__ The date when you created the configuration version.", "readOnly": true, "type": "string" }, "createdBy": { "description": "__Read-only__ The user who created the configuration version.", "readOnly": true, "type": "string" }, "production": { "additionalProperties": false, "description": "__Read-only__ The activation status of the configuration version in the production network.", "properties": { "action": { "description": "The action taken on the configuration version. Either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status, either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The activation time.", "type": "string" } }, "readOnly": true, "required": [ "status" ], "type": "object" }, "staging": { "additionalProperties": false, "description": "__Read-only__ The activation status of the configuration version in the staging network.", "properties": { "action": { "description": "The action taken on the configuration version. Either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status, either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The ISO 8601 time stamp indicating the activation time.", "type": "string" } }, "readOnly": true, "required": [ "status" ], "type": "object" }, "version": { "description": "__Read-only__ The security configuration version.", "readOnly": true, "type": "integer" }, "versionNotes": { "description": "The notes you entered for the configuration version.", "type": "string" } }, "required": [ "configId", "configName", "version", "staging", "production" ], "type": "object", "x-akamai": { "file-path": "schemas/waf-config-version.yaml" } }, "waf-config-versions": { "additionalProperties": false, "description": "Contains details about a security configuration's versions.", "properties": { "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "configName": { "description": "The name you assigned to the security configuration.", "type": "string" }, "lastCreatedVersion": { "description": "The version number of the security configuration that you created most recently.", "type": "integer" }, "page": { "description": "The current page number.", "type": "integer" }, "pageSize": { "description": "Represents the number of items per page.", "type": "integer" }, "productionActiveVersion": { "description": "The version number of the security configuration that is currently active on the production network.", "type": "integer" }, "productionExpediteRequestId": { "description": "Uniquely identifies the expedite activation request of the configuration version on the production network.", "type": "integer" }, "stagingActiveVersion": { "description": "The version number of the security configuration that is currently active on the staging network.", "type": "integer" }, "stagingExpediteRequestId": { "description": "Uniquely identifies the expedite activation request of the configuration version on the staging network.", "type": "integer" }, "totalSize": { "description": "The total number of configuration versions.", "type": "integer" }, "versionList": { "description": "The security configuration's versions.", "items": { "additionalProperties": false, "properties": { "basedOn": { "description": "The version from which you cloned this version.", "type": "integer" }, "createDate": { "description": "The date when you created the configuration version.", "type": "string" }, "createdBy": { "description": "The user who created the configuration version.", "type": "string" }, "production": { "additionalProperties": false, "description": "Contains details about the version's activation in the production network.", "properties": { "action": { "description": "The action taken on the configuration version, either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status of the configuration version. Either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The activation time.", "type": "string" } }, "required": [ "status" ], "type": "object" }, "staging": { "additionalProperties": false, "description": "Contains details about the version's activation in the staging network.", "properties": { "action": { "description": "The action taken on the configuration version, either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status of the configuration version. Either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The activation time.", "type": "string" } }, "required": [ "status" ], "type": "object" }, "version": { "description": "The security configuration's version.", "type": "integer" }, "versionNotes": { "description": "The notes you entered for the configuration version.", "type": "string" } }, "required": [ "production", "staging", "version" ], "type": "object" }, "type": "array" } }, "required": [ "configId", "configName", "lastCreatedVersion", "page", "pageSize", "totalSize" ], "type": "object", "x-akamai": { "file-path": "schemas/waf-config-versions.yaml" } } } }, "externalDocs": { "description": "See documentation for Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference" }, "info": { "description": "Manage your configurations for Kona Site Defender,\nWeb Application Protector, and Client Reputation.\n", "license": { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, "title": "Akamai: Application Security API", "version": "v1" }, "openapi": "3.0.0", "paths": { "/activations": { "post": { "description": "Activates one or more configurations globally. Note that you need to explicitly list any invalid hosts in the `acknowledgedInvalidHostsByConfig` parameter in order to successfully activate a configuration that includes invalid hostnames. If you have an invalid hostname that isn't explicitly called out you'll receive an error telling you to add them to `acknowledgedInvalidHostsByConfig`. See [Activate with invalid hostnames](https://techdocs.akamai.com/application-security/reference/activate-with-invalid-hostnames) for instructions. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-activations" }, "operationId": "post-activations", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "action": "ACTIVATE", "activationConfigs": [ { "configId": 1, "configVersion": 4 } ], "network": "STAGING", "note": "Free text notes", "notificationEmails": [ "a@example.com", "b@example.com" ] }, "schema": { "additionalProperties": false, "properties": { "acknowledgedInvalidHosts": { "description": "The list of invalid hostnames in the security configuration to activate. In some cases, you may want to activate a security configuration with hostnames that WAF can't protect (for example, hostnames not managed as Akamai properties, or managed under a different contract than the configuration). By default, the existence of invalid hostnames blocks activation with a warning. The warning includes the names of the invalid hostnames. If you want to activate a configuration with invalid hostnames, enter the hostnames in this array. This field is now deprecated. Use `acknowledgedInvalidHostsByConfig` instead.", "items": { "type": "string" }, "type": "array" }, "acknowledgedInvalidHostsByConfig": { "description": "The list of invalid hostnames per security configuration to activate. In some cases, you may want to activate a security configuration with hostnames that WAF can't protect (for example, hostnames not managed as Akamai properties, or managed under a different contract than the configuration). By default, the existence of invalid hostnames blocks activation with a warning. The warning includes the names of the invalid hostnames. If you want to activate a configuration with invalid hostnames, enter the hostnames and the configuration ID in this array.", "items": { "additionalProperties": false, "properties": { "configId": { "description": "Uniquely identifies the security configuration with invalid hostnames.", "type": "integer" }, "invalidHosts": { "description": "The list of invalid hostnames in the security configuration.", "items": { "type": "string" }, "type": "array" } }, "required": [ "configId", "invalidHosts" ], "type": "object" }, "type": "array" }, "action": { "description": "The action to take, either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "example": "{{action}}", "type": "string" }, "activationConfigs": { "description": "Specifies the security configuration and version to activate or deactivate.", "items": { "additionalProperties": false, "properties": { "configId": { "description": "The origin identifier or destination configuration to activate.", "type": "integer" }, "configVersion": { "description": "The origin version or destination configuration to activate.", "type": "integer" } }, "required": [ "configId", "configVersion" ], "type": "object" }, "maxItems": 2, "minItems": 1, "type": "array" }, "network": { "description": "The target Akamai activation environment, either `STAGING` or `PRODUCTION`.", "enum": [ "STAGING", "PRODUCTION" ], "example": "{{network}}", "type": "string" }, "note": { "description": "The notes you entered for the activation.", "example": "{{note}}", "type": "string" }, "notificationEmails": { "description": "The email addresses to notify when the activation happens.", "items": { "type": "string" }, "type": "array" } }, "required": [ "action", "activationConfigs", "network", "note", "notificationEmails" ], "type": "object", "x-akamai": { "file-path": "schemas/activations-post.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "action": "ACTIVATE", "activationConfigs": [ { "configId": 1, "configName": "config 1", "configVersion": 4, "previousConfigVersion": 2 } ], "activationId": 1234, "createDate": "2013-10-07T17:41:52+00:00", "createdBy": "mrossi", "dispatchCount": 1, "estimate": "PTM5", "network": "PRODUCTION", "status": "RECEIVED" }, "schema": { "additionalProperties": false, "description": "Contains the activation status and settings for a configuration version.", "properties": { "action": { "description": "The action performed on this activation, either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "activationConfigs": { "description": "Specifies the security configuration and activation version.", "items": { "additionalProperties": false, "properties": { "configId": { "description": "The origin identifier or the activation's destination configuration.", "type": "integer" }, "configName": { "description": "The name you assigned to the configuration. This field is provided for information purposes and only appears in the API output.", "type": "string" }, "configVersion": { "description": "The origin version or the activation's destination configuration.", "type": "integer" }, "previousConfigVersion": { "description": "__Read-only__ The previous active configuration version.", "readOnly": true, "type": "integer" } }, "required": [ "configId", "configVersion" ], "type": "object" }, "type": "array" }, "activationId": { "description": "Uniquely identifies the activation.", "type": "integer" }, "completionDate": { "description": "__Read-only__ The ISO 8601 timestamp at which the activation reaches a steady state and validates across the Akamai network.", "format": "date-time", "readOnly": true, "type": "string" }, "createDate": { "description": "__Read-only__ The ISO 8601 timestamp at which the activation request was submitted.", "format": "date-time", "readOnly": true, "type": "string" }, "createdBy": { "description": "__Read-only__ The user who created the activation request.", "readOnly": true, "type": "string" }, "dispatchCount": { "description": "__Read-only__ The number of times which this activation has been dispatched to the Akamai edge network. A number greater than 1 indicates that this activation may be retried due to network safety concerns.", "readOnly": true, "type": "integer" }, "estimate": { "description": "The estimated time remaining to complete the activation in ISO 8601 duration format, starting when the response is generated.", "type": "string" }, "network": { "description": "The Akamai activation environment, either `STAGING` or `PRODUCTION`.", "enum": [ "STAGING", "PRODUCTION" ], "type": "string" }, "status": { "description": "The current activation status, either `RECEIVED`, `LIVE`, `DEPLOYED`, `CANCELING`, `STOPPED`, `REMOVED`, `ROLLBACK`, `ACTIVATED`, `FAILED`, `CANCELLING`, or `UNDEPLOYED`.", "enum": [ "RECEIVED", "LIVE", "DEPLOYED", "STOPPED", "REMOVED", "ROLLBACK", "ACTIVATED", "FAILED", "CANCELLING", "UNDEPLOYED" ], "type": "string" } }, "required": [ "activationId", "action", "network", "status", "activationConfigs", "createdBy", "createDate" ], "type": "object", "x-akamai": { "file-path": "schemas/activation-status.yaml" } } } }, "description": "Activation request successful." }, "202": { "content": { "application/json": { "example": { "createDate": "2018-06-19T11:27:55Z", "links": { "check-status": { "href": "/appsec/v1/activations/status/f81c92c5-b150-4c41-9b53-9cef7969150a" } }, "statusId": "f81c92c5-b150-4c41-9b53-9cef7969150a" }, "schema": { "additionalProperties": false, "description": "Describes the activation request's status upon creation.", "properties": { "createDate": { "description": "The time when you submitted this activation request.", "format": "date-time", "type": "string" }, "links": { "additionalProperties": false, "description": "A 303 response returns a link to additional information about your activation request status.", "properties": { "check-status": { "description": "URL to access or perform the action on a related resource. May be expressed as an absolute server path, or relative to the current URL call.", "type": "string" } }, "required": [ "check-status" ], "type": "object" }, "statusId": { "description": "Uniquely identifies the activation request. You can use this ID to poll for the status of your activation request.", "type": "string" } }, "required": [ "statusId", "createDate" ], "type": "object", "x-akamai": { "file-path": "schemas/activation-request-status-created.yaml" } } } }, "description": "Activation request launched.", "headers": { "Location": { "description": "Location at which you can find the status of the ongoing job to create your activation request.", "schema": { "type": "string" } } } }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the configuration.", "x-akamai": { "file-path": "errors/403.yaml" } } }, "summary": "Akamai API Security Activate a Configuration Version", "tags": [ "Activations" ] }, "x-akamai": { "file-path": "paths/activations.yaml", "path-info": "/activations" } }, "/activations/status/{statusId}": { "get": { "description": "Returns the status of a long-running activation request. Any errors that occur when generating the activation cause this API to respond with the underlying error status. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-activations-status" }, "operationId": "get-activations-status", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "createDate": "2018-06-19T11:27:55Z", "statusId": "f81c92c5-b150-4c41-9b53-9cef7969150a" }, "schema": { "additionalProperties": false, "description": "Describes the status of the activation.", "properties": { "createDate": { "description": "The time when you submitted this activation request.", "format": "date-time", "type": "string" }, "statusId": { "description": "Uniquely identifies the activation request. You can use this identifier to poll for the status of your activation request.", "type": "string" } }, "required": [ "statusId", "createDate" ], "type": "object", "x-akamai": { "file-path": "schemas/activation-request-status-in-progress.yaml" } } } }, "description": "Your activation request is still being created. Keep polling this API to get the latest status.", "headers": { "Retry-After": { "description": "The recommended wait time (in seconds) before calling this endpoint to check the status again.", "schema": { "type": "string" } } } }, "303": { "content": { "application/json": { "example": { "activationId": 1234 }, "schema": { "additionalProperties": false, "description": "Describes an activation.", "properties": { "activationId": { "description": "Uniquely identifies the activation once the activation request is complete. You can use this identifier with the activation endpoints.", "type": "integer" } }, "required": [ "activationId" ], "type": "object", "x-akamai": { "file-path": "schemas/activation-request-status-complete.yaml" } } } }, "description": "Your activation is ready. Follow the redirect to get the latest status.", "headers": { "Location": { "description": "The path at which the newly created activation can be found.", "schema": { "type": "string" } } } } }, "summary": "Akamai API Security Get an Activation Request Status", "tags": [ "Activation status" ] }, "parameters": [ { "description": "UUID of this activation request status.", "example": "{{statusId}}", "in": "path", "name": "statusId", "required": true, "schema": { "example": "f81c92c5-b150-4c41-9b53-9cef7969150a", "type": "string" }, "x-akamai": { "file-path": "parameters/status-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/activations-status.yaml", "path-info": "/activations/status/{statusId}" } }, "/activations/{activationId}": { "get": { "description": "Returns the status of an activation. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-activation" }, "operationId": "get-activation", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "action": "ACTIVATE", "activationConfigs": [ { "configId": 1, "configName": "config 1", "configVersion": 4, "previousConfigVersion": 2 } ], "activationId": 1234, "createDate": "2013-10-07T17:41:52+00:00", "createdBy": "mrossi", "dispatchCount": 1, "estimate": "PTM5", "network": "PRODUCTION", "status": "RECEIVED" }, "schema": { "additionalProperties": false, "description": "Contains the activation status and settings for a configuration version.", "properties": { "action": { "description": "The action performed on this activation, either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "activationConfigs": { "description": "Specifies the security configuration and activation version.", "items": { "additionalProperties": false, "properties": { "configId": { "description": "The origin identifier or the activation's destination configuration.", "type": "integer" }, "configName": { "description": "The name you assigned to the configuration. This field is provided for information purposes and only appears in the API output.", "type": "string" }, "configVersion": { "description": "The origin version or the activation's destination configuration.", "type": "integer" }, "previousConfigVersion": { "description": "__Read-only__ The previous active configuration version.", "readOnly": true, "type": "integer" } }, "required": [ "configId", "configVersion" ], "type": "object" }, "type": "array" }, "activationId": { "description": "Uniquely identifies the activation.", "type": "integer" }, "completionDate": { "description": "__Read-only__ The ISO 8601 timestamp at which the activation reaches a steady state and validates across the Akamai network.", "format": "date-time", "readOnly": true, "type": "string" }, "createDate": { "description": "__Read-only__ The ISO 8601 timestamp at which the activation request was submitted.", "format": "date-time", "readOnly": true, "type": "string" }, "createdBy": { "description": "__Read-only__ The user who created the activation request.", "readOnly": true, "type": "string" }, "dispatchCount": { "description": "__Read-only__ The number of times which this activation has been dispatched to the Akamai edge network. A number greater than 1 indicates that this activation may be retried due to network safety concerns.", "readOnly": true, "type": "integer" }, "estimate": { "description": "The estimated time remaining to complete the activation in ISO 8601 duration format, starting when the response is generated.", "type": "string" }, "network": { "description": "The Akamai activation environment, either `STAGING` or `PRODUCTION`.", "enum": [ "STAGING", "PRODUCTION" ], "type": "string" }, "status": { "description": "The current activation status, either `RECEIVED`, `LIVE`, `DEPLOYED`, `CANCELING`, `STOPPED`, `REMOVED`, `ROLLBACK`, `ACTIVATED`, `FAILED`, `CANCELLING`, or `UNDEPLOYED`.", "enum": [ "RECEIVED", "LIVE", "DEPLOYED", "STOPPED", "REMOVED", "ROLLBACK", "ACTIVATED", "FAILED", "CANCELLING", "UNDEPLOYED" ], "type": "string" } }, "required": [ "activationId", "action", "network", "status", "activationConfigs", "createdBy", "createDate" ], "type": "object", "x-akamai": { "file-path": "schemas/activation-status.yaml" } } } }, "description": "Successfully returned activation status." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to this activation.", "x-akamai": { "file-path": "errors/403.yaml" } } }, "summary": "Akamai API Security Get Activation Status", "tags": [ "Activation status" ] }, "parameters": [ { "description": "A unique identifier for an activation.", "example": "{{activationId}}", "in": "path", "name": "activationId", "required": true, "schema": { "example": 1234, "type": "integer" }, "x-akamai": { "file-path": "parameters/activation-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/activation.yaml", "path-info": "/activations/{activationId}" } }, "/api-discovery": { "get": { "description": "List APIs discovered in your traffic that are new or not yet protected under API protections. An API is considered new if it isn't registered, and appears in the discovered APIs list if it's had at least 1000 requests over the last 30 days and at least one 2xx response. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-api-list" }, "operationId": "get-api-list", "parameters": [ { "description": "If `true`, includes all discovered APIs including ones you have hidden. By default, `false` returns only the visible APIs.", "example": "{{includeHidden}}", "in": "query", "name": "includeHidden", "schema": { "default": false, "example": true, "type": "boolean" }, "x-akamai": { "file-path": "parameters/hidden-query.yaml" } }, { "description": "Filter results by hostname or basepath. You can also match on substrings.", "example": "{{search}}", "in": "query", "name": "search", "schema": { "example": "www.example.com", "type": "string" }, "x-akamai": { "file-path": "parameters/api-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "apis": [ { "basePath": "/api/v2", "encodedBasePath": "L2FwaS92Mg", "encodedHost": "Y2RuLnh5ei5jb20", "host": "cdn.xyz.com", "lastModified": "2021-08-24", "type": "API", "visibility": "VISIBLE" }, { "basePath": "/api/v3", "encodedBasePath": "L2FwaS92Mg", "encodedHost": "Y2RuLnh5ei5jb20", "host": "host.xyz.com", "lastModified": "2021-08-29", "type": "RESOURCE", "visibility": "VISIBLE" } ] }, "schema": { "additionalProperties": false, "description": "Contains details about APIs discovered by analyzing your existing traffic.", "properties": { "apis": { "description": "A list of APIs that have been discovered but are not yet protected by API Protections.", "items": { "additionalProperties": false, "description": "Contains detected API details.", "properties": { "basePath": { "description": "The base path where the API serves content.", "type": "string" }, "encodedBasePath": { "description": "The base64 encoded value of the basepath.", "type": "string" }, "encodedHost": { "description": "The base64 encoded value of the hostname.", "type": "string" }, "host": { "description": "The hostname where the API resides.", "type": "string" }, "lastModified": { "description": "Indicates the date when API Discovery last detected traffic on this API.", "format": "date", "type": "string" }, "type": { "description": "This identifies whether it's a new `API` or a new `RESOURCE` on an existing endpoint definition.", "enum": [ "API", "RESOURCE" ], "type": "string" }, "visibility": { "description": "The visibility status, either `VISIBLE` or `HIDDEN`.", "enum": [ "VISIBLE", "HIDDEN" ], "type": "string" } }, "required": [ "host", "basePath", "encodedHost", "encodedBasePath", "type", "visibility", "lastModified" ], "type": "object", "x-akamai": { "file-path": "schemas/api-discovery.yaml" } }, "type": "array" } }, "required": [ "apis" ], "x-akamai": { "file-path": "schemas/api-discovered-list.yaml" } } } }, "description": "Successfully retrieved APIs." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security List Discovered APIs", "tags": [ "Discovered APIs" ] }, "x-akamai": { "file-path": "paths/api-discovery.yaml", "path-info": "/api-discovery" } }, "/api-discovery/host/{hostname}/basepath/{basePath}": { "get": { "description": "Returns details about an API discovered in account traffic. It is identified based on hostname and basepath. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-api-details" }, "operationId": "get-api-details", "parameters": [ { "description": "If `true`, includes all discovered APIs including ones you have hidden. By default, `false` returns only the visible APIs.", "example": "{{includeHidden}}", "in": "query", "name": "includeHidden", "schema": { "default": false, "example": true, "type": "boolean" }, "x-akamai": { "file-path": "parameters/hidden-query.yaml" } }, { "description": "Filter results by name, description, or ID. You can match on substrings.", "example": "{{search}}", "in": "query", "name": "search", "schema": { "example": "SQL Injection", "type": "string" }, "x-akamai": { "file-path": "parameters/search-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "apiEndpointIds": [ 320110 ], "basePath": "/routing/checkout/init", "discoveryType": "RESOURCE", "enrichment": { "options": 0, "browsers": 1715, "clientErrors": 0, "clientReputation": 0, "dateFirstSeen": "2021-11-30", "dateLastModified": "2021-11-30", "dateLastSeen": "2021-12-29", "deletes": 0, "dosAttackers": 0, "formats": [ "JSON" ], "gets": 0, "hostSamples": [ "example.com" ], "mobiles": 810, "paths": [ { "options": 0, "deletes": 0, "gets": 0, "posts": 1715, "puts": 0, "samples": [ "" ], "template": "" } ], "posts": 1715, "puts": 0, "redirects": 0, "requests": 1715, "requestsBadReputation": 0, "requestsLastDay": 57, "scanningTools": 0, "serverErrors": 0, "successes": 1715, "totalDailyRequests": { "2021-11-30": "57", "2021-12-01": "57", "2021-12-02": "57", "2021-12-03": "58", "2021-12-04": "57", "2021-12-05": "57", "2021-12-06": "57", "2021-12-07": "57", "2021-12-08": "58", "2021-12-09": "57", "2021-12-10": "57", "2021-12-11": "57", "2021-12-12": "57", "2021-12-13": "57", "2021-12-14": "58", "2021-12-15": "57", "2021-12-16": "57", "2021-12-17": "57", "2021-12-18": "57", "2021-12-19": "60", "2021-12-20": "57", "2021-12-21": "47", "2021-12-22": "57", "2021-12-23": "57", "2021-12-24": "59", "2021-12-25": "62", "2021-12-26": "59", "2021-12-27": "57", "2021-12-28": "57", "2021-12-29": "57" }, "totalErrors": 0, "trend": "DOWN", "webAttackers": 0, "webScrapers": 0 }, "host": "example.com", "visibility": "VISIBLE" }, "schema": { "additionalProperties": false, "description": "Describes properties for APIs discovered on your account.", "properties": { "apiEndpointIds": { "description": "The unique identifiers for APIs you're matching. This is available only for the `RESOURCE` discovery type.", "items": { "type": "integer" }, "type": "array" }, "basePath": { "description": "The base path where the API serves content.", "type": "string" }, "discoveryType": { "description": "Use `API` when you create a new API. Use `RESOURCE` to add a new resource to an existing API.", "enum": [ "API", "RESOURCE" ], "type": "string" }, "enrichment": { "additionalProperties": false, "description": "Summarizes the discovered API metrics.", "properties": { "options": { "description": "The number of detected OPTION requests the API received.", "type": "integer" }, "browsers": { "description": "The number of detected requests the API received through a browser.", "type": "integer" }, "clientErrors": { "description": "The number of detected client error responses (4xx status codes) the API returned.", "type": "integer" }, "clientReputation": { "description": "The percentage of clients with bad reputations.", "maximum": 100, "minimum": 0, "type": "number" }, "dateFirstSeen": { "description": "When the API was first detected in the Akamai network.", "type": "string" }, "dateLastModified": { "description": "When the API was last updated.", "type": "string" }, "dateLastSeen": { "description": "When the API last served traffic in the Akamai network.", "type": "string" }, "deletes": { "description": "The number of detected DELETE requests the API received.", "type": "integer" }, "dosAttackers": { "description": "The percentage of detected DoS attackers among the clients with bad reputation.", "maximum": 100, "minimum": 0, "type": "number" }, "formats": { "description": "Data formats the API returns.", "items": { "type": "string" }, "type": "array" }, "gets": { "description": "The number of detected GET requests the API received.", "type": "integer" }, "hostSamples": { "description": "The set of sample hostnames if a hostname includes a wildcard. For non-wildcard hostnames, this shows the hostname.", "items": { "type": "string" }, "type": "array" }, "mobiles": { "description": "The number of detected requests the API received through a mobile device.", "type": "integer" }, "newlyDiscovered": { "description": "Indicates whether this is a newly discovered API or and API not yet included in your API protections.", "type": "boolean" }, "paths": { "additionalProperties": false, "description": "The resource paths detected for resources that include wildcards.", "properties": { "options": { "description": "The number of detected OPTIONS requests the API received.", "type": "integer" }, "deletes": { "description": "The number of detected DELETE requests the API received.", "type": "integer" }, "gets": { "description": "The number of detected GET requests the API received.", "type": "integer" }, "posts": { "description": "The number of detected POST requests the API received.", "type": "integer" }, "puts": { "description": "The number of detected PUT requests the API received.", "type": "integer" }, "samples": { "description": "Sample resource paths detected for resources that include wildcards. For non-wildcards, this shows the full path.", "items": { "type": "string" }, "type": "array" }, "template": { "description": "The templatized paths for resources that include a wildcard.", "type": "string" } }, "type": "object" }, "posts": { "description": "The number of detected POST requests the API received.", "type": "integer" }, "puts": { "description": "The number of detected PUT requests the API received.", "type": "integer" }, "redirects": { "description": "The number of detected redirect responses (3xx status codes) the API returned.", "type": "integer" }, "requests": { "description": "The number of detected requests sent to the API.", "type": "integer" }, "requestsBadReputation": { "description": "The percentage of detected requests sent to the API by clients with the reputation score greater than five.", "maximum": 100, "minimum": 0, "type": "number" }, "requestsLastDay": { "description": "The number of detected requests sent to the API during the previous day.", "type": "integer" }, "scanningTools": { "description": "The percentage of detected scanners among the clients with bad reputations.", "maximum": 100, "minimum": 0, "type": "number" }, "serverErrors": { "description": "The number of detected server error responses (5xx status codes) the API returned.", "type": "integer" }, "successes": { "description": "The number of detected success responses (2xx status codes) the API returned.", "type": "integer" }, "totalDailyRequests": { "description": "The number of detected requests in the last 30 days.", "items": { "additionalProperties": false, "properties": { "date": { "description": "The number of detected requests on each day.", "type": "integer" } }, "type": "object" }, "type": "array" }, "totalErrors": { "description": "The number of detected error responses.", "type": "integer" }, "trend": { "description": "The trend of the current day's detected requests versus the average number of detected requests in the last 30 days, either `UP` or `DOWN`.", "enum": [ "UP", "DOWN" ], "type": "string" }, "webAttackers": { "description": "The percentage of detected web attackers among the clients with bad reputations.", "maximum": 100, "minimum": 0, "type": "number" }, "webScrapers": { "description": "The percentage of detected web scrapers among the clients with bad reputations.", "maximum": 100, "minimum": 0, "type": "number" } }, "type": "object" }, "host": { "description": "The hostname where the API resides. If you haven't configured the hostname in Property Manager, you won't be able to register the API that uses the hostname.", "type": "string" }, "visibility": { "description": "When `HIDDEN`, the API is omitted from future responses for the person who runs this operation. When `VISIBLE`, the API is included in those responses. This operation is per-user. APIs you hide under your credentials still appear unhidden for other users making the same call under their credentials.", "enum": [ "HIDDEN", "VISIBLE" ], "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/api-discovery-details-200.yaml" } } } }, "description": "Successfully retrieved the details." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get a Discovered API", "tags": [ "Discovered APIs" ] }, "put": { "description": "Hide or show an API. You can choose to include or exclude APIs from the [Get discovered APIs](https://techdocs.akamai.com/application-security/reference/get-api-list) response. This operation is per-user. If you hide an API from the response, another of your colleagues will still see that API in the response when they run this operation with their own credentials.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-api-visibility" }, "operationId": "put-api-visibility", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "hidden": true, "reason": "FALSE_POSITIVE" }, "schema": { "additionalProperties": false, "description": "Describes an API's visibility status.", "properties": { "hidden": { "description": "Describes an API's visibility status.", "example": "{{hidden}}", "type": "boolean" }, "reason": { "description": "The reason you've decided to hide the API from the API list. Use `NOT_ELIGIBLE` if you want to hide it for now and choose what to do with the API at a later time. Use `FALSE_POSITIVE` for APIs you feel are incorrectly included in the data.", "enum": [ "NOT_ELIGIBLE", "FALSE_POSITIVE" ], "example": "{{reason}}", "type": "string" } }, "required": [ "hidden" ], "type": "object", "x-akamai": { "file-path": "schemas/api-visibility.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "hidden": true, "reason": "FALSE_POSITIVE" }, "schema": { "additionalProperties": false, "description": "Describes an API's visibility status.", "properties": { "hidden": { "description": "Describes an API's visibility status.", "type": "boolean" }, "reason": { "description": "The reason you've decided to hide the API from the API list. Use `NOT_ELIGIBLE` if you want to hide it for now and choose what to do with the API at a later time. Use `FALSE_POSITIVE` for APIs you feel are incorrectly included in the data.", "enum": [ "NOT_ELIGIBLE", "FALSE_POSITIVE" ], "type": "string" } }, "required": [ "hidden" ], "type": "object", "x-akamai": { "file-path": "schemas/api-visibility.yaml" } } } }, "description": "Successfully updated the API's action." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify an API's Visibility", "tags": [ "Endpoints" ] }, "parameters": [ { "description": "The base64-encoded value of the hostname.", "example": "{{hostname}}", "in": "path", "name": "hostname", "required": true, "schema": { "example": "d3d3LmV4YW1wbGUuY29t", "type": "string" }, "x-akamai": { "file-path": "parameters/hostname-path.yaml" } }, { "description": "The base64-encoded value of the base path.", "example": "{{basePath}}", "in": "path", "name": "basePath", "required": true, "schema": { "example": "L2FwaS92MQ==", "type": "string" }, "x-akamai": { "file-path": "parameters/basepath-path.yaml" } } ], "x-akamai": { "file-path": "paths/api-discovery-base-path.yaml", "path-info": "/api-discovery/host/{hostname}/basepath/{basePath}" } }, "/api-discovery/host/{hostname}/basepath/{basePath}/endpoints": { "post": { "description": "Create a new API endpoint or add a resource to an existing endpoint. When you run this operation to add a new resource to an existing API, the API version is cloned for you and the resource is included in the new version.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-api-endpoint-resource" }, "operationId": "post-api-endpoint-resource", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "apiName": "New API", "contractId": "C-0N7RAC71", "groupId": 12345 }, "schema": { "additionalProperties": false, "description": "Describes an API endpoint or adding a new resource to an existing endpoint.", "properties": { "apiEndpointId": { "description": "A unique identifier for an API endpoint. You need this when adding a resource to an existing endpoint.", "example": "{{apiEndpointId}}", "type": "integer" }, "apiName": { "description": "The name for this API endpoint. You need this to register an endpoint.", "example": "{{apiName}}", "type": "string" }, "contractId": { "description": "A unique identifier for a contract. You need this when registering a new endpoint.", "example": "{{contractId}}", "type": "string" }, "groupId": { "description": "A unique identifier for a group. You need this when registering a new endpoint.", "example": "{{groupId}}", "type": "integer" }, "version": { "description": "The version number. You need this when adding a resource to an existing endpoint. When a version is read-only, the version is cloned and updates are included in the newly cloned version.", "example": "{{version}}", "type": "integer" } }, "type": "object", "x-akamai": { "file-path": "schemas/endpoint-post.yaml" } } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiEndPointVersion": 574127, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceMethods": [ { "apiParameters": [ { "apiChildParameters": [], "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "response": false } ], "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404 }, { "apiParameters": [ { "apiChildParameters": [], "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": { "arrayRestriction": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 }, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null }, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": null, "response": false } ], "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405 } ], "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "alfulani", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 0, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin" } ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": null, "consumeType": "any", "contractId": "C-0N7RAC71", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "hgildong", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 12345, "isGraphQL": false, "lockVersion": 0, "positiveConstrainsEnabled": null, "productionStatus": null, "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "protectedByApiKey": true, "securityScheme": { "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" }, "securitySchemeType": "apikey" }, "source": null, "stagingStatus": null, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1 }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "properties": { "ALLOW_UNDEFINED_RESPONSE_BODY_PARAMS": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. When `0`, the API does not allow responses with undefined parameters in the response body.", "enum": [ 1, 0 ], "type": "integer" }, "ALLOW_UNDEFINED_RESPONSE_HEADER_PARAMS": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response header. When set to `0`, the API does not allow responses with undefined parameters in the response header.", "enum": [ 1, 0 ], "type": "integer" }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether the API request body and resource constraints should be enforced as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "enum": [ 1, 0 ], "type": "integer" } }, "type": "object" }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "items": { "type": "integer" }, "nullable": true, "type": "array" }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. At least one hostname is required before activating the endpoint.", "items": { "type": "string" }, "type": "array" }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "enum": [ "http", "https", "http/https" ], "type": "string" }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "type": "integer" }, "apiResources": { "description": "The list of resource objects associated with the endpoint.", "items": { "additionalProperties": false, "description": "Contains information about a resource associated with an endpoint.", "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "items": { "type": "string" }, "type": "array" }, "apiResourceMethods": { "description": "The list of Method objects that represent HTTP methods the resource may respond to.", "items": { "additionalProperties": false, "description": "Contains information about a resource associated with an endpoint.", "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "items": { "type": "string" }, "type": "array" }, "apiResourceMethods": { "description": "The list of Method objects that represent HTTP methods the resource may respond to.", "items": { "additionalProperties": false, "description": "Contains information about a resource associated with an endpoint.", "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "items": { "type": "string" }, "type": "array" }, "apiResourceMethods": { "description": "Nested methods.", "items": { "type": "object" }, "type": "array" }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 8601 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/application-security/reference/concurrency-control) for details.", "type": "integer" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 8601 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "required": [ "apiResourceName", "resourcePath" ], "type": "object", "x-akamai": { "file-path": "schemas/api-method-parameters-nested.yaml" } }, "type": "array" }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 8601 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/application-security/reference/concurrency-control) for details.", "type": "integer" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 8601 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "required": [ "apiResourceName", "resourcePath" ], "type": "object", "x-akamai": { "file-path": "schemas/api-method-parameters.yaml" } }, "type": "array" }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 8601 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/application-security/reference/concurrency-control) for details.", "type": "integer" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 8601 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "required": [ "apiResourceName", "resourcePath" ], "type": "object", "x-akamai": { "file-path": "schemas/api-resource-meth-params.yaml" } }, "type": "array" }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "enum": [ "HEADER", "BASE_PATH", "QUERY" ], "type": "string" }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "required": [ "location" ], "type": "object", "x-akamai": { "file-path": "schemas/api-version.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status.", "items": { "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ], "type": "string" }, "type": "array" }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `json/xml` for dual-format APIs, `any`, or `none`.", "enum": [ "json", "xml", "json/xml", "any", "none" ], "type": "string" }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "type": "string" }, "createDate": { "description": "The ISO 8601 timestamp indicating when you created the endpoint.", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "endpointHidden": { "description": "Whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/application-security/reference/post-endpoint-show) operation.", "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/application-security/reference/concurrency-control) for details.", "type": "integer" }, "positiveConstrainsEnabled": { "description": "Whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ], "nullable": true, "type": "string" }, "productionVersion": { "description": "Contains information about an endpoint version's activation status on the production network.", "type": "object" }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "enum": [ "cookie", "header", "query" ], "type": "string" }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } }, "type": "object" }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "enum": [ "apikey" ], "type": "string" } }, "type": "object" }, "source": { "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "type": "object" }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ], "nullable": true, "type": "string" }, "stagingVersion": { "description": "Contains information about an endpoint version's activation status on the staging network.", "type": "object" }, "updateDate": { "description": "The ISO 8601 timestamp indicating when you last modified the endpoint.", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "type": "string" }, "versionHidden": { "description": "Whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/application-security/reference/post-version-show) operation.", "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "type": "integer" } }, "required": [ "apiEndPointName", "apiEndPointHosts" ], "type": "object", "x-akamai": { "file-path": "schemas/api-endpoint-with-resource.yaml" } } } }, "description": "Successfully registered an endpoint or a new resource to an existing endpoint." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Create an Endpoint or Resource", "tags": [ "Endpoints" ] }, "get": { "description": "Returns API endpoints for the specified hostname and base path. Unlike [Get discovered APIs](https://techdocs.akamai.com/application-security/reference/get-api-list), this operation returns APIs already in your API definitions. When you see a discovered API or a new resource, add it to your definition with [Create an endpoint or resource](https://techdocs.akamai.com/application-security/reference/post-api-endpoint-resource).", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-discovered-api-endpoints" }, "operationId": "get-discovered-api-endpoints", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "apis": [ { "apiEndPointId": 613101, "apiEndPointName": "Access Lambda Live", "latest": { "basePath": "/access-api/v1", "version": 3 }, "production": { "basePath": "/access-api/v1", "version": 1 }, "staging": { "basePath": "/access-api/v1", "version": 2 } }, { "apiEndPointId": 613102, "apiEndPointName": "New Broadcast API", "latest": { "basePath": "/access-api", "version": 8 }, "production": { "basePath": "/access-api", "version": 4 }, "staging": { "basePath": "/access-api", "version": 5 } } ] }, "schema": { "additionalProperties": false, "description": "Specifies the list of matching API Definitions.", "properties": { "configurations": { "description": "A list of API Definitions.", "items": { "additionalProperties": false, "description": "Specifies the details of an API Definition.", "properties": { "apiEndPointId": { "description": "A unique identifier for an API endpoint.", "type": "integer" }, "apiEndPointName": { "description": "The name for this API endpoint.", "type": "string" }, "latest": { "additionalProperties": false, "description": "Summarizes this API endpoint's latest version.", "properties": { "basePath": { "description": "The API endpoint's base path.", "type": "string" }, "version": { "description": "The version number.", "type": "integer" } }, "type": "object" }, "production": { "additionalProperties": false, "description": "Summarizes this API endpoint's current deployment on Akamai's production network.", "properties": { "basePath": { "description": "The API endpoint's base path.", "type": "string" }, "version": { "description": "The production version number.", "type": "integer" } }, "type": "object" }, "staging": { "additionalProperties": false, "description": "Summarizes this API endpoint's current deployment on Akamai's staging network.", "properties": { "basePath": { "description": "The API endpoint's base path.", "type": "string" }, "version": { "description": "The staging version number.", "type": "integer" } }, "type": "object" } }, "required": [ "apiEndPointId", "apiEndPointName", "latest" ], "type": "object", "x-akamai": { "file-path": "schemas/api-match.yaml" } }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/api-matches.yaml" } } } }, "description": "Successfully returned the data." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security List Discovered API Endpoints", "tags": [ "Endpoints" ] }, "parameters": [ { "description": "The base64-encoded value of the hostname.", "example": "{{hostname}}", "in": "path", "name": "hostname", "required": true, "schema": { "example": "d3d3LmV4YW1wbGUuY29t", "type": "string" }, "x-akamai": { "file-path": "parameters/hostname-path.yaml" } }, { "description": "The base64-encoded value of the base path.", "example": "{{basePath}}", "in": "path", "name": "basePath", "required": true, "schema": { "example": "L2FwaS92MQ==", "type": "string" }, "x-akamai": { "file-path": "parameters/basepath-path.yaml" } } ], "x-akamai": { "file-path": "paths/api-discovery-base-path-endpoints.yaml", "path-info": "/api-discovery/host/{hostname}/basepath/{basePath}/endpoints" } }, "/configs": { "post": { "description": "Create a new WAP or KSD security configuration. KSD security configurations start out empty, and WAP configurations are created with preset values. The contract you pass in the request body determines which product you use. You can edit the default settings included in the WAP configuration, but you'll need to run additional operations in this API to select specific protections for KSD. Your KSD configuration needs match targets and protection settings before you activate. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-config" }, "operationId": "post-config", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "contractId": "C-0N7RAC7", "description": "description1", "groupId": 32145, "hostnames": [ "new.example.com", "www.example.com" ], "name": "newapitest" }, "schema": { "additionalProperties": false, "description": "Specifies the details of a security config.", "properties": { "contractId": { "description": "Contract ID.", "example": "{{contractId}}", "type": "string" }, "createFrom": { "additionalProperties": false, "description": "Contains details about a source configuration and version for cloning a new security configuration.", "properties": { "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "version": { "description": "The configuration version to clone from.", "type": "integer" } }, "required": [ "configId", "version" ], "type": "object" }, "description": { "description": "Describes the security configuration.", "example": "{{description}}", "type": "string" }, "groupId": { "description": "Group ID.", "example": "{{groupId}}", "type": "integer" }, "hostnames": { "description": "List of hostnames to be added to the configuration.", "items": { "type": "string" }, "type": "array" }, "name": { "description": "The name you assigned to the security configuration.", "example": "{{name}}", "type": "string" } }, "required": [ "name", "description", "hostnames" ], "type": "object", "x-akamai": { "file-path": "schemas/config-post.yaml" } } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "configId": 71710, "description": "description1", "name": "newapitest", "version": 1 }, "schema": { "additionalProperties": false, "description": "Specifies the details of a security config.", "properties": { "contractId": { "description": "Contract ID.", "type": "string" }, "createFrom": { "additionalProperties": false, "description": "Contains details about a source configuration and version for cloning a new security configuration.", "properties": { "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "version": { "description": "The configuration version to clone from.", "type": "integer" } }, "required": [ "configId", "version" ], "type": "object" }, "description": { "description": "Describes the security configuration.", "type": "string" }, "groupId": { "description": "Group ID.", "type": "integer" }, "hostnames": { "description": "List of hostnames to be added to the configuration.", "items": { "type": "string" }, "type": "array" }, "name": { "description": "The name you assigned to the security configuration.", "type": "string" } }, "required": [ "name", "description", "hostnames" ], "type": "object", "x-akamai": { "file-path": "schemas/config-post.yaml" } } } }, "description": "Successfully created a security configuration." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have create access for security configurations.", "x-akamai": { "file-path": "errors/403.yaml" } } }, "summary": "Akamai API Security Create a Configuration", "tags": [ "General configuration settings" ] }, "get": { "description": "Lists available security configurations. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-configs" }, "operationId": "get-configs", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "configurations": [ { "description": "(user notes)", "id": 22330, "latestVersion": 5, "name": "CaroTestTransition2Versioning" }, { "id": 7180, "latestVersion": 9, "name": "Corporate Sites WAF", "productionHostnames": [ "example.com", "www.example.net", "m.example.com" ], "productionVersion": 1, "stagingVersion": 2 } ] }, "schema": { "additionalProperties": false, "description": "Specifies the details of a security config.", "properties": { "configurations": { "description": "A list of security configurations.", "items": { "additionalProperties": false, "description": "Contains details about a security configuration.", "properties": { "description": { "description": "__Read-only__ Describes the security configuration.", "readOnly": true, "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the security configuration.", "readOnly": true, "type": "integer" }, "latestVersion": { "description": "__Read-only__ The latest version of the security configuration.", "readOnly": true, "type": "integer" }, "name": { "description": "__Read-only__ The security configuration name.", "readOnly": true, "type": "string" }, "productionHostnames": { "description": "__Read-only__ The list of hostnames protected by this security configuration in the production network.", "items": { "type": "string" }, "readOnly": true, "type": "array" }, "productionVersion": { "description": "__Read-only__ The latest security configuration version active in the production network.", "readOnly": true, "type": "integer" }, "stagingVersion": { "description": "__Read-only__ The latest security configuration version active in the staging network.", "readOnly": true, "type": "integer" } }, "required": [ "id", "latestVersion", "name" ], "type": "object", "x-akamai": { "file-path": "schemas/config-get.yaml" } }, "type": "array" } }, "required": [ "configurations" ], "type": "object", "x-akamai": { "file-path": "schemas/configs-get.yaml" } } } }, "description": "Successful response." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Configurations", "tags": [ "General configuration settings" ] }, "x-akamai": { "file-path": "paths/configs.yaml", "path-info": "/configs" } }, "/configs/{configId}": { "get": { "description": "Retrieves the configuration details.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-config" }, "operationId": "get-config", "parameters": [ { "description": "If `true`, include the list of hostnames protected by this security configuration in the production network. If `false`, exclude the list of hostnames protected by this security configuration in the production network.", "example": "{{includeHostnames}}", "in": "query", "name": "includeHostnames", "required": false, "schema": { "default": false, "example": false, "type": "boolean" }, "x-akamai": { "file-path": "parameters/include-hostnames-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "id": 7180, "latestVersion": 9, "name": "Corporate Sites WAF", "productionHostnames": [ "example.com", "www.example.net", "m.example.com" ], "productionVersion": 1, "stagingVersion": 2 }, "schema": { "additionalProperties": false, "description": "Contains details about a security configuration.", "properties": { "description": { "description": "__Read-only__ Describes the security configuration.", "readOnly": true, "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the security configuration.", "readOnly": true, "type": "integer" }, "latestVersion": { "description": "__Read-only__ The latest version of the security configuration.", "readOnly": true, "type": "integer" }, "name": { "description": "__Read-only__ The security configuration name.", "readOnly": true, "type": "string" }, "productionHostnames": { "description": "__Read-only__ The list of hostnames protected by this security configuration in the production network.", "items": { "type": "string" }, "readOnly": true, "type": "array" }, "productionVersion": { "description": "__Read-only__ The latest security configuration version active in the production network.", "readOnly": true, "type": "integer" }, "stagingVersion": { "description": "__Read-only__ The latest security configuration version active in the staging network.", "readOnly": true, "type": "integer" } }, "required": [ "id", "latestVersion", "name" ], "type": "object", "x-akamai": { "file-path": "schemas/config-get.yaml" } } } }, "description": "Successful response." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Get a Security Configuration", "tags": [ "General configuration settings" ] }, "put": { "description": "Update the name of your security configuration. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-config" }, "operationId": "put-config", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "description": "description1", "name": "newapitest" }, "schema": { "additionalProperties": false, "description": "Contains details of a security configuration.", "properties": { "description": { "description": "Describes the security configuration.", "example": "{{description}}", "type": "string" }, "name": { "description": "The name you assigned to the security configuration.", "example": "{{name}}", "type": "string" } }, "required": [ "name" ], "type": "object", "x-akamai": { "file-path": "schemas/config-rename.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "description": "description1", "name": "newapitest" }, "schema": { "additionalProperties": false, "description": "Contains details of a security configuration.", "properties": { "description": { "description": "Describes the security configuration.", "type": "string" }, "name": { "description": "The name you assigned to the security configuration.", "type": "string" } }, "required": [ "name" ], "type": "object", "x-akamai": { "file-path": "schemas/config-rename.yaml" } } } }, "description": "Successfully renamed the security configuration." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Rename a Security Configuration", "tags": [ "General configuration settings" ] }, "delete": { "description": "Deletes the specified security configuration. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/delete-config" }, "operationId": "delete-config", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "204": { "content": {}, "description": "Successfully deleted the security configuration." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Security configuration is active in a network and not editable.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Delete a Configuration", "tags": [ "General configuration settings" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config.yaml", "path-info": "/configs/{configId}" } }, "/configs/{configId}/activations": { "get": { "description": "Lists the activation history for a configuration. The history is an array in descending order of `submitDate`. The most recent submitted activation lists first. _Products_: All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-activation-history" }, "operationId": "get-activation-history", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "activationHistory": [ { "activatedBy": "adevi", "activationDate": "2013-10-07T17:41:52+00:00", "activationId": 1234, "network": "PRODUCTION", "notes": "Activated with new network lists", "status": "Activated", "version": 1 }, { "activatedBy": "jperez", "activationDate": "2013-10-07T15:41:52+00:00", "activationId": 1132, "network": "STAGING", "notes": "Activated with new network lists", "statuss": "Activation in Progress", "version": 2 } ], "configId": 123 }, "schema": { "additionalProperties": false, "properties": { "activationHistory": { "description": "Activations of this configuration.", "items": { "additionalProperties": false, "properties": { "activatedBy": { "description": "Username of the person that created this activation request.", "type": "string" }, "activationDate": { "description": "Date and time at which this activation request was submitted.", "format": "date-time", "type": "string" }, "activationId": { "description": "Uniquely identifies the activation.", "type": "integer" }, "network": { "description": "The target Akamai activation environment, either `STAGING` or `PRODUCTION`.", "enum": [ "STAGING", "PRODUCTION" ], "type": "string" }, "notes": { "description": "Information on activation.", "type": "string" }, "status": { "description": "The status of the activation. Either `ACTIVATED`, `DEACTIVATED`, `ACTIVATION_IN_PROGRESS`, `DEACTIVATION_IN_PROGRESS`, `EXPEDITED`, `ACTIVATION_FAILED`, `EXPEDITE_ACTIVATION_CANCELLED`, or `DEACTIVATION_FAILED`.", "enum": [ "ACTIVATED", "DEACTIVATED", "ACTIVATION_IN_PROGRESS", "DEACTIVATION_IN_PROGRESS", "EXPEDITED", "ACTIVATION_FAILED", "EXPEDITE_ACTIVATION_CANCELLED", "DEACTIVATION_FAILED" ], "type": "string" }, "version": { "description": "Version number.", "type": "integer" } }, "required": [ "activationId", "version", "status", "network", "activatedBy", "activationDate" ], "type": "object", "x-akamai": { "file-path": "schemas/activation-history.yaml" } }, "type": "array" }, "configId": { "description": "Unique security configuration identifier.", "type": "integer" } }, "required": [ "configId", "activationHistory" ], "type": "object", "x-akamai": { "file-path": "schemas/activation-history-list.yaml" } } } }, "description": "Successful response." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Activation History", "tags": [ "Activation history" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-activations.yaml", "path-info": "/configs/{configId}/activations" } }, "/configs/{configId}/custom-rules": { "post": { "description": "Creates a new custom rule. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-config-custom-rules" }, "operationId": "post-config-custom-rules", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "conditions": [ { "positiveMatch": true, "type": "requestMethodMatch", "value": [ "GET", "CONNECT", "TRACE", "PUT", "POST", "OPTIONS", "DELETE", "HEAD" ] }, { "positiveMatch": true, "type": "pathMatch", "value": [ "/H", "/Li", "/He" ] }, { "positiveMatch": true, "type": "extensionMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "filenameMatch", "value": [ "He", "H", "Li" ], "valueCase": false, "valueWildcard": false }, { "positiveMatch": true, "type": "requestProtocolVersionMatch", "value": "HTTP/0.9" }, { "name": [ "H", "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "name": [ "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "C", "Be", "B" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "headerOrderMatch", "value": "H:He" }, { "name": "H", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "H", "He", "Li" ], "valueCase": true, "valueWildcard": true }, { "name": "Be", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "O", "N", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "C", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Carbon", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "N", "nameCase": false, "nameWildcard": false, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Nitrogen", "N" ], "valueCase": false, "valueWildcard": false }, { "name": "H", "positiveMatch": true, "type": "argsPostMatch", "value": [ "H", "Hydrogen" ] }, { "name": "He", "positiveMatch": true, "type": "argsPostMatch", "value": [ "He", "Helium" ] }, { "positiveMatch": true, "type": "argsPostNamesMatch", "value": [ "Carbon", "Oxygen", "Nitrogen", "Chlorine" ] }, { "positiveMatch": true, "type": "clientCertPresentMatch" }, { "positiveMatch": false, "type": "clientCertValidMatch" }, { "positiveMatch": true, "type": "clientTlsFingerprintMatch", "value": [ "aebbfa8e53e8661f" ] }, { "positiveMatch": true, "type": "hostMatch", "value": [ "example.com", "*.Nitrogen.gb" ] }, { "positiveMatch": false, "type": "asNumberMatch", "useXForwardForHeaders": true, "value": [ "2145697538" ] }, { "positiveMatch": false, "type": "geoMatch", "useXForwardForHeaders": true, "value": [ "AD" ] }, { "positiveMatch": false, "type": "ipAddressMatch", "useXForwardForHeaders": true, "value": [ "81.477.377.57" ] }, { "positiveMatch": true, "type": "clientListMatch", "useXForwardForHeaders": true, "value": [ "86744_AZURETLS", "83629_40KHG" ] } ], "description": "Can I create all conditions?", "effectiveTimePeriod": { "endDate": "2021-11-02T01:00:00.000Z", "startDate": "2021-08-05T01:00:00.000Z" }, "loggingOptions": [ { "id": "CLIENT_TLS_FINGERPRINT_MATCH" } ], "name": "Fat Rule", "operation": "AND", "samplingRate": 10, "stagingOnly": true, "structured": true, "tag": [ "test" ] }, "schema": { "additionalProperties": false, "description": "Contains settings for a custom rule.", "properties": { "conditions": { "description": "Contains the details about the condition that triggers the custom rule.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to the custom rule.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ] }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "nameWildcard": { "description": "Whether the provided header `name` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The type of condition. See [CustomRule condition type values](https://techdocs.akamai.com/application-security/reference/condition-type-values).", "enum": [ "cookieMatch", "extensionMatch", "filenameMatch", "ipMatch", "pathMatch", "requestHeaderMatch", "requestMethodMatch", "requestProtocolVersionMatch", "uriQueryMatch", "headerOrderMatch", "argsPostMatch", "argsPostNamesMatch", "clientCertPresentMatch", "clientCertValidMatch", "clientTlsFingerprintMatch", "hostMatch", "ipAddressMatch", "geoMatch", "asNumberMatch", "clientListMatch" ], "type": "string" }, "useXForwardForHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This only applies when the `type` is `ipAddressMatch`, `geoMatch`, `asNumberMatch`, or `clientListMatch`.", "type": "boolean" }, "value": { "description": "The value that triggers the condition when matched or not matched. Specify a string for the `requestProtocolVersionMatch`, `clientCertPresentMatch`, `clientCertValidMatch`, and `headerOrderMatch` conditions. For all other conditions, specify an array of strings.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ], "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueExactMatch": { "description": "Whether to consider only exact matches of the header `value`.", "type": "boolean" }, "valueIgnoreSegment": { "description": "Whether to ignore path segments when matching. This only applies when the `type` is `pathMatch`.", "type": "boolean" }, "valueNormalize": { "description": "Whether to normalize the value of the header when matching. This only applies to type values of `extensionMatch` and `pathMatch`.", "type": "boolean" }, "valueRecursive": { "description": "Whether to use recursion when matching. When `false`, you can only match on the filename in the root folder. This only applies when the condition `type` is `filenameMatch`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies when the condition `type` is `requestHeaderMatch`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object" }, "type": "array" }, "description": { "description": "The custom rule description.", "example": "{{description}}", "type": "string" }, "effectiveTimePeriod": { "additionalProperties": false, "description": "The time period during which the custom rule is active.", "properties": { "endDate": { "description": "An ISO 8601 timestamp that sets when the rule expires or deactivates.", "type": "string" }, "startDate": { "description": "An ISO 8601 timestamp that sets when the rule activates.", "format": "date-time", "type": "string" }, "status": { "description": "The current status of the rule based on its `startDate` and `endDate`. By default, rules are active for 30 days. When `ACTIVE`, the rule triggers when conditions are met. When `INACTIVE`, the rule doesn't trigger. When `EXPIRING`, the rule still triggers because it's still active until its specified expiration date. When the rule's status is `EXPIRED`, the rule is inactive and doesn't trigger. If your rule expires and you want to use it again, make a PUT request to [Modify a custom rule](https://techdocs.akamai.com/application-security/reference/put-config-custom-rule) with the new dates you'd like the rule to be active.", "enum": [ "active", "inactive", "expiring", "expired" ], "type": "string" } }, "required": [ "endDate", "startDate" ], "type": "object" }, "id": { "description": "Uniquely identifies the rule.", "example": "{{id}}", "type": "integer" }, "inspectRequest": { "description": "Whether to inspect the HTTP request for unstructured custom rules.", "example": "{{inspectRequest}}", "type": "boolean" }, "inspectResponse": { "description": "Whether to inspect the HTTP response for unstructured custom rules.", "example": "{{inspectResponse}}", "type": "boolean" }, "loggingOptions": { "description": "The specific conditions to be logged.", "items": { "additionalProperties": false, "description": "Condition to be logged.", "properties": { "id": { "description": "The unique identifier for each logging option. See [Logging option values](https://techdocs.akamai.com/application-security/reference/logging-option-values).", "enum": [ "CLIENT_TLS_FINGERPRINT_MATCH", "HEADER_ORDER_MATCH", "REQUEST_HEADER_MATCH", "COOKIE_MATCH", "URI_QUERY_MATCH", "ARGS_POST_MATCH" ], "type": "string" }, "name": { "description": "A description of the logging option type.", "type": "string" }, "value": { "description": "The value on which to match when determining whether to log the custom rule condition.", "type": "string" } }, "required": [ "id" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-option.yaml" } }, "type": "array" }, "metadata": { "description": "The metadata you provided for unstructured custom rules.", "example": "{{metadata}}", "type": "string" }, "name": { "description": "The custom rule name.", "example": "{{name}}", "type": "string" }, "operation": { "description": "Specify `AND` logic to require all conditions, or `OR` logic to require at least one condition to match.", "enum": [ "AND", "OR" ], "example": "{{operation}}", "type": "string" }, "ruleActivated": { "description": "Whether the rule is active in the configuration.", "example": "{{ruleActivated}}", "type": "boolean" }, "samplingRate": { "description": "The portion of traffic to sample, expressed as a percent.", "example": "{{samplingRate}}", "maximum": 100, "minimum": 0, "type": "integer" }, "stagingOnly": { "default": false, "description": "Whether to show traffic from only the staging network, or all traffic. The default setting is `false` and only shows in the response when `true`. ", "example": "{{stagingOnly}}", "type": "boolean" }, "structured": { "description": "Whether you created the rule with the structured custom rule builder or free-form XML. This needs to be `true`.", "example": "{{structured}}", "type": "boolean" }, "tag": { "description": "The list of labels you assigned to the custom rule.", "items": { "type": "string" }, "type": "array" }, "version": { "description": "The custom rule version.", "example": "{{version}}", "type": "integer" } }, "required": [ "name", "operation", "structured" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-rule.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "conditions": [ { "positiveMatch": true, "type": "requestMethodMatch", "value": [ "GET", "CONNECT", "TRACE", "PUT", "POST", "OPTIONS", "DELETE", "HEAD" ] }, { "positiveMatch": true, "type": "pathMatch", "value": [ "/H", "/Li", "/He" ] }, { "positiveMatch": true, "type": "extensionMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "filenameMatch", "value": [ "He", "H", "Li" ], "valueCase": false, "valueWildcard": false }, { "positiveMatch": true, "type": "requestProtocolVersionMatch", "value": "HTTP/0.9" }, { "name": [ "H", "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "name": [ "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "C", "Be", "B" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "headerOrderMatch", "value": "H:He" }, { "name": "H", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "H", "He", "Li" ], "valueCase": true, "valueWildcard": true }, { "name": "Be", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "O", "N", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "C", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Carbon", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "N", "nameCase": false, "nameWildcard": false, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Nitrogen", "N" ], "valueCase": false, "valueWildcard": false }, { "name": "H", "positiveMatch": true, "type": "argsPostMatch", "value": [ "H", "Hydrogen" ] }, { "name": "He", "positiveMatch": true, "type": "argsPostMatch", "value": [ "He", "Helium" ] }, { "positiveMatch": true, "type": "argsPostNamesMatch", "value": [ "Carbon", "Oxygen", "Nitrogen", "Chlorine" ] }, { "positiveMatch": true, "type": "clientCertPresentMatch" }, { "positiveMatch": true, "type": "clientCertValidMatch" }, { "positiveMatch": true, "type": "clientTlsFingerprintMatch", "value": [ "aebbfa8e53e8661f" ] }, { "positiveMatch": true, "type": "hostMatch", "value": [ "example.com", "*.Nitrogen.gb" ] }, { "positiveMatch": false, "type": "asNumberMatch", "useXForwardForHeaders": true, "value": [ "2145697538" ] }, { "positiveMatch": false, "type": "geoMatch", "useXForwardForHeaders": true, "value": [ "AD" ] }, { "positiveMatch": false, "type": "ipAddressMatch", "useXForwardForHeaders": true, "value": [ "81.477.377.57" ] }, { "positiveMatch": true, "type": "clientListMatch", "useXForwardForHeaders": true, "value": [ "86744_AZURETLS", "83629_40KHG" ] } ], "description": "Can I create all conditions?", "effectiveTimePeriod": { "endDate": "2021-11-02T01:00:00.000Z", "startDate": "2021-08-05T01:00:00.000Z", "status": "expired" }, "id": 661699, "loggingOptions": [ { "id": "CLIENT_TLS_FINGERPRINT_MATCH" } ], "name": "Fat Rule", "operation": "AND", "ruleActivated": false, "samplingRate": 10, "stagingOnly": true, "tag": [ "test" ], "version": 1 }, "schema": { "additionalProperties": false, "description": "Contains settings for a custom rule.", "properties": { "conditions": { "description": "Contains the details about the condition that triggers the custom rule.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to the custom rule.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ] }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "nameWildcard": { "description": "Whether the provided header `name` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The type of condition. See [CustomRule condition type values](https://techdocs.akamai.com/application-security/reference/condition-type-values).", "enum": [ "cookieMatch", "extensionMatch", "filenameMatch", "ipMatch", "pathMatch", "requestHeaderMatch", "requestMethodMatch", "requestProtocolVersionMatch", "uriQueryMatch", "headerOrderMatch", "argsPostMatch", "argsPostNamesMatch", "clientCertPresentMatch", "clientCertValidMatch", "clientTlsFingerprintMatch", "hostMatch", "ipAddressMatch", "geoMatch", "asNumberMatch", "clientListMatch" ], "type": "string" }, "useXForwardForHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This only applies when the `type` is `ipAddressMatch`, `geoMatch`, `asNumberMatch`, or `clientListMatch`.", "type": "boolean" }, "value": { "description": "The value that triggers the condition when matched or not matched. Specify a string for the `requestProtocolVersionMatch`, `clientCertPresentMatch`, `clientCertValidMatch`, and `headerOrderMatch` conditions. For all other conditions, specify an array of strings.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ], "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueExactMatch": { "description": "Whether to consider only exact matches of the header `value`.", "type": "boolean" }, "valueIgnoreSegment": { "description": "Whether to ignore path segments when matching. This only applies when the `type` is `pathMatch`.", "type": "boolean" }, "valueNormalize": { "description": "Whether to normalize the value of the header when matching. This only applies to type values of `extensionMatch` and `pathMatch`.", "type": "boolean" }, "valueRecursive": { "description": "Whether to use recursion when matching. When `false`, you can only match on the filename in the root folder. This only applies when the condition `type` is `filenameMatch`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies when the condition `type` is `requestHeaderMatch`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object" }, "type": "array" }, "description": { "description": "The custom rule description.", "type": "string" }, "effectiveTimePeriod": { "additionalProperties": false, "description": "The time period during which the custom rule is active.", "properties": { "endDate": { "description": "An ISO 8601 timestamp that sets when the rule expires or deactivates.", "type": "string" }, "startDate": { "description": "An ISO 8601 timestamp that sets when the rule activates.", "format": "date-time", "type": "string" }, "status": { "description": "The current status of the rule based on its `startDate` and `endDate`. By default, rules are active for 30 days. When `ACTIVE`, the rule triggers when conditions are met. When `INACTIVE`, the rule doesn't trigger. When `EXPIRING`, the rule still triggers because it's still active until its specified expiration date. When the rule's status is `EXPIRED`, the rule is inactive and doesn't trigger. If your rule expires and you want to use it again, make a PUT request to [Modify a custom rule](https://techdocs.akamai.com/application-security/reference/put-config-custom-rule) with the new dates you'd like the rule to be active.", "enum": [ "active", "inactive", "expiring", "expired" ], "type": "string" } }, "required": [ "endDate", "startDate" ], "type": "object" }, "id": { "description": "Uniquely identifies the rule.", "type": "integer" }, "inspectRequest": { "description": "Whether to inspect the HTTP request for unstructured custom rules.", "type": "boolean" }, "inspectResponse": { "description": "Whether to inspect the HTTP response for unstructured custom rules.", "type": "boolean" }, "loggingOptions": { "description": "The specific conditions to be logged.", "items": { "additionalProperties": false, "description": "Condition to be logged.", "properties": { "id": { "description": "The unique identifier for each logging option. See [Logging option values](https://techdocs.akamai.com/application-security/reference/logging-option-values).", "enum": [ "CLIENT_TLS_FINGERPRINT_MATCH", "HEADER_ORDER_MATCH", "REQUEST_HEADER_MATCH", "COOKIE_MATCH", "URI_QUERY_MATCH", "ARGS_POST_MATCH" ], "type": "string" }, "name": { "description": "A description of the logging option type.", "type": "string" }, "value": { "description": "The value on which to match when determining whether to log the custom rule condition.", "type": "string" } }, "required": [ "id" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-option.yaml" } }, "type": "array" }, "metadata": { "description": "The metadata you provided for unstructured custom rules.", "type": "string" }, "name": { "description": "The custom rule name.", "type": "string" }, "operation": { "description": "Specify `AND` logic to require all conditions, or `OR` logic to require at least one condition to match.", "enum": [ "AND", "OR" ], "type": "string" }, "ruleActivated": { "description": "Whether the rule is active in the configuration.", "type": "boolean" }, "samplingRate": { "description": "The portion of traffic to sample, expressed as a percent.", "maximum": 100, "minimum": 0, "type": "integer" }, "stagingOnly": { "default": false, "description": "Whether to show traffic from only the staging network, or all traffic. The default setting is `false` and only shows in the response when `true`. ", "type": "boolean" }, "structured": { "description": "Whether you created the rule with the structured custom rule builder or free-form XML. This needs to be `true`.", "type": "boolean" }, "tag": { "description": "The list of labels you assigned to the custom rule.", "items": { "type": "string" }, "type": "array" }, "version": { "description": "The custom rule version.", "type": "integer" } }, "required": [ "name", "operation", "structured" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-rule.yaml" } } } }, "description": "Responds with the newly created rule." } }, "summary": "Akamai API Security Create a Custom Rule", "tags": [ "Shared resources: Custom rules" ] }, "get": { "description": "Lists custom rules defined in a security configuration. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-configs-custom-rules" }, "operationId": "get-configs-custom-rules", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "customRules": [ { "effectiveTimePeriod": { "endDate": "2021-11-02T01:00:00.000Z", "startDate": "2021-08-05T01:00:00.000Z", "status": "expired" }, "id": 111111, "link": "/appsec/v1/configs/99999/customRules/111111", "name": "Example 1", "samplingRate": 10, "status": "activated", "version": 1 }, { "effectiveTimePeriod": { "endDate": "2021-11-02T01:00:00.000Z", "startDate": "2021-08-05T01:00:00.000Z", "status": "expired" }, "id": 111112, "link": "/appsec/v1/configs/99999/customRules/111112", "name": "Example 2", "samplingRate": 10, "status": "published", "version": 1 }, { "effectiveTimePeriod": { "endDate": "2021-11-02T01:00:00.000Z", "startDate": "2021-08-05T01:00:00.000Z", "status": "expired" }, "id": 111113, "link": "/appsec/v1/configs/99999/customRules/111113", "name": "Example 3", "samplingRate": 25, "status": "unused", "version": 2 } ] }, "schema": { "additionalProperties": false, "description": "Describes the custom rule's basic information.", "properties": { "customRules": { "description": "Describes basic information about a custom rule, such as activation status or time the rule is active.", "items": { "additionalProperties": false, "properties": { "effectiveTimePeriod": { "additionalProperties": false, "description": "The time period during which the custom rule is active.", "properties": { "endDate": { "description": "An ISO 8601 timestamp that sets when the rule expires or deactivates.", "type": "string" }, "startDate": { "description": "An ISO 8601 timestamp that sets when the rule activates.", "format": "date-time", "type": "string" }, "status": { "description": "The current status of the rule based on its `startDate` and `endDate`. By default, rules are active for 30 days. When `ACTIVE`, the rule triggers when conditions are met. When `INACTIVE`, the rule doesn't trigger. When `EXPIRING`, the rule still triggers because it's still active until its specified expiration date. When the rule's status is `EXPIRED`, the rule is inactive and doesn't trigger. If your rule expires and you want to use it again, make a PUT request to [Modify a custom rule](https://techdocs.akamai.com/application-security/reference/put-config-custom-rule) with the new dates you'd like the rule to be active.", "enum": [ "active", "inactive", "expiring", "expired" ], "type": "string" } }, "required": [ "endDate", "startDate" ], "type": "object" }, "id": { "description": "Uniquely identifies the custom rule.", "type": "integer" }, "link": { "description": "The link to the full custom rule definition. This member is only available when you run the [List custom rules](https://techdocs.akamai.com/application-security/reference/get-configs-custom-rules) operation.", "type": "string" }, "name": { "description": "The name you assign to the custom rule.", "type": "string" }, "samplingRate": { "description": "The portion of traffic to sample, expressed as a percent.", "maximum": 100, "minimum": 0, "type": "integer" }, "status": { "description": "The custom rule deployment status. Either `activated` if a rule is enabled in at least one security policy within a security configuration currently active in production, `published` if a rule is associated with at least one security policy in an inactive security configuration, or `unused` if a rule exists as a shared resource, but isn't associated with any security policy. This member is only available when you run the [List custom rules](https://techdocs.akamai.com/application-security/reference/get-configs-custom-rules) operation.", "enum": [ "activated", "published", "unused" ], "type": "string" }, "version": { "description": "The custom rule version.", "type": "integer" } }, "required": [ "id", "link", "name", "status", "version" ], "type": "object" }, "type": "array" } }, "required": [ "customRules" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-rules.yaml" } } } }, "description": "All the latest custom rules for this configuration." } }, "summary": "Akamai API Security List Custom Rules", "tags": [ "Shared resources: Custom rules" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-custom-rules.yaml", "path-info": "/configs/{configId}/custom-rules" } }, "/configs/{configId}/custom-rules/{ruleId}": { "get": { "description": "Returns the details of a custom rule. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-config-custom-rule" }, "operationId": "get-config-custom-rule", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "conditions": [ { "positiveMatch": true, "type": "requestMethodMatch", "value": [ "GET", "CONNECT", "TRACE", "PUT", "POST", "OPTIONS", "DELETE", "HEAD" ] }, { "positiveMatch": true, "type": "pathMatch", "value": [ "/H", "/Li", "/He" ] }, { "positiveMatch": true, "type": "extensionMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "filenameMatch", "value": [ "He", "H", "Li" ], "valueCase": false, "valueWildcard": false }, { "positiveMatch": true, "type": "requestProtocolVersionMatch", "value": "HTTP/0.9" }, { "name": [ "H", "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "name": [ "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "C", "Be", "B" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "headerOrderMatch", "value": "H:He" }, { "name": "H", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "H", "He", "Li" ], "valueCase": true, "valueWildcard": true }, { "name": "Be", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "O", "N", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "C", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Carbon", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "N", "nameCase": false, "nameWildcard": false, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Nitrogen", "N" ], "valueCase": false, "valueWildcard": false }, { "name": "H", "positiveMatch": true, "type": "argsPostMatch", "value": [ "H", "Hydrogen" ] }, { "name": "He", "positiveMatch": true, "type": "argsPostMatch", "value": [ "He", "Helium" ] }, { "positiveMatch": true, "type": "argsPostNamesMatch", "value": [ "Carbon", "Oxygen", "Nitrogen", "Chlorine" ] }, { "positiveMatch": true, "type": "clientCertPresentMatch" }, { "positiveMatch": true, "type": "clientCertValidMatch" }, { "positiveMatch": true, "type": "clientTlsFingerprintMatch", "value": [ "aebbfa8e53e8661f" ] }, { "positiveMatch": true, "type": "hostMatch", "value": [ "example.com", "*.Nitrogen.gb" ] }, { "positiveMatch": false, "type": "asNumberMatch", "useXForwardForHeaders": true, "value": [ "2145697538" ] }, { "positiveMatch": false, "type": "geoMatch", "useXForwardForHeaders": true, "value": [ "AD" ] }, { "positiveMatch": false, "type": "ipAddressMatch", "useXForwardForHeaders": true, "value": [ "81.477.377.57" ] }, { "positiveMatch": true, "type": "clientListMatch", "useXForwardForHeaders": true, "value": [ "86744_AZURETLS", "83629_40KHG" ] } ], "description": "Can I create all conditions?", "effectiveTimePeriod": { "endDate": "2021-11-02T01:00:00.000Z", "startDate": "2021-08-05T01:00:00.000Z", "status": "expired" }, "id": 661699, "loggingOptions": [ { "id": "CLIENT_TLS_FINGERPRINT_MATCH" } ], "name": "Fat Rule", "operation": "AND", "ruleActivated": false, "samplingRate": 10, "stagingOnly": true, "tag": [ "test" ], "version": 1 }, "schema": { "additionalProperties": false, "description": "Contains settings for a custom rule.", "properties": { "conditions": { "description": "Contains the details about the condition that triggers the custom rule.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to the custom rule.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ] }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "nameWildcard": { "description": "Whether the provided header `name` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The type of condition. See [CustomRule condition type values](https://techdocs.akamai.com/application-security/reference/condition-type-values).", "enum": [ "cookieMatch", "extensionMatch", "filenameMatch", "ipMatch", "pathMatch", "requestHeaderMatch", "requestMethodMatch", "requestProtocolVersionMatch", "uriQueryMatch", "headerOrderMatch", "argsPostMatch", "argsPostNamesMatch", "clientCertPresentMatch", "clientCertValidMatch", "clientTlsFingerprintMatch", "hostMatch", "ipAddressMatch", "geoMatch", "asNumberMatch", "clientListMatch" ], "type": "string" }, "useXForwardForHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This only applies when the `type` is `ipAddressMatch`, `geoMatch`, `asNumberMatch`, or `clientListMatch`.", "type": "boolean" }, "value": { "description": "The value that triggers the condition when matched or not matched. Specify a string for the `requestProtocolVersionMatch`, `clientCertPresentMatch`, `clientCertValidMatch`, and `headerOrderMatch` conditions. For all other conditions, specify an array of strings.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ], "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueExactMatch": { "description": "Whether to consider only exact matches of the header `value`.", "type": "boolean" }, "valueIgnoreSegment": { "description": "Whether to ignore path segments when matching. This only applies when the `type` is `pathMatch`.", "type": "boolean" }, "valueNormalize": { "description": "Whether to normalize the value of the header when matching. This only applies to type values of `extensionMatch` and `pathMatch`.", "type": "boolean" }, "valueRecursive": { "description": "Whether to use recursion when matching. When `false`, you can only match on the filename in the root folder. This only applies when the condition `type` is `filenameMatch`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies when the condition `type` is `requestHeaderMatch`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object" }, "type": "array" }, "description": { "description": "The custom rule description.", "type": "string" }, "effectiveTimePeriod": { "additionalProperties": false, "description": "The time period during which the custom rule is active.", "properties": { "endDate": { "description": "An ISO 8601 timestamp that sets when the rule expires or deactivates.", "type": "string" }, "startDate": { "description": "An ISO 8601 timestamp that sets when the rule activates.", "format": "date-time", "type": "string" }, "status": { "description": "The current status of the rule based on its `startDate` and `endDate`. By default, rules are active for 30 days. When `ACTIVE`, the rule triggers when conditions are met. When `INACTIVE`, the rule doesn't trigger. When `EXPIRING`, the rule still triggers because it's still active until its specified expiration date. When the rule's status is `EXPIRED`, the rule is inactive and doesn't trigger. If your rule expires and you want to use it again, make a PUT request to [Modify a custom rule](https://techdocs.akamai.com/application-security/reference/put-config-custom-rule) with the new dates you'd like the rule to be active.", "enum": [ "active", "inactive", "expiring", "expired" ], "type": "string" } }, "required": [ "endDate", "startDate" ], "type": "object" }, "id": { "description": "Uniquely identifies the rule.", "type": "integer" }, "inspectRequest": { "description": "Whether to inspect the HTTP request for unstructured custom rules.", "type": "boolean" }, "inspectResponse": { "description": "Whether to inspect the HTTP response for unstructured custom rules.", "type": "boolean" }, "loggingOptions": { "description": "The specific conditions to be logged.", "items": { "additionalProperties": false, "description": "Condition to be logged.", "properties": { "id": { "description": "The unique identifier for each logging option. See [Logging option values](https://techdocs.akamai.com/application-security/reference/logging-option-values).", "enum": [ "CLIENT_TLS_FINGERPRINT_MATCH", "HEADER_ORDER_MATCH", "REQUEST_HEADER_MATCH", "COOKIE_MATCH", "URI_QUERY_MATCH", "ARGS_POST_MATCH" ], "type": "string" }, "name": { "description": "A description of the logging option type.", "type": "string" }, "value": { "description": "The value on which to match when determining whether to log the custom rule condition.", "type": "string" } }, "required": [ "id" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-option.yaml" } }, "type": "array" }, "metadata": { "description": "The metadata you provided for unstructured custom rules.", "type": "string" }, "name": { "description": "The custom rule name.", "type": "string" }, "operation": { "description": "Specify `AND` logic to require all conditions, or `OR` logic to require at least one condition to match.", "enum": [ "AND", "OR" ], "type": "string" }, "ruleActivated": { "description": "Whether the rule is active in the configuration.", "type": "boolean" }, "samplingRate": { "description": "The portion of traffic to sample, expressed as a percent.", "maximum": 100, "minimum": 0, "type": "integer" }, "stagingOnly": { "default": false, "description": "Whether to show traffic from only the staging network, or all traffic. The default setting is `false` and only shows in the response when `true`. ", "type": "boolean" }, "structured": { "description": "Whether you created the rule with the structured custom rule builder or free-form XML. This needs to be `true`.", "type": "boolean" }, "tag": { "description": "The list of labels you assigned to the custom rule.", "items": { "type": "string" }, "type": "array" }, "version": { "description": "The custom rule version.", "type": "integer" } }, "required": [ "name", "operation", "structured" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-rule.yaml" } } } }, "description": "Responds with the requested rule." } }, "summary": "Akamai API Security Get a Custom Rule", "tags": [ "Shared resources: Custom rules" ] }, "put": { "description": "Updates an existing custom rule. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-config-custom-rule" }, "operationId": "put-config-custom-rule", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "conditions": [ { "positiveMatch": true, "type": "requestMethodMatch", "value": [ "GET", "CONNECT", "TRACE", "PUT", "POST", "OPTIONS", "DELETE", "HEAD" ] }, { "positiveMatch": true, "type": "pathMatch", "value": [ "/H", "/Li", "/He" ] }, { "positiveMatch": true, "type": "extensionMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "filenameMatch", "value": [ "He", "H", "Li" ], "valueCase": false, "valueWildcard": false }, { "positiveMatch": true, "type": "requestProtocolVersionMatch", "value": "HTTP/0.9" }, { "name": [ "H", "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "name": [ "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "C", "Be", "B" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "headerOrderMatch", "value": "H:He" }, { "name": "H", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "H", "He", "Li" ], "valueCase": true, "valueWildcard": true }, { "name": "Be", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "O", "N", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "C", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Carbon", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "N", "nameCase": false, "nameWildcard": false, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Nitrogen", "N" ], "valueCase": false, "valueWildcard": false }, { "name": "H", "positiveMatch": true, "type": "argsPostMatch", "value": [ "H", "Hydrogen" ] }, { "name": "He", "positiveMatch": true, "type": "argsPostMatch", "value": [ "He", "Helium" ] }, { "positiveMatch": true, "type": "argsPostNamesMatch", "value": [ "Carbon", "Oxygen", "Nitrogen", "Chlorine" ] }, { "positiveMatch": true, "type": "clientCertPresentMatch" }, { "positiveMatch": false, "type": "clientCertValidMatch" }, { "positiveMatch": true, "type": "clientTlsFingerprintMatch", "value": [ "aebbfa8e53e8661f" ] }, { "positiveMatch": true, "type": "hostMatch", "value": [ "example.com", "*.Nitrogen.gb" ] }, { "positiveMatch": false, "type": "asNumberMatch", "useXForwardForHeaders": true, "value": [ "2145697538" ] }, { "positiveMatch": false, "type": "geoMatch", "useXForwardForHeaders": true, "value": [ "AD" ] }, { "positiveMatch": false, "type": "ipAddressMatch", "useXForwardForHeaders": true, "value": [ "81.477.377.57" ] }, { "positiveMatch": true, "type": "clientListMatch", "useXForwardForHeaders": true, "value": [ "86744_AZURETLS", "83629_40KHG" ] } ], "description": "Can I create all conditions?", "effectiveTimePeriod": { "endDate": "2021-11-02T01:00:00.000Z", "startDate": "2021-08-05T01:00:00.000Z", "status": "expired" }, "id": 661699, "loggingOptions": [ { "id": "CLIENT_TLS_FINGERPRINT_MATCH" } ], "name": "Fat Rule", "operation": "AND", "samplingRate": 10, "stagingOnly": true, "structured": true, "tag": [ "test" ], "version": 1 }, "schema": { "additionalProperties": false, "description": "Contains settings for a custom rule.", "properties": { "conditions": { "description": "Contains the details about the condition that triggers the custom rule.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to the custom rule.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ] }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "nameWildcard": { "description": "Whether the provided header `name` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The type of condition. See [CustomRule condition type values](https://techdocs.akamai.com/application-security/reference/condition-type-values).", "enum": [ "cookieMatch", "extensionMatch", "filenameMatch", "ipMatch", "pathMatch", "requestHeaderMatch", "requestMethodMatch", "requestProtocolVersionMatch", "uriQueryMatch", "headerOrderMatch", "argsPostMatch", "argsPostNamesMatch", "clientCertPresentMatch", "clientCertValidMatch", "clientTlsFingerprintMatch", "hostMatch", "ipAddressMatch", "geoMatch", "asNumberMatch", "clientListMatch" ], "type": "string" }, "useXForwardForHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This only applies when the `type` is `ipAddressMatch`, `geoMatch`, `asNumberMatch`, or `clientListMatch`.", "type": "boolean" }, "value": { "description": "The value that triggers the condition when matched or not matched. Specify a string for the `requestProtocolVersionMatch`, `clientCertPresentMatch`, `clientCertValidMatch`, and `headerOrderMatch` conditions. For all other conditions, specify an array of strings.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ], "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueExactMatch": { "description": "Whether to consider only exact matches of the header `value`.", "type": "boolean" }, "valueIgnoreSegment": { "description": "Whether to ignore path segments when matching. This only applies when the `type` is `pathMatch`.", "type": "boolean" }, "valueNormalize": { "description": "Whether to normalize the value of the header when matching. This only applies to type values of `extensionMatch` and `pathMatch`.", "type": "boolean" }, "valueRecursive": { "description": "Whether to use recursion when matching. When `false`, you can only match on the filename in the root folder. This only applies when the condition `type` is `filenameMatch`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies when the condition `type` is `requestHeaderMatch`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object" }, "type": "array" }, "description": { "description": "The custom rule description.", "example": "{{description}}", "type": "string" }, "effectiveTimePeriod": { "additionalProperties": false, "description": "The time period during which the custom rule is active.", "properties": { "endDate": { "description": "An ISO 8601 timestamp that sets when the rule expires or deactivates.", "type": "string" }, "startDate": { "description": "An ISO 8601 timestamp that sets when the rule activates.", "format": "date-time", "type": "string" }, "status": { "description": "The current status of the rule based on its `startDate` and `endDate`. By default, rules are active for 30 days. When `ACTIVE`, the rule triggers when conditions are met. When `INACTIVE`, the rule doesn't trigger. When `EXPIRING`, the rule still triggers because it's still active until its specified expiration date. When the rule's status is `EXPIRED`, the rule is inactive and doesn't trigger. If your rule expires and you want to use it again, make a PUT request to [Modify a custom rule](https://techdocs.akamai.com/application-security/reference/put-config-custom-rule) with the new dates you'd like the rule to be active.", "enum": [ "active", "inactive", "expiring", "expired" ], "type": "string" } }, "required": [ "endDate", "startDate" ], "type": "object" }, "id": { "description": "Uniquely identifies the rule.", "example": "{{id}}", "type": "integer" }, "inspectRequest": { "description": "Whether to inspect the HTTP request for unstructured custom rules.", "example": "{{inspectRequest}}", "type": "boolean" }, "inspectResponse": { "description": "Whether to inspect the HTTP response for unstructured custom rules.", "example": "{{inspectResponse}}", "type": "boolean" }, "loggingOptions": { "description": "The specific conditions to be logged.", "items": { "additionalProperties": false, "description": "Condition to be logged.", "properties": { "id": { "description": "The unique identifier for each logging option. See [Logging option values](https://techdocs.akamai.com/application-security/reference/logging-option-values).", "enum": [ "CLIENT_TLS_FINGERPRINT_MATCH", "HEADER_ORDER_MATCH", "REQUEST_HEADER_MATCH", "COOKIE_MATCH", "URI_QUERY_MATCH", "ARGS_POST_MATCH" ], "type": "string" }, "name": { "description": "A description of the logging option type.", "type": "string" }, "value": { "description": "The value on which to match when determining whether to log the custom rule condition.", "type": "string" } }, "required": [ "id" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-option.yaml" } }, "type": "array" }, "metadata": { "description": "The metadata you provided for unstructured custom rules.", "example": "{{metadata}}", "type": "string" }, "name": { "description": "The custom rule name.", "example": "{{name}}", "type": "string" }, "operation": { "description": "Specify `AND` logic to require all conditions, or `OR` logic to require at least one condition to match.", "enum": [ "AND", "OR" ], "example": "{{operation}}", "type": "string" }, "ruleActivated": { "description": "Whether the rule is active in the configuration.", "example": "{{ruleActivated}}", "type": "boolean" }, "samplingRate": { "description": "The portion of traffic to sample, expressed as a percent.", "example": "{{samplingRate}}", "maximum": 100, "minimum": 0, "type": "integer" }, "stagingOnly": { "default": false, "description": "Whether to show traffic from only the staging network, or all traffic. The default setting is `false` and only shows in the response when `true`. ", "example": "{{stagingOnly}}", "type": "boolean" }, "structured": { "description": "Whether you created the rule with the structured custom rule builder or free-form XML. This needs to be `true`.", "example": "{{structured}}", "type": "boolean" }, "tag": { "description": "The list of labels you assigned to the custom rule.", "items": { "type": "string" }, "type": "array" }, "version": { "description": "The custom rule version.", "example": "{{version}}", "type": "integer" } }, "required": [ "name", "operation", "structured" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-rule.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "conditions": [ { "positiveMatch": true, "type": "requestMethodMatch", "value": [ "GET", "CONNECT", "TRACE", "PUT", "POST", "OPTIONS", "DELETE", "HEAD" ] }, { "positiveMatch": true, "type": "pathMatch", "value": [ "/H", "/Li", "/He" ] }, { "positiveMatch": true, "type": "extensionMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "filenameMatch", "value": [ "He", "H", "Li" ], "valueCase": false, "valueWildcard": false }, { "positiveMatch": true, "type": "requestProtocolVersionMatch", "value": "HTTP/0.9" }, { "name": [ "H", "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "Li", "He", "H" ], "valueCase": true, "valueWildcard": true }, { "name": [ "He" ], "nameWildcard": true, "positiveMatch": true, "type": "requestHeaderMatch", "value": [ "C", "Be", "B" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "headerOrderMatch", "value": "H:He" }, { "name": "H", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "H", "He", "Li" ], "valueCase": true, "valueWildcard": true }, { "name": "Be", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "cookieMatch", "value": [ "O", "N", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "C", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Carbon", "C" ], "valueCase": true, "valueWildcard": true }, { "name": "N", "nameCase": false, "nameWildcard": false, "positiveMatch": true, "type": "uriQueryMatch", "value": [ "Nitrogen", "N" ], "valueCase": false, "valueWildcard": false }, { "name": "H", "positiveMatch": true, "type": "argsPostMatch", "value": [ "H", "Hydrogen" ] }, { "name": "He", "positiveMatch": true, "type": "argsPostMatch", "value": [ "He", "Helium" ] }, { "positiveMatch": true, "type": "argsPostNamesMatch", "value": [ "Carbon", "Oxygen", "Nitrogen", "Chlorine" ] }, { "positiveMatch": true, "type": "clientCertPresentMatch" }, { "positiveMatch": true, "type": "clientCertValidMatch" }, { "positiveMatch": true, "type": "clientTlsFingerprintMatch", "value": [ "aebbfa8e53e8661f" ] }, { "positiveMatch": true, "type": "hostMatch", "value": [ "example.com", "*.Nitrogen.gb" ] }, { "positiveMatch": false, "type": "asNumberMatch", "useXForwardForHeaders": true, "value": [ "2145697538" ] }, { "positiveMatch": false, "type": "geoMatch", "useXForwardForHeaders": true, "value": [ "AD" ] }, { "positiveMatch": false, "type": "ipAddressMatch", "useXForwardForHeaders": true, "value": [ "81.477.377.57" ] }, { "positiveMatch": true, "type": "clientListMatch", "useXForwardForHeaders": true, "value": [ "86744_AZURETLS", "83629_40KHG" ] } ], "description": "Can I create all conditions?", "effectiveTimePeriod": { "endDate": "2021-11-02T01:00:00.000Z", "startDate": "2021-08-05T01:00:00.000Z", "status": "expired" }, "id": 661699, "loggingOptions": [ { "id": "CLIENT_TLS_FINGERPRINT_MATCH" } ], "name": "Fat Rule", "operation": "AND", "ruleActivated": false, "samplingRate": 10, "stagingOnly": true, "tag": [ "test" ], "version": 1 }, "schema": { "additionalProperties": false, "description": "Contains settings for a custom rule.", "properties": { "conditions": { "description": "Contains the details about the condition that triggers the custom rule.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to the custom rule.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ] }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "nameWildcard": { "description": "Whether the provided header `name` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The type of condition. See [CustomRule condition type values](https://techdocs.akamai.com/application-security/reference/condition-type-values).", "enum": [ "cookieMatch", "extensionMatch", "filenameMatch", "ipMatch", "pathMatch", "requestHeaderMatch", "requestMethodMatch", "requestProtocolVersionMatch", "uriQueryMatch", "headerOrderMatch", "argsPostMatch", "argsPostNamesMatch", "clientCertPresentMatch", "clientCertValidMatch", "clientTlsFingerprintMatch", "hostMatch", "ipAddressMatch", "geoMatch", "asNumberMatch", "clientListMatch" ], "type": "string" }, "useXForwardForHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This only applies when the `type` is `ipAddressMatch`, `geoMatch`, `asNumberMatch`, or `clientListMatch`.", "type": "boolean" }, "value": { "description": "The value that triggers the condition when matched or not matched. Specify a string for the `requestProtocolVersionMatch`, `clientCertPresentMatch`, `clientCertValidMatch`, and `headerOrderMatch` conditions. For all other conditions, specify an array of strings.", "oneOf": [ { "items": { "type": "string" }, "title": "Array", "type": "array" }, { "title": "String", "type": "string" } ], "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueExactMatch": { "description": "Whether to consider only exact matches of the header `value`.", "type": "boolean" }, "valueIgnoreSegment": { "description": "Whether to ignore path segments when matching. This only applies when the `type` is `pathMatch`.", "type": "boolean" }, "valueNormalize": { "description": "Whether to normalize the value of the header when matching. This only applies to type values of `extensionMatch` and `pathMatch`.", "type": "boolean" }, "valueRecursive": { "description": "Whether to use recursion when matching. When `false`, you can only match on the filename in the root folder. This only applies when the condition `type` is `filenameMatch`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies when the condition `type` is `requestHeaderMatch`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object" }, "type": "array" }, "description": { "description": "The custom rule description.", "type": "string" }, "effectiveTimePeriod": { "additionalProperties": false, "description": "The time period during which the custom rule is active.", "properties": { "endDate": { "description": "An ISO 8601 timestamp that sets when the rule expires or deactivates.", "type": "string" }, "startDate": { "description": "An ISO 8601 timestamp that sets when the rule activates.", "format": "date-time", "type": "string" }, "status": { "description": "The current status of the rule based on its `startDate` and `endDate`. By default, rules are active for 30 days. When `ACTIVE`, the rule triggers when conditions are met. When `INACTIVE`, the rule doesn't trigger. When `EXPIRING`, the rule still triggers because it's still active until its specified expiration date. When the rule's status is `EXPIRED`, the rule is inactive and doesn't trigger. If your rule expires and you want to use it again, make a PUT request to [Modify a custom rule](https://techdocs.akamai.com/application-security/reference/put-config-custom-rule) with the new dates you'd like the rule to be active.", "enum": [ "active", "inactive", "expiring", "expired" ], "type": "string" } }, "required": [ "endDate", "startDate" ], "type": "object" }, "id": { "description": "Uniquely identifies the rule.", "type": "integer" }, "inspectRequest": { "description": "Whether to inspect the HTTP request for unstructured custom rules.", "type": "boolean" }, "inspectResponse": { "description": "Whether to inspect the HTTP response for unstructured custom rules.", "type": "boolean" }, "loggingOptions": { "description": "The specific conditions to be logged.", "items": { "additionalProperties": false, "description": "Condition to be logged.", "properties": { "id": { "description": "The unique identifier for each logging option. See [Logging option values](https://techdocs.akamai.com/application-security/reference/logging-option-values).", "enum": [ "CLIENT_TLS_FINGERPRINT_MATCH", "HEADER_ORDER_MATCH", "REQUEST_HEADER_MATCH", "COOKIE_MATCH", "URI_QUERY_MATCH", "ARGS_POST_MATCH" ], "type": "string" }, "name": { "description": "A description of the logging option type.", "type": "string" }, "value": { "description": "The value on which to match when determining whether to log the custom rule condition.", "type": "string" } }, "required": [ "id" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-option.yaml" } }, "type": "array" }, "metadata": { "description": "The metadata you provided for unstructured custom rules.", "type": "string" }, "name": { "description": "The custom rule name.", "type": "string" }, "operation": { "description": "Specify `AND` logic to require all conditions, or `OR` logic to require at least one condition to match.", "enum": [ "AND", "OR" ], "type": "string" }, "ruleActivated": { "description": "Whether the rule is active in the configuration.", "type": "boolean" }, "samplingRate": { "description": "The portion of traffic to sample, expressed as a percent.", "maximum": 100, "minimum": 0, "type": "integer" }, "stagingOnly": { "default": false, "description": "Whether to show traffic from only the staging network, or all traffic. The default setting is `false` and only shows in the response when `true`. ", "type": "boolean" }, "structured": { "description": "Whether you created the rule with the structured custom rule builder or free-form XML. This needs to be `true`.", "type": "boolean" }, "tag": { "description": "The list of labels you assigned to the custom rule.", "items": { "type": "string" }, "type": "array" }, "version": { "description": "The custom rule version.", "type": "integer" } }, "required": [ "name", "operation", "structured" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-rule.yaml" } } } }, "description": "Responds with the updated rule." } }, "summary": "Akamai API Security Modify a Custom Rule", "tags": [ "Shared resources: Custom rules" ] }, "delete": { "description": "Deletes a custom rule as long as it isn't activated. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/delete-config-custom-rule" }, "operationId": "delete-config-custom-rule", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "204": { "content": {}, "description": "Custom rule successfully deleted." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). Custom rule used and cannot be deleted.", "x-akamai": { "file-path": "errors/403.yaml" } } }, "summary": "Akamai API Security Remove a Custom Rule", "tags": [ "Shared resources: Custom rules" ] }, "parameters": [ { "description": "A unique identifier for rule.", "example": "{{ruleId}}", "in": "path", "name": "ruleId", "required": true, "schema": { "example": 699989, "type": "integer" }, "x-akamai": { "file-path": "parameters/rule-id-path.yaml" } }, { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-custom-rule.yaml", "path-info": "/configs/{configId}/custom-rules/{ruleId}" } }, "/configs/{configId}/failover-hostnames": { "get": { "description": "Get a list of the failover hostnames in a configuration. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-failover-hostnames" }, "operationId": "get-failover-hostnames", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "hostnameList": [ { "hostname": "*.example.net" }, { "hostname": "example.com" }, { "hostname": "m.example.com" } ], "mode": "append" }, "schema": { "additionalProperties": false, "description": "Contains a list of selected hostnames for the specified configuration version.", "properties": { "hostnameList": { "description": "The list of hostnames for a configuration version.", "items": { "additionalProperties": false, "properties": { "hostname": { "description": "The hostname on which to match the request.", "type": "string" } }, "required": [ "hostname" ], "type": "object" }, "type": "array" }, "mode": { "description": "The type of update you want to make to the evaluation hostname list. Use `append` to add additional hostnames, `remove` to delete the hostnames from the list, or `replace` to replace the existing list with the hostnames you pass in your request.", "enum": [ "append", "remove", "replace" ], "type": "string" } }, "required": [ "hostnameList" ], "type": "object", "x-akamai": { "file-path": "schemas/hostnames.yaml" } } } }, "description": "Successful response." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Failover Hostnames", "tags": [ "Failover hostnames" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-failover-hostnames.yaml", "path-info": "/configs/{configId}/failover-hostnames" } }, "/configs/{configId}/notification/subscription/{feature}": { "post": { "description": "Set the request object's `action` to `subscribe` to add user emails to the subscription object. Use `unsubscribe` to remove them from the list. The lists are organized by `features`. Currently available `feature` values are `AAG_TUNING_REC` for AAG and ASE rule sets, and `WAF_RULE_UPDATE` for ASE rule sets. _Products:_ Kona Site Defender.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-subscription-feature" }, "operationId": "post-subscription-feature", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "action": "subscribe", "emails": [ "subscriber1@email.example.com", "subscriber2@email.example.com", "subscriber3@email.example.com" ] }, "schema": { "additionalProperties": false, "description": "Specifies actions to subscribe a user to or remove a user from a subscription to tuning recommendation emails.", "properties": { "action": { "description": "Use `subscribe` to add user emails to the subscription. Use `unsubscribe` to remove them from the subscription.", "enum": [ "subscribe", "unsubscribe" ], "example": "{{action}}", "type": "string" }, "emails": { "description": "The user emails to add to or remove from subscription.", "items": { "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "action", "emails" ], "type": "object", "x-akamai": { "file-path": "schemas/appsec-config-subscription.yaml" } } } }, "required": true }, "responses": { "204": { "content": {}, "description": "Subscribed/Unsubscribed successfully." }, "400": { "content": { "application/problem+json": { "examples": { "email-validation-errors": { "summary": "Email validation errors", "value": { "detail": "Validation failed: emails: Missing final '@domain' for 'subscriber1', Local address contains control or whitespace for 'subs criber2@email.example.com'", "fieldErrors": { "emails": [ "Missing final '@domain' for 'subscriber1', Local address contains control or whitespace for 'subs criber2@email.example.com'" ] }, "instance": "https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/84ec5ff7bfcd01d4", "status": 400, "title": "Invalid Input Error", "type": "https://problems.luna.akamaiapis.net/appsec-configuration/error-types/INVALID-INPUT-ERROR" } }, "invalid-action": { "summary": "Invalid action", "value": { "detail": "Action field must be either subscribe or unsubscribe", "instance": "https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/edb25ff7ceea044c", "status": 400, "title": "Invalid Input Error", "type": "https://problems.luna.akamaiapis.net/appsec-configuration/error-types/INVALID-INPUT-ERROR" } } }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Incorrect client input. See the `fieldErrors` and other fields provided in the response for more information.", "x-akamai": { "file-path": "errors/400-subscription.yaml" } }, "403": { "content": { "application/problem+json": { "examples": { "no-config": { "summary": "No access to the configuration", "value": { "detail": "You do not have the necessary access to perform this operation.", "instance": "https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/e96d5ff7c1cb02c4", "status": 403, "title": "Unauthorized Access/Action", "type": "https://problems.luna.akamaiapis.net/appsec-configuration/error-types/UNAUTHORIZED" } }, "no-feature-scope": { "summary": "No feature scope", "value": { "detail": "This user needs to have the scope APPSEC_AAG_TUNING_RECOM to access this end point.", "instance": "https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/dc325ff7c2b800ac", "status": 403, "title": "Unauthorized Access/Action", "type": "https://problems.luna.akamaiapis.net/appsec-configuration/error-types/UNAUTHORIZED" } } }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). Access denied. Make sure you have correct permissions.", "x-akamai": { "file-path": "errors/403-scope.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Subscribe or Unsubscribe to Recommendation Emails", "tags": [ "Subscriptions" ] }, "get": { "description": "List all subscribers to a security configuration's `feature`. The response array is empty if there are no subscribers. Currently available `feature` values are `AAG_TUNING_REC` for AAG and ASE rule sets, and `WAF_RULE_UPDATE` for ASE rule sets. _Products:_ Kona Site Defender.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-subscription-feature" }, "operationId": "get-subscription-feature", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "emails": [ "subscriber1@email.example.com", "subscriber2@email.example.com", "subscriber3@email.example.com" ] }, "schema": { "additionalProperties": false, "description": "List the existing subscribers of a feature for a specific security configuration.", "properties": { "emails": { "description": "Existing subscriber.", "items": { "type": "string" }, "type": "array" } }, "required": [ "emails" ], "type": "object", "x-akamai": { "file-path": "schemas/appsec-config-subscription-200.yaml" } } } }, "description": "Successfully returns list of subscribers." }, "403": { "content": { "application/problem+json": { "examples": { "no-config": { "summary": "No access to the configuration", "value": { "detail": "You do not have the necessary access to perform this operation.", "instance": "https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/e96d5ff7c1cb02c4", "status": 403, "title": "Unauthorized Access/Action", "type": "https://problems.luna.akamaiapis.net/appsec-configuration/error-types/UNAUTHORIZED" } }, "no-feature-scope": { "summary": "No feature scope", "value": { "detail": "This user needs to have the scope APPSEC_AAG_TUNING_RECOM to access this end point.", "instance": "https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/dc325ff7c2b800ac", "status": 403, "title": "Unauthorized Access/Action", "type": "https://problems.luna.akamaiapis.net/appsec-configuration/error-types/UNAUTHORIZED" } } }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). Access denied. Make sure you have correct permissions.", "x-akamai": { "file-path": "errors/403-scope.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Subscribers", "tags": [ "Subscriptions" ] }, "parameters": [ { "description": "A unique identifier for each subscription feature.", "example": "{{feature}}", "in": "path", "name": "feature", "required": true, "schema": { "example": "AAG_TUNING_REC", "type": "string" }, "x-akamai": { "file-path": "parameters/feature-path.yaml" } }, { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-notification-subscription.yaml", "path-info": "/configs/{configId}/notification/subscription/{feature}" } }, "/configs/{configId}/versions": { "post": { "description": "Creates a new version of the specified security configuration. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-config-versions" }, "operationId": "post-config-versions", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "createFromVersion": 1, "ruleUpdate": false }, "schema": { "additionalProperties": false, "description": "Specifies the settings for a new clone of a security configuration.", "properties": { "createFromVersion": { "description": "The configuration version to clone from.", "example": "{{createFromVersion}}", "type": "integer" }, "ruleUpdate": { "description": "Specifies whether the application rules should be migrated to the latest version.", "example": "{{ruleUpdate}}", "type": "boolean" } }, "required": [ "createFromVersion", "ruleUpdate" ], "type": "object", "x-akamai": { "file-path": "schemas/config-clone-post.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "basedOn": 1, "configId": 48579, "configName": "TestConfig", "createDate": "2013-10-07T17:58:52Z", "createdBy": "hgildong", "production": { "status": "Active", "time": "2014-07-08T07:40:00Z" }, "staging": { "status": "Inactive" }, "version": 2, "versionNotes": "Membership Benefits" }, "schema": { "additionalProperties": false, "description": "Contains configuration version details.", "properties": { "basedOn": { "description": "__Read-only__ The version from which you cloned this version.", "readOnly": true, "type": "integer" }, "configId": { "description": "__Read-only__ Uniquely identifies the security configuration.", "readOnly": true, "type": "integer" }, "configName": { "description": "The security configuration name.", "type": "string" }, "createDate": { "description": "__Read-only__ The date when you created the configuration version.", "readOnly": true, "type": "string" }, "createdBy": { "description": "__Read-only__ The user who created the configuration version.", "readOnly": true, "type": "string" }, "production": { "additionalProperties": false, "description": "__Read-only__ The activation status of the configuration version in the production network.", "properties": { "action": { "description": "The action taken on the configuration version. Either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status, either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The activation time.", "type": "string" } }, "readOnly": true, "required": [ "status" ], "type": "object" }, "staging": { "additionalProperties": false, "description": "__Read-only__ The activation status of the configuration version in the staging network.", "properties": { "action": { "description": "The action taken on the configuration version. Either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status, either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The ISO 8601 time stamp indicating the activation time.", "type": "string" } }, "readOnly": true, "required": [ "status" ], "type": "object" }, "version": { "description": "__Read-only__ The security configuration version.", "readOnly": true, "type": "integer" }, "versionNotes": { "description": "The notes you entered for the configuration version.", "type": "string" } }, "required": [ "configId", "configName", "version", "staging", "production" ], "type": "object", "x-akamai": { "file-path": "schemas/waf-config-version.yaml" } } } }, "description": "Successfully cloned Configuration Version." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } }, "412": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is in use and cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 412, "title": "Precondition Failed", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/PRECONDITION-FAILED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Precondition failed](https://techdocs.akamai.com/application-security/reference/412).", "x-akamai": { "file-path": "errors/412.yaml" } } }, "summary": "Akamai API Security Clone a Configuration Version", "tags": [ "General configuration settings" ] }, "get": { "description": "Lists available versions for the specified security configuration, with results optionally paginated. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-config-versions" }, "operationId": "get-config-versions", "parameters": [ { "description": "The index of the result page. If the value is `-1`, then pagination is ignored. The default value is `1`.", "example": "{{page}}", "in": "query", "name": "page", "schema": { "default": 1, "example": 2, "type": "integer" }, "x-akamai": { "file-path": "parameters/page-query.yaml" } }, { "description": "The number of items on each result page. The default value is `25`.", "example": "{{pageSize}}", "in": "query", "name": "pageSize", "schema": { "default": 25, "example": 10, "type": "integer" }, "x-akamai": { "file-path": "parameters/page-size-query.yaml" } }, { "description": "When `true`, the results contain detailed information on versions. With the default `false`, the results contain summary information on versions.", "example": "{{detail}}", "in": "query", "name": "detail", "schema": { "default": false, "example": true, "type": "boolean" }, "x-akamai": { "file-path": "parameters/detail-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "configId": 48579, "configName": "TestConfig", "lastCreatedVersion": 9, "page": 1, "pageSize": 3, "productionActiveVersion": 9, "productionExpediteRequestId": 6951, "stagingActiveVersion": 8, "stagingExpediteRequestId": 5861, "totalSize": 3, "versionList": [ { "basedOn": 8, "createDate": "2013-10-07T17:58:52Z", "createdBy": "jperez", "production": { "status": "Active", "time": "2014-07-08T07:40:00Z" }, "staging": { "status": "Inactive" }, "version": 9, "versionNotes": "Membership Benefits" }, { "basedOn": 7, "createDate": "2013-10-07T17:41:52Z", "createdBy": "hgildong", "production": { "status": "Inactive" }, "staging": { "status": "Active", "time": "2014-07-08T07:40:00Z" }, "version": 8, "versionNotes": "Membership Benefits" }, { "createDate": "2013-08-07T17:41:52Z", "createdBy": "alfulani", "production": { "status": "Inactive" }, "staging": { "status": "Inactive" }, "version": 7, "versionNotes": "Membership Benefits" } ] }, "schema": { "additionalProperties": false, "description": "Contains details about a security configuration's versions.", "properties": { "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "configName": { "description": "The name you assigned to the security configuration.", "type": "string" }, "lastCreatedVersion": { "description": "The version number of the security configuration that you created most recently.", "type": "integer" }, "page": { "description": "The current page number.", "type": "integer" }, "pageSize": { "description": "Represents the number of items per page.", "type": "integer" }, "productionActiveVersion": { "description": "The version number of the security configuration that is currently active on the production network.", "type": "integer" }, "productionExpediteRequestId": { "description": "Uniquely identifies the expedite activation request of the configuration version on the production network.", "type": "integer" }, "stagingActiveVersion": { "description": "The version number of the security configuration that is currently active on the staging network.", "type": "integer" }, "stagingExpediteRequestId": { "description": "Uniquely identifies the expedite activation request of the configuration version on the staging network.", "type": "integer" }, "totalSize": { "description": "The total number of configuration versions.", "type": "integer" }, "versionList": { "description": "The security configuration's versions.", "items": { "additionalProperties": false, "properties": { "basedOn": { "description": "The version from which you cloned this version.", "type": "integer" }, "createDate": { "description": "The date when you created the configuration version.", "type": "string" }, "createdBy": { "description": "The user who created the configuration version.", "type": "string" }, "production": { "additionalProperties": false, "description": "Contains details about the version's activation in the production network.", "properties": { "action": { "description": "The action taken on the configuration version, either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status of the configuration version. Either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The activation time.", "type": "string" } }, "required": [ "status" ], "type": "object" }, "staging": { "additionalProperties": false, "description": "Contains details about the version's activation in the staging network.", "properties": { "action": { "description": "The action taken on the configuration version, either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status of the configuration version. Either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The activation time.", "type": "string" } }, "required": [ "status" ], "type": "object" }, "version": { "description": "The security configuration's version.", "type": "integer" }, "versionNotes": { "description": "The notes you entered for the configuration version.", "type": "string" } }, "required": [ "production", "staging", "version" ], "type": "object" }, "type": "array" } }, "required": [ "configId", "configName", "lastCreatedVersion", "page", "pageSize", "totalSize" ], "type": "object", "x-akamai": { "file-path": "schemas/waf-config-versions.yaml" } } } }, "description": "Successfully retrieved resource." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Configuration Versions", "tags": [ "General configuration settings" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-versions.yaml", "path-info": "/configs/{configId}/versions" } }, "/configs/{configId}/versions/diff": { "post": { "description": "This operation shows you differences between configuration versions. The `to` version is relative to the `from` version, and the versions you compare can be non-sequential. This means the `from` value can be more a more recent version than the `to` value. For more information, see [Diff configuration versions](https://techdocs.akamai.com/application-security/reference/diff-configuration-versions).", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-config-versions-diff" }, "operationId": "post-config-versions-diff", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "from": 1, "outcomes": [ "MODIFIED", "UNMODIFIED" ], "to": 2 }, "schema": { "additionalProperties": false, "properties": { "from": { "description": "The configuration version number to compare against.", "example": "{{from}}", "type": "integer" }, "outcomes": { "default": [ "MODIFIED" ], "description": "Show either `MODIFIED` or `UNMODIFIED` data, or both. When empty, only `MODIFIED` values are returned.", "items": { "enum": [ "MODIFIED", "UNMODIFIED" ], "type": "string" }, "type": "array" }, "to": { "description": "The configuration version number you're comparing to the version in `from`.", "example": "{{to}}", "type": "integer" } }, "required": [ "from", "to" ], "type": "object", "x-akamai": { "file-path": "schemas/diff-request.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "changesCount": { "added": 0, "modified": 4, "removed": 0, "unmodified": 0 }, "configId": 258702, "outcome": "MODIFIED", "ratePolicies": { "outcome": "MODIFIED", "removed": [ { "averageThreshold": { "from": 100, "outcome": "REMOVED", "to": null }, "burstThreshold": { "from": 10, "outcome": "REMOVED", "to": null }, "burstWindow": { "from": 5, "outcome": "REMOVED", "to": null }, "changesCount": { "added": 0, "modified": 0, "removed": 18, "unmodified": 0 }, "clientIdentifier": { "from": "ip", "outcome": "REMOVED", "to": null }, "counterType": { "from": "per_edge", "outcome": "REMOVED", "to": null }, "description": { "from": "Mitigating HTTP flood attacks using GET requests", "outcome": "REMOVED", "to": null }, "id": 403981, "matchType": { "from": "path", "outcome": "REMOVED", "to": null }, "name": { "from": "GET Page Requests", "outcome": "REMOVED", "to": null }, "outcome": "REMOVED", "pathMatchType": { "from": "Custom", "outcome": "REMOVED", "to": null }, "pathUriPositiveMatch": { "from": true, "outcome": "REMOVED", "to": null }, "requestType": { "from": "ClientRequest", "outcome": "REMOVED", "to": null }, "sameActionOnIpv6": { "from": true, "outcome": "REMOVED", "to": null }, "type": { "from": "WAF", "outcome": "REMOVED", "to": null }, "useXForwardForHeaders": { "from": false, "outcome": "REMOVED", "to": null }, "used": { "from": false, "outcome": "REMOVED", "to": null } } ] }, "securityPolicies": { "added": [ { "changesCount": { "added": 6, "modified": 0, "removed": 0, "unmodified": 0 }, "hasRatePolicyWithApiKey": { "from": null, "outcome": "ADDED", "to": false }, "id": "2222_517319", "name": { "from": null, "outcome": "ADDED", "to": "Policy 2" }, "outcome": "ADDED", "pragmaHeader": { "action": { "from": null, "outcome": "ADDED", "to": "REMOVE" }, "changesCount": { "added": 3, "modified": 0, "removed": 0, "unmodified": 0 }, "conditionOperator": { "from": null, "outcome": "ADDED", "to": "AND" }, "outcome": "ADDED" }, "securityControls": { "applyApplicationLayerControls": { "from": null, "outcome": "ADDED", "to": false }, "applyMalwareControls": { "from": null, "outcome": "ADDED", "to": false }, "applyNetworkLayerControls": { "from": null, "outcome": "ADDED", "to": false }, "applyRateControls": { "from": null, "outcome": "ADDED", "to": false }, "applyReputationControls": { "from": null, "outcome": "ADDED", "to": false }, "changesCount": { "added": 10, "modified": 0, "removed": 0, "unmodified": 0 }, "outcome": "ADDED" } } ], "modified": [ { "changesCount": { "added": 0, "modified": 3, "removed": 0, "unmodified": 0 }, "id": "1111_517317", "outcome": "MODIFIED", "requestBody": { "changesCount": { "added": 0, "modified": 1, "removed": 0, "unmodified": 0 }, "outcome": "MODIFIED", "requestBodyInspectionLimitInKB": { "from": null, "outcome": "MODIFIED", "to": "8" } }, "webApplicationFirewall": { "attackGroupActions": { "modified": [ { "action": { "from": "alert", "outcome": "MODIFIED", "to": "deny" }, "changesCount": { "added": 0, "modified": 1, "removed": 0, "unmodified": 0 }, "group": "CMD", "outcome": "MODIFIED", "rulesetVersionId": 7151 } ], "outcome": "MODIFIED" }, "changesCount": { "added": 0, "modified": 1, "removed": 0, "unmodified": 0 }, "outcome": "MODIFIED" } } ], "outcome": "MODIFIED" }, "selectedHosts": { "added": [ "host4.com" ], "from": [ "host1.com", "host2.com", "host3.com" ], "outcome": "MODIFIED", "removed": [ "host1.com" ], "to": [ "host2.com", "host3.com", "host4.com" ] } }, "schema": { "description": "The response object represents much the same data as the [Export a configuration version](https://techdocs.akamai.com/application-security/reference/get-export-config-version) operation, but substituting additional objects that represent diffs. The structure of these diffs vary when comparing different types of data: simple values, simple arrays, objects, and object arrays. For details on the diff format, see [Diff configuration versions](https://techdocs.akamai.com/application-security/reference/diff-configuration-versions).", "type": "object", "x-akamai": { "file-path": "schemas/export-diff-summary.yaml" } } } }, "description": "The response object represents much the same data as the [Export a configuration version](https://techdocs.akamai.com/application-security/reference/get-export-config-version) operation, but substituting additional objects that represent diffs. The structure of these diffs vary when comparing different types of data: simple values, simple arrays, objects, and object arrays. For details on the diff format, see [Diff configuration versions](https://techdocs.akamai.com/application-security/reference/diff-configuration-versions)." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Compare Two Versions", "tags": [ "Configuration version diff" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/diff.yaml", "path-info": "/configs/{configId}/versions/diff" } }, "/configs/{configId}/versions/{versionNumber}": { "get": { "description": "Returns basic details about a configuration version. To get a more extensive object with detailed information about a version's security policies, rate policies, rules, and other additional settings, run the [Export a configuration version](https://techdocs.akamai.com/application-security/reference/get-export-config-version) operation. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-version-number" }, "operationId": "get-version-number", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "basedOn": 1, "configId": 48579, "configName": "TestConfig", "createDate": "2013-10-07T17:58:52Z", "createdBy": "hgildong", "production": { "status": "Active", "time": "2014-07-08T07:40:00Z" }, "staging": { "status": "Inactive" }, "version": 2, "versionNotes": "Membership Benefits" }, "schema": { "additionalProperties": false, "description": "Contains configuration version details.", "properties": { "basedOn": { "description": "__Read-only__ The version from which you cloned this version.", "readOnly": true, "type": "integer" }, "configId": { "description": "__Read-only__ Uniquely identifies the security configuration.", "readOnly": true, "type": "integer" }, "configName": { "description": "The security configuration name.", "type": "string" }, "createDate": { "description": "__Read-only__ The date when you created the configuration version.", "readOnly": true, "type": "string" }, "createdBy": { "description": "__Read-only__ The user who created the configuration version.", "readOnly": true, "type": "string" }, "production": { "additionalProperties": false, "description": "__Read-only__ The activation status of the configuration version in the production network.", "properties": { "action": { "description": "The action taken on the configuration version. Either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status, either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The activation time.", "type": "string" } }, "readOnly": true, "required": [ "status" ], "type": "object" }, "staging": { "additionalProperties": false, "description": "__Read-only__ The activation status of the configuration version in the staging network.", "properties": { "action": { "description": "The action taken on the configuration version. Either `ACTIVATE` or `DEACTIVATE`.", "enum": [ "ACTIVATE", "DEACTIVATE" ], "type": "string" }, "status": { "description": "The activation status, either `Pending`, `Active`, `Inactive`, `Deactivated`, or `Failed`.", "enum": [ "Pending", "Active", "Inactive", "Deactivated", "Failed" ], "type": "string" }, "time": { "description": "The ISO 8601 time stamp indicating the activation time.", "type": "string" } }, "readOnly": true, "required": [ "status" ], "type": "object" }, "version": { "description": "__Read-only__ The security configuration version.", "readOnly": true, "type": "integer" }, "versionNotes": { "description": "The notes you entered for the configuration version.", "type": "string" } }, "required": [ "configId", "configName", "version", "staging", "production" ], "type": "object", "x-akamai": { "file-path": "schemas/waf-config-version.yaml" } } } }, "description": "Successfully retrieved resource." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Get Configuration Version Details", "tags": [ "General configuration settings" ] }, "delete": { "description": "Delete the specified configuration version. You can't delete a version that's actively in use. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/delete-version-number" }, "operationId": "delete-version-number", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "204": { "content": {}, "description": "Successfully deleted the configuration version." }, "403": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to this security configuration.", "x-akamai": { "file-path": "errors/400.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Delete a Configuration Version", "tags": [ "General configuration settings" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-version.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}" } }, "/configs/{configId}/versions/{versionNumber}/advanced-settings/cookie-settings": { "get": { "description": "__Beta__ Returns cookie settings for a configuration. Contact your account team if you'd like to run this operation. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-advanced-settings-cookie-settings" }, "operationId": "get-advanced-settings-cookie-settings", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "cookieDomain": "automatic", "useAllSecureTraffic": true }, "schema": { "additionalProperties": false, "description": "Contains the cookie settings for a configuration.", "properties": { "cookieDomain": { "description": "Choose the type of domain. The default recommended type is `automatic`. Otherwise, choose `fqdn` to use the current Fully Qualified Domain name, `legacy` to use the original way in which the domain was selected, or `psl` to use the public suffix list to identify a private domain.", "enum": [ "automatic", "fqdn", "legacy", "psl" ], "type": "string" }, "useAllSecureTraffic": { "description": "If all of your traffic uses HTTPS, specify `true`. This option sets the Secure flag on all security product cookies, which are then only included with HTTPS traffic. It also adds `SameSite=None` to most bot management cookies, ensuring that recent browser versions submit the cookies with protected requests. The `SameSite=None` cookie setting is necessary for site architectures that involve cross-domain form submission or inclusion of cross-domain iframes.", "type": "boolean" } }, "type": "object", "x-akamai": { "file-path": "schemas/cookie-settings.yaml" } } } }, "description": "Successfully retrieved the cookie settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get Cookie Settings", "tags": [ "Cookie Settings" ], "x-akamai": { "status": "BETA" } }, "put": { "description": "__Beta__ Modify cookie settings for a configuration. Contact your account team if you'd like to run this operation. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-advanced-settings-cookie-settings" }, "operationId": "put-advanced-settings-cookie-settings", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "cookieDomain": "automatic", "useAllSecureTraffic": true }, "schema": { "additionalProperties": false, "description": "Contains the cookie settings for a configuration.", "properties": { "cookieDomain": { "description": "Choose the type of domain. The default recommended type is `automatic`. Otherwise, choose `fqdn` to use the current Fully Qualified Domain name, `legacy` to use the original way in which the domain was selected, or `psl` to use the public suffix list to identify a private domain.", "enum": [ "automatic", "fqdn", "legacy", "psl" ], "example": "{{cookieDomain}}", "type": "string" }, "useAllSecureTraffic": { "description": "If all of your traffic uses HTTPS, specify `true`. This option sets the Secure flag on all security product cookies, which are then only included with HTTPS traffic. It also adds `SameSite=None` to most bot management cookies, ensuring that recent browser versions submit the cookies with protected requests. The `SameSite=None` cookie setting is necessary for site architectures that involve cross-domain form submission or inclusion of cross-domain iframes.", "example": "{{useAllSecureTraffic}}", "type": "boolean" } }, "type": "object", "x-akamai": { "file-path": "schemas/cookie-settings.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "cookieDomain": "automatic", "useAllSecureTraffic": true }, "schema": { "additionalProperties": false, "description": "Contains the cookie settings for a configuration.", "properties": { "cookieDomain": { "description": "Choose the type of domain. The default recommended type is `automatic`. Otherwise, choose `fqdn` to use the current Fully Qualified Domain name, `legacy` to use the original way in which the domain was selected, or `psl` to use the public suffix list to identify a private domain.", "enum": [ "automatic", "fqdn", "legacy", "psl" ], "type": "string" }, "useAllSecureTraffic": { "description": "If all of your traffic uses HTTPS, specify `true`. This option sets the Secure flag on all security product cookies, which are then only included with HTTPS traffic. It also adds `SameSite=None` to most bot management cookies, ensuring that recent browser versions submit the cookies with protected requests. The `SameSite=None` cookie setting is necessary for site architectures that involve cross-domain form submission or inclusion of cross-domain iframes.", "type": "boolean" } }, "type": "object", "x-akamai": { "file-path": "schemas/cookie-settings.yaml" } } } }, "description": "The response shows the updated cookie settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Cookie Settings", "tags": [ "Cookie Settings" ], "x-akamai": { "status": "BETA" } }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-cookie-settings.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/advanced-settings/cookie-settings" } }, "/configs/{configId}/versions/{versionNumber}/advanced-settings/evasive-path-match": { "get": { "description": "Lists the evasive path match setting for a configuration. Evasive path match is off by default. This setting applies at the configuration level and applies to all policies within a configuration. If you want to view this setting for a specific policy, run [Get evasive patch match settings](https://techdocs.akamai.com/application-security/reference/get-evasive-path-match). _Product:_ Web Application Protector, Kona Site Defender.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-evasive-path-match-per-config" }, "operationId": "get-evasive-path-match-per-config", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "enablePathMatch": true }, "schema": { "additionalProperties": false, "description": "The GET Response JSON for Evasive Path Match.", "properties": { "enablePathMatch": { "description": "When enabled, evaluates requests with the following list of characters removed ` & ! $ ' ( ) + , [ ] * @ ^ \\ \"` and `.` only when it appears as a trailing character at the end of the URL.", "type": "boolean" } }, "required": [ "enablePathMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/evasive-path-match-get-200.yaml" } } } }, "description": "Successfully retrieved the evasive path match settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get Evasive Path Match Settings for a Configuration", "tags": [ "Evasive path match" ] }, "put": { "description": "Enable, disable, or update evasive path match settings for a configuration. This operation applies at the configuration level and applies to all policies within a configuration. If you want to override these settings for a specific policy, run [Modify evasive path match settings](https://techdocs.akamai.com/application-security/reference/put-evasive-path-match). _Product:_ Web Application Protector, Kona Site Defender.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-evasive-path-match-per-config" }, "operationId": "put-evasive-path-match-per-config", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "enablePathMatch": true }, "schema": { "additionalProperties": false, "description": "The PUT Request JSON for Evasive Path Match.", "properties": { "enablePathMatch": { "description": "When enabled, evaluates requests with the following list of characters removed ` & ! $ ' ( ) + , [ ] * @ ^ \\ \"` and `.` only when it appears as a trailing character at the end of the URL.", "example": "{{enablePathMatch}}", "type": "boolean" } }, "required": [ "enablePathMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/evasive-path-match-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "enablePathMatch": true }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for Evasive Path Match.", "properties": { "enablePathMatch": { "description": "When enabled, evaluates requests with the following list of characters removed ` & ! $ ' ( ) + , [ ] * @ ^ \\ \"` and `.` only when it appears as a trailing character at the end of the URL. This feature does not match on characters that are an integral part of URL requests, like: ``` : / # & ; = ``` and `.` when it appears inside the URL string.", "type": "boolean" } }, "required": [ "enablePathMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/evasive-path-match-put-200.yaml" } } } }, "description": "Successfully updated the evasive path match settings:." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Evasive Path Match Settings for a Configuration", "tags": [ "Evasive path match" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-evasive-path-match.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/advanced-settings/evasive-path-match" } }, "/configs/{configId}/versions/{versionNumber}/advanced-settings/logging": { "get": { "description": "Lists HTTP header logging controls for a configuration. HTTP header logging is on by default, and in most cases you should leave it enabled. You can filter requests by header type, including or excluding requests with a specific header, or by cookie. This operation applies at the configuration level, and therefore applies to all policies within a configuration. If you want to view these settings for a specific policy, run [Get HTTP header log settings](https://techdocs.akamai.com/application-security/reference/get-policies-logging). _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-advanced-settings-logging" }, "operationId": "get-advanced-settings-logging", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "allowSampling": true, "cookies": { "type": "all" }, "customHeaders": { "type": "exclude", "values": [ "csdasdad" ] }, "standardHeaders": { "type": "only", "values": [ "Accept" ] } }, "schema": { "additionalProperties": false, "description": "The GET Response JSON for HTTP Header Logging.", "properties": { "allowSampling": { "description": "Enables HTTP Header logging.", "type": "boolean" }, "cookies": { "additionalProperties": false, "description": "Settings for cookie headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "customHeaders": { "additionalProperties": false, "description": "Settings for custom headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "standardHeaders": { "additionalProperties": false, "description": "Settings for standard headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } } }, "required": [ "allowSampling", "cookies", "customHeaders", "standardHeaders" ], "type": "object", "x-akamai": { "file-path": "schemas/header-logging-get-200.yaml" } } } }, "description": "Successfully retrieved the HTTP Header Logging settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get the HTTP Header Log Settings for a Configuration", "tags": [ "HTTP header logs" ] }, "put": { "description": "Enable, disable, or update HTTP header Logging settings for a configuration. This operation applies at the configuration level, and therefore applies to all policies within a configuration. If you want to override these settings for a specific policy, run [Modify HTTP header log settings](https://techdocs.akamai.com/application-security/reference/put-policies-logging). _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-advanced-settings-logging" }, "operationId": "put-advanced-settings-logging", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "allowSampling": true, "cookies": { "type": "all" }, "customHeaders": { "type": "exclude", "values": [ "csdasdad" ] }, "standardHeaders": { "type": "only", "values": [ "Accept" ] } }, "schema": { "additionalProperties": false, "description": "The PUT Request JSON for HTTP Header Logging.", "properties": { "allowSampling": { "description": "Whether to enable HTTP Header logging.", "example": "{{allowSampling}}", "type": "boolean" }, "cookies": { "additionalProperties": false, "description": "Settings for cookie headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "customHeaders": { "additionalProperties": false, "description": "Settings for custom headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "standardHeaders": { "additionalProperties": false, "description": "Settings for standard headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } } }, "required": [ "allowSampling" ], "type": "object", "x-akamai": { "file-path": "schemas/header-logging-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "allowSampling": true, "cookies": { "type": "all" }, "customHeaders": { "type": "exclude", "values": [ "csdasdad" ] }, "standardHeaders": { "type": "only", "values": [ "Accept" ] } }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for HTTP Header Logging.", "properties": { "allowSampling": { "description": "Enables HTTP Header logging.", "type": "boolean" }, "cookies": { "additionalProperties": false, "description": "Settings for cookie headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "customHeaders": { "additionalProperties": false, "description": "Settings for custom headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "standardHeaders": { "additionalProperties": false, "description": "Settings for standard headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } } }, "required": [ "allowSampling", "cookies", "customHeaders", "standardHeaders" ], "type": "object", "x-akamai": { "file-path": "schemas/header-logging-put-200.yaml" } } } }, "description": "Successfully updated the HTTP Header Logging settings:." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify HTTP Header Log Settings for a Configuration", "tags": [ "HTTP header logs" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-logging.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/advanced-settings/logging" } }, "/configs/{configId}/versions/{versionNumber}/advanced-settings/logging/attack-payload": { "get": { "description": "Lists attack payload log settings for a configuration. When set to `NONE`, the request body and response body show as redacted in the log. For example, `JSON_PAIRS:redacted`. Attack payload logging is on by default, and in most cases you should leave it enabled. This operation applies at the configuration level, and therefore applies to all policies within a configuration. If you want to view these settings for a specific policy, run [Get attack payload logging settings for a policy](https://techdocs.akamai.com/application-security/reference/get-policies-attack-payload-logging). _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-advanced-settings-attack-payload-logging" }, "operationId": "get-advanced-settings-attack-payload-logging", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "enabled": true, "requestBody": { "type": "ATTACK_PAYLOAD" }, "responseBody": { "type": "NONE" } }, "schema": { "additionalProperties": false, "description": "The GET Response JSON for attack payload logging.", "properties": { "enabled": { "description": "Whether attack payload logging is enabled.", "type": "boolean" }, "requestBody": { "additionalProperties": false, "description": "The settings for how Akamai's network logs attack payloads in request bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "responseBody": { "additionalProperties": false, "description": "The settings for how Akamai's network logs attack payloads in response bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } } }, "required": [ "enabled", "requestBody", "responseBody" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging-get-200.yaml" } } } }, "description": "Successfully retrieved the attack payload logging settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get the Attack Payload Log Settings for a Configuration", "tags": [ "Attack payload logs" ] }, "put": { "description": "Enable, disable, or update attack payload log settings for a configuration. When set to `NONE`, the request body and response body show as redacted in the log. For example, `JSON_PAIRS:redacted`. When set to `RESPONSE_BODY` or `REQUEST_BODY` the log shows only the string flagged as a possible attack, and not the entire request or response body. This operation applies at the configuration level, and therefore applies to all policies within a configuration. If you want to override these settings for a specific policy, run [Modify attack payload log settings for a policy](https://techdocs.akamai.com/application-security/reference/put-policies-attack-payload-logging). _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-advanced-settings-attack-payload-logging" }, "operationId": "put-advanced-settings-attack-payload-logging", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "enabled": true, "requestBody": { "type": "ATTACK_PAYLOAD" }, "responseBody": { "type": "NONE" } }, "schema": { "additionalProperties": false, "description": "The PUT Request JSON for attack payload logging.", "properties": { "enabled": { "description": "Whether attack payload logging is enabled.", "example": "{{enabled}}", "type": "boolean" }, "requestBody": { "additionalProperties": false, "description": "Settings for request body.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "responseBody": { "additionalProperties": false, "description": "Settings for response body.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } } }, "required": [ "enabled", "requestBody", "responseBody" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "enabled": true, "requestBody": { "type": "ATTACK_PAYLOAD" }, "responseBody": { "type": "NONE" } }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for attack payload logging.", "properties": { "enabled": { "description": "Whether attack payload logging is enabled.", "type": "boolean" }, "requestBody": { "additionalProperties": false, "description": "The settings for how our network logs attack payloads in request bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "responseBody": { "additionalProperties": false, "description": "The settings for how our network logs attack payloads in response bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } } }, "required": [ "enabled", "requestBody", "responseBody" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging-put-200.yaml" } } } }, "description": "Successfully updated the attack payload logging settings:." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Attack Payload Log Settings for a Configuration", "tags": [ "Attack payload logs" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-logging-attack-payload.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/advanced-settings/logging/attack-payload" } }, "/configs/{configId}/versions/{versionNumber}/advanced-settings/pii-learning": { "get": { "description": "Shows whether PII learning is enabled. This operation applies at the security configuration level. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-advanced-settings-pii-learning" }, "operationId": "get-advanced-settings-pii-learning", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "enablePiiLearning": true }, "schema": { "additionalProperties": false, "description": "Summarizes availability of PII learning.", "properties": { "enablePiiLearning": { "description": "Enables PII learning.", "type": "boolean" } }, "required": [ "enablePiiLearning" ], "type": "object", "x-akamai": { "file-path": "schemas/pii-learning.yaml" } } } }, "description": "Successfully retrieved the PII learning settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get PII Learning Settings for a Configuration", "tags": [ "PII learning" ] }, "put": { "description": "Turn on PII learning for your API definition. To enable PII learning, submit your request with a payload of `{\"enablePiiLearning\": true}`. To disable PII learning, submit your request with a payload of `{\"enablePiiLearning\": false}`. This operation applies at the security configuration level. Run [Modify PII settings for an endpoint version](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-pii-settings) to manage your API definitions in regards to PII. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-advanced-settings-pii-learning" }, "operationId": "put-advanced-settings-pii-learning", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "enablePiiLearning": true }, "schema": { "additionalProperties": false, "description": "Summarizes availability of PII learning.", "properties": { "enablePiiLearning": { "description": "Enables PII learning.", "example": "{{enablePiiLearning}}", "type": "boolean" } }, "required": [ "enablePiiLearning" ], "type": "object", "x-akamai": { "file-path": "schemas/pii-learning.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "enablePiiLearning": true }, "schema": { "additionalProperties": false, "description": "Summarizes availability of PII learning.", "properties": { "enablePiiLearning": { "description": "Enables PII learning.", "type": "boolean" } }, "required": [ "enablePiiLearning" ], "type": "object", "x-akamai": { "file-path": "schemas/pii-learning.yaml" } } } }, "description": "Successfully updated the PII learning settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Enable PII Learning Settings for a Configuration", "tags": [ "PII learning" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-pii-learning.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/advanced-settings/pii-learning" } }, "/configs/{configId}/versions/{versionNumber}/advanced-settings/pragma-header": { "get": { "description": "Return the `Pragma` header excluded conditions. By default, the `Pragma` header is stripped from an operation's response except in cases where you set `excludeCondition`. This operation applies at the security configuration level. To see settings at the security policy level, run [List Pragma header settings for a security policy](https://techdocs.akamai.com/application-security/reference/get-policies-pragma-header). _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-advanced-settings-pragma-header" }, "operationId": "get-advanced-settings-pragma-header", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "action": "REMOVE", "conditionOperator": "AND", "excludeCondition": [ { "header": "accept", "positiveMatch": true, "type": "requestHeaderValueMatch", "value": [ "application/json", "application/xml" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "ipMatch", "useHeaders": false, "value": [ "192.0.2.1", "192.0.2.250/24" ] }, { "positiveMatch": true, "type": "networkList", "value": [ "123_3ALLOWEDIPS" ] }, { "name": "type", "positiveMatch": true, "type": "queryParamNameValueMatch", "value": [ "type A", "type B" ], "valueCase": true, "valueWildcard": false } ] }, "schema": { "additionalProperties": false, "description": "Describes which headers you can exclude from inspection when you pass a `Pragma` debug header.", "properties": { "action": { "description": "The action to perform when a user passes a `Pragma` header. The only action currently supported is `REMOVE`.", "enum": [ "REMOVE" ], "type": "string" }, "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "type": "string" }, "excludeCondition": { "description": "The conditions to exclude from the default `remove` action. Any condition you set in this object appears in the `Pragma` header debug response object.", "items": { "additionalProperties": false, "properties": { "header": { "description": "The name of the request header. In the example, `accept`.", "type": "string" }, "name": { "description": "The name of the request header to ignore from inspection. In the example, `type`.", "type": "string" }, "positiveMatch": { "description": "When `true`, matches the selected values. When `false`, matches on anything outside the selected values.", "type": "boolean" }, "type": { "description": "The header value you want to appear in the response. You can choose from `requestHeaderValueMatch`, `ipMatch`, `networkList`, or `queryParamNameValueMatch`.", "enum": [ "requestHeaderValueMatch", "ipMatch", "networkList", "queryParamNameValueMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include the `X-Forwarded-For` header (XFF) header. This only applies when the condition `type` is `IP_MATCH` or `NETWORK_LIST`.", "type": "boolean" }, "value": { "description": "List of header values, query parameter values, IP addresses, or names of network lists. To manage networks lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api).", "items": { "type": "string" }, "type": "array" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header value. This only applies when the condition `type` is `REQUEST_HEADER_VALUE_MATCH`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header value includes wildcards, such as `*` or `?`. This only applies to the `REQUEST_HEADER_VALUE_MATCH` condition type.", "type": "boolean" } }, "required": [ "type", "positiveMatch", "value" ], "type": "object" }, "type": "array" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/pragma-header.yaml" } } } }, "description": "Successfully retrieved the Pragma header settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get Pragma Settings for a Configuration", "tags": [ "Pragma settings" ] }, "put": { "description": "Update the `Pragma` header excluded conditions. By default, the `Pragma` header is stripped from an operation's response except in cases where you set `excludeCondition`. To remove existing settings, submit your request with an empty payload `{}` at the top-level of an object. For example, submit `\"type\": \"{}\"` in the request body to remove the `requestHeaderValueMatch` from the excluded conditions. If you submit an empty payload for each member, you'll clear all of your condition settings. This operation applies at the security configuration level. To see settings at the security policy level, run [Modify Pragma header settings for a security policy](https://techdocs.akamai.com/application-security/reference/put-policies-pragma-header). _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-advanced-settings-pragma-header" }, "operationId": "put-advanced-settings-pragma-header", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "action": "REMOVE", "conditionOperator": "AND", "excludeCondition": [ { "header": "accept", "positiveMatch": true, "type": "requestHeaderValueMatch", "value": [ "application/json", "application/xml" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "ipMatch", "useHeaders": false, "value": [ "192.0.2.1", "192.0.2.250/24" ] }, { "positiveMatch": true, "type": "networkList", "value": [ "123_3ALLOWEDIPS" ] }, { "name": "type", "positiveMatch": true, "type": "queryParamNameValueMatch", "value": [ "type A", "type B" ], "valueCase": true, "valueWildcard": false } ] }, "schema": { "additionalProperties": false, "description": "Describes which headers you can exclude from inspection when you pass a `Pragma` debug header.", "properties": { "action": { "description": "The action to perform when a user passes a `Pragma` header. The only action currently supported is `REMOVE`.", "enum": [ "REMOVE" ], "example": "{{action}}", "type": "string" }, "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "example": "{{conditionOperator}}", "type": "string" }, "excludeCondition": { "description": "The conditions to exclude from the default `remove` action. Any condition you set in this object appears in the `Pragma` header debug response object.", "items": { "additionalProperties": false, "properties": { "header": { "description": "The name of the request header. In the example, `accept`.", "type": "string" }, "name": { "description": "The name of the request header to ignore from inspection. In the example, `type`.", "type": "string" }, "positiveMatch": { "description": "When `true`, matches the selected values. When `false`, matches on anything outside the selected values.", "type": "boolean" }, "type": { "description": "The header value you want to appear in the response. You can choose from `requestHeaderValueMatch`, `ipMatch`, `networkList`, or `queryParamNameValueMatch`.", "enum": [ "requestHeaderValueMatch", "ipMatch", "networkList", "queryParamNameValueMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include the `X-Forwarded-For` header (XFF) header. This only applies when the condition `type` is `IP_MATCH` or `NETWORK_LIST`.", "type": "boolean" }, "value": { "description": "List of header values, query parameter values, IP addresses, or names of network lists. To manage networks lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api).", "items": { "type": "string" }, "type": "array" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header value. This only applies when the condition `type` is `REQUEST_HEADER_VALUE_MATCH`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header value includes wildcards, such as `*` or `?`. This only applies to the `REQUEST_HEADER_VALUE_MATCH` condition type.", "type": "boolean" } }, "required": [ "type", "positiveMatch", "value" ], "type": "object" }, "type": "array" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/pragma-header.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "action": "REMOVE", "conditionOperator": "AND", "excludeCondition": [ { "header": "accept", "positiveMatch": true, "type": "requestHeaderValueMatch", "value": [ "application/json", "application/xml" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "ipMatch", "useHeaders": false, "value": [ "192.0.2.1", "192.0.2.250/24" ] }, { "positiveMatch": true, "type": "networkList", "value": [ "123_3ALLOWEDIPS" ] }, { "name": "type", "positiveMatch": true, "type": "queryParamNameValueMatch", "value": [ "type A", "type B" ], "valueCase": true, "valueWildcard": false } ] }, "schema": { "additionalProperties": false, "description": "Describes which headers you can exclude from inspection when you pass a `Pragma` debug header.", "properties": { "action": { "description": "The action to perform when a user passes a `Pragma` header. The only action currently supported is `REMOVE`.", "enum": [ "REMOVE" ], "type": "string" }, "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "type": "string" }, "excludeCondition": { "description": "The conditions to exclude from the default `remove` action. Any condition you set in this object appears in the `Pragma` header debug response object.", "items": { "additionalProperties": false, "properties": { "header": { "description": "The name of the request header. In the example, `accept`.", "type": "string" }, "name": { "description": "The name of the request header to ignore from inspection. In the example, `type`.", "type": "string" }, "positiveMatch": { "description": "When `true`, matches the selected values. When `false`, matches on anything outside the selected values.", "type": "boolean" }, "type": { "description": "The header value you want to appear in the response. You can choose from `requestHeaderValueMatch`, `ipMatch`, `networkList`, or `queryParamNameValueMatch`.", "enum": [ "requestHeaderValueMatch", "ipMatch", "networkList", "queryParamNameValueMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include the `X-Forwarded-For` header (XFF) header. This only applies when the condition `type` is `IP_MATCH` or `NETWORK_LIST`.", "type": "boolean" }, "value": { "description": "List of header values, query parameter values, IP addresses, or names of network lists. To manage networks lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api).", "items": { "type": "string" }, "type": "array" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header value. This only applies when the condition `type` is `REQUEST_HEADER_VALUE_MATCH`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header value includes wildcards, such as `*` or `?`. This only applies to the `REQUEST_HEADER_VALUE_MATCH` condition type.", "type": "boolean" } }, "required": [ "type", "positiveMatch", "value" ], "type": "object" }, "type": "array" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/pragma-header.yaml" } } } }, "description": "Successfully updated the Pragma header settings:." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Pragma Settings for a Configuration", "tags": [ "Pragma settings" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-pragma-header.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/advanced-settings/pragma-header" } }, "/configs/{configId}/versions/{versionNumber}/advanced-settings/prefetch": { "get": { "description": "Get Prefetch Request settings. _Products:_ Kona Site Defender.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-advanced-settings-prefetch" }, "operationId": "get-advanced-settings-prefetch", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "allExtensions": false, "enableAppLayer": true, "enableRateControls": false, "extensions": [ "cgi", "jsp", "EMPTY_STRING", "aspx", "py", "php", "asp" ] }, "schema": { "additionalProperties": false, "description": "The GET Response JSON for Prefetch Requests.", "properties": { "allExtensions": { "description": "Whether to enable prefetch requests for all extensions.", "type": "boolean" }, "enableAppLayer": { "description": "Whether to enable Prefetch Requests.", "type": "boolean" }, "enableRateControls": { "description": "Whether to enable Prefetch Requests for rate controls.", "type": "boolean" }, "extensions": { "description": "List of extensions.", "items": { "type": "string" }, "type": "array" } }, "required": [ "allExtensions", "enableAppLayer", "enableRateControls" ], "type": "object", "x-akamai": { "file-path": "schemas/prefetch-request-get-200.yaml" } } } }, "description": "Successfully retrieved the Prefetch Request settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get Prefetch Requests", "tags": [ "Prefetch requests" ] }, "put": { "description": "Enabling this protection causes your application firewall rules to inspect internal requests (those between your origin and Akamai's servers) for file types you specify. You can also apply rate controls to prefetch requests. This operation applies at the configuration level. _Products:_ Kona Site Defender.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-advanced-settings-prefetch" }, "operationId": "put-advanced-settings-prefetch", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "allExtensions": false, "enableAppLayer": true, "enableRateControls": false, "extensions": [ "cgi", "jsp", "EMPTY_STRING", "aspx", "py", "php", "asp" ] }, "schema": { "additionalProperties": false, "description": "The PUT Request JSON for Prefetch Requests.", "properties": { "allExtensions": { "description": "Whether to enable prefetch requests for all extensions.", "example": "{{allExtensions}}", "type": "boolean" }, "enableAppLayer": { "description": "Whether to enable Prefetch Requests.", "example": "{{enableAppLayer}}", "type": "boolean" }, "enableRateControls": { "description": "Whether to enable Prefetch Requests for rate controls.", "example": "{{enableRateControls}}", "type": "boolean" }, "extensions": { "description": "List of extensions.", "items": { "type": "string" }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/prefetch-request-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "allExtensions": false, "enableAppLayer": true, "enableRateControls": false, "extensions": [ "cgi", "jsp", "EMPTY_STRING", "aspx", "py", "php", "asp" ] }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for Prefetch Requests.", "properties": { "allExtensions": { "description": "Whether to enable prefetch requests for all extensions.", "type": "boolean" }, "enableAppLayer": { "description": "Whether to enable Prefetch Requests.", "type": "boolean" }, "enableRateControls": { "description": "Whether to enable Prefetch Requests for rate controls.", "type": "boolean" }, "extensions": { "description": "List of extensions.", "items": { "type": "string" }, "type": "array" } }, "required": [ "allExtensions", "enableAppLayer", "enableRateControls" ], "type": "object", "x-akamai": { "file-path": "schemas/prefetch-request-put-200.yaml" } } } }, "description": "Successfully updated the prefetch request settings:." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Prefetch Requests", "tags": [ "Prefetch requests" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-prefetch.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/advanced-settings/prefetch" } }, "/configs/{configId}/versions/{versionNumber}/advanced-settings/request-body": { "get": { "description": "__Beta__ Return request body inspection limit settings for a configuration. Contact your account team if you'd like to run this operation. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-advanced-settings-request-body" }, "operationId": "get-advanced-settings-request-body", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "requestBodySizeInKB": 16 }, "schema": { "additionalProperties": false, "description": "Contains the size limits for a request body.", "properties": { "requestBodyInspectionLimitInKB": { "description": "Request body size in KB, either `8`, `16`, or `32` as string-formatted integers, or `default` to use Akamai's best practice value.", "enum": [ "8", "16", "32", "default" ], "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/request-body.yaml" } } } }, "description": "Successfully retrieved the request body inspection limit settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get Request Body Size Settings for a Configuration", "tags": [ "Request body size" ], "x-akamai": { "status": "BETA" } }, "put": { "description": "__Beta__ Modify request body inspection limit settings for a configuration. Inspect request bodies up to a certain size. In exceptional cases, you can change the default value to a set limit: `8`, `16`, or `32` kb. Contact your account team if you'd like to run this operation. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-advanced-settings-request-body" }, "operationId": "put-advanced-settings-request-body", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "requestBodySizeInKB": 16 }, "schema": { "additionalProperties": false, "description": "Contains the size limits for a request body.", "properties": { "requestBodyInspectionLimitInKB": { "description": "Request body size in KB, either `8`, `16`, or `32` as string-formatted integers, or `default` to use Akamai's best practice value.", "enum": [ "8", "16", "32", "default" ], "example": "{{requestBodyInspectionLimitInKB}}", "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/request-body.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "requestBodySizeInKB": 16 }, "schema": { "additionalProperties": false, "description": "Contains the size limits for a request body.", "properties": { "requestBodyInspectionLimitInKB": { "description": "Request body size in KB, either `8`, `16`, or `32` as string-formatted integers, or `default` to use Akamai's best practice value.", "enum": [ "8", "16", "32", "default" ], "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/request-body.yaml" } } } }, "description": "Successfully updated the request body inspection limit settings:." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Request Body Inspection Limit Settings for a Configuration", "tags": [ "Request body size" ], "x-akamai": { "status": "BETA" } }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-request-body.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/advanced-settings/request-body" } }, "/configs/{configId}/versions/{versionNumber}/bypass-network-lists": { "get": { "description": "Lists which network lists are used in the bypass network lists settings. If you want to add or remove IP addresses from the network lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api). _Products:_ Web Application Protector.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-bypass-network-lists" }, "operationId": "get-bypass-network-lists", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "networkLists": [ { "id": "888518_ACDDCKERS", "name": "Test network list 1" }, { "id": "1304427_AAXXBBLIST", "name": "Test network list 2" } ] }, "schema": { "additionalProperties": false, "description": "Contains bypass network lists for the specified configuration version.", "properties": { "networkLists": { "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" } }, "required": [ "networkLists" ], "type": "object", "x-akamai": { "file-path": "schemas/bypass-network-lists-get.yaml" } } } }, "description": "Successfully retrieved the bypass network lists settings." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } } }, "summary": "Akamai API Security Get Bypass Network Lists Settings", "tags": [ "Bypass network lists" ] }, "put": { "description": "Update which network lists to use in the bypass network lists settings. If you want to add or remove IP addresses from the network lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api). _Products:_ Web Application Protector.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-bypass-network-lists" }, "operationId": "put-bypass-network-lists", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "networkLists": [ "1304427_AAXXBBLIST", "888518_ACDDCKERS" ] }, "schema": { "additionalProperties": false, "description": "Contains bypass network lists for the specified configuration version.", "properties": { "networkLists": { "description": "Contains a list of network list IDs.", "items": { "description": "List of network lists. The values are the network lists' IDs.", "type": "string" }, "type": "array" } }, "required": [ "networkLists" ], "type": "object", "x-akamai": { "file-path": "schemas/bypass-network-lists-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "asnControls": { "allowedIPNetworkLists": { "networkList": [ "9876_ASNTEST" ] }, "blockedIPNetworkLists": { "networkList": [ "567321_TESTASNLIST" ] } }, "block": "blockSpecificIPGeo", "geoControls": { "blockedIPNetworkLists": { "networkList": [ "72138_TEST1" ] } }, "ipControls": { "allowedIPNetworkLists": { "networkList": [ "56921_TEST" ] }, "blockedIPNetworkLists": { "networkList": [ "53712_TESTLIST123" ] } }, "ukraineGeoControl": { "action": "deny" } }, "schema": { "additionalProperties": false, "description": "Contains bypass network lists for the specified configuration version.", "properties": { "networkLists": { "description": "Contains a list of network list IDs.", "items": { "description": "List of network lists. The values are the network lists' IDs.", "type": "string" }, "type": "array" } }, "required": [ "networkLists" ], "type": "object", "x-akamai": { "file-path": "schemas/bypass-network-lists-put.yaml" } } } }, "description": "Successfully updated the IP/Geo Firewall settings." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } } }, "summary": "Akamai API Security Modify the Bypass Network Lists Settings", "tags": [ "Bypass network lists" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-bypass-network-lists.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/bypass-network-lists" } }, "/configs/{configId}/versions/{versionNumber}/custom-deny": { "post": { "description": "Create a new custom deny action for a specific configuration version. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-custom-deny" }, "operationId": "post-custom-deny", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "description": "test description", "name": "new custom deny", "parameters": [ { "displayName": "Prevent browser caching", "name": "prevent_browser_cache", "value": "true" }, { "displayName": "Response body content", "name": "response_body_content", "value": "json desc" }, { "displayName": "Response content type", "name": "response_content_type", "value": "application/xml" }, { "displayName": "Response status code", "name": "response_status_code", "value": "403" } ] }, "schema": { "additionalProperties": false, "description": "Contains details about a custom deny action.", "properties": { "description": { "description": "Describes the custom deny action.", "example": "{{description}}", "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the custom deny action.", "example": "{{id}}", "readOnly": true, "type": "string" }, "name": { "description": "The name you assigned to the custom deny action.", "example": "{{name}}", "type": "string" }, "parameters": { "description": "Describes the custom deny parameters.", "items": { "additionalProperties": false, "description": "Contains a list of parameters for the custom deny action. These parameters are not the same type of parameters you usually include in the path of a request.", "properties": { "displayName": { "description": "The description of the custom deny parameter.", "type": "string" }, "name": { "description": "The custom deny parameter you choose instead of the Akamai default response. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "enum": [ "response_status_code", "prevent_browser_cache", "response_content_type", "response_body_content", "response_header_name", "response_header_value", "custom_deny_hostname", "custom_deny_path", "include_true_ip", "include_reference_id" ], "type": "string" }, "value": { "description": "The value you assign to the custom deny parameter. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "name", "parameters" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-deny.yaml" } } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "description": "test description", "id": "deny_custom_622919", "name": "new custom deny", "parameters": [ { "displayName": "Prevent browser caching", "name": "prevent_browser_cache", "value": "true" }, { "displayName": "Response body content", "name": "response_body_content", "value": "json body" }, { "displayName": "Response content type", "name": "response_content_type", "value": "application/xml" }, { "displayName": "Response status code", "name": "response_status_code", "value": "403" } ] }, "schema": { "additionalProperties": false, "description": "Contains details about a custom deny action.", "properties": { "description": { "description": "Describes the custom deny action.", "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the custom deny action.", "readOnly": true, "type": "string" }, "name": { "description": "The name you assigned to the custom deny action.", "type": "string" }, "parameters": { "description": "Describes the custom deny parameters.", "items": { "additionalProperties": false, "description": "Contains a list of parameters for the custom deny action. These parameters are not the same type of parameters you usually include in the path of a request.", "properties": { "displayName": { "description": "The description of the custom deny parameter.", "type": "string" }, "name": { "description": "The custom deny parameter you choose instead of the Akamai default response. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "enum": [ "response_status_code", "prevent_browser_cache", "response_content_type", "response_body_content", "response_header_name", "response_header_value", "custom_deny_hostname", "custom_deny_path", "include_true_ip", "include_reference_id" ], "type": "string" }, "value": { "description": "The value you assign to the custom deny parameter. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "name", "parameters" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-deny.yaml" } } } }, "description": "Successfully created a custom deny action." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to custom deny actions in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Create a Custom Deny Action", "tags": [ "Shared resources: Custom deny actions" ] }, "get": { "description": "Returns custom deny actions for a specific security configuration version. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-custom-deny-actions" }, "operationId": "get-custom-deny-actions", "parameters": [ { "description": "Filter results by name, description, or ID. You can match on substrings.", "example": "{{search}}", "in": "query", "name": "search", "schema": { "example": "SQL Injection", "type": "string" }, "x-akamai": { "file-path": "parameters/search-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "customDenyList": [ { "description": "Custom Deny Example 1", "id": "deny_custom_622918", "name": "Custom Deny Example 1", "parameters": [ { "displayName": "Prevent browser caching", "name": "prevent_browser_cache", "value": "true" }, { "displayName": "Response body content", "name": "response_body_content", "value": "body comes here2222." }, { "displayName": "Response content type", "name": "response_content_type", "value": "application/json" }, { "displayName": "Response status code", "name": "response_status_code", "value": "403" } ] }, { "description": "Custom Deny Example 2", "id": 622919, "name": "Custom Deny Example 2", "parameters": [ { "displayName": "Prevent browser caching", "name": "prevent_browser_cache", "value": "true" }, { "displayName": "Response body content", "name": "response_body_content", "value": "response body." }, { "displayName": "Response content type", "name": "response_content_type", "value": "application/json" }, { "displayName": "Response status code", "name": "response_status_code", "value": "403" } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains details about custom deny actions.", "properties": { "ratePolicies": { "description": "A list of custom deny actions in this configuration version.", "items": { "additionalProperties": false, "description": "Contains details about a custom deny action.", "properties": { "description": { "description": "Describes the custom deny action.", "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the custom deny action.", "readOnly": true, "type": "string" }, "name": { "description": "The name you assigned to the custom deny action.", "type": "string" }, "parameters": { "description": "Describes the custom deny parameters.", "items": { "additionalProperties": false, "description": "Contains a list of parameters for the custom deny action. These parameters are not the same type of parameters you usually include in the path of a request.", "properties": { "displayName": { "description": "The description of the custom deny parameter.", "type": "string" }, "name": { "description": "The custom deny parameter you choose instead of the Akamai default response. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "enum": [ "response_status_code", "prevent_browser_cache", "response_content_type", "response_body_content", "response_header_name", "response_header_value", "custom_deny_hostname", "custom_deny_path", "include_true_ip", "include_reference_id" ], "type": "string" }, "value": { "description": "The value you assign to the custom deny parameter. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "name", "parameters" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-deny.yaml" } }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/custom-denies.yaml" } } } }, "description": "Successfully returned custom deny actions." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to custom deny actions in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version not found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Custom Deny Actions", "tags": [ "Shared resources: Custom deny actions" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-custom-denies.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/custom-deny" } }, "/configs/{configId}/versions/{versionNumber}/custom-deny/{customDenyId}": { "get": { "description": "Returns the specified custom deny action. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-custom-deny-action" }, "operationId": "get-custom-deny-action", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "description": "test description", "id": "deny_custom_622919", "name": "new custom deny", "parameters": [ { "displayName": "Prevent browser caching", "name": "prevent_browser_cache", "value": "true" }, { "displayName": "Response body content", "name": "response_body_content", "value": "json body" }, { "displayName": "Response content type", "name": "response_content_type", "value": "application/xml" }, { "displayName": "Response status code", "name": "response_status_code", "value": "403" } ] }, "schema": { "additionalProperties": false, "description": "Contains details about a custom deny action.", "properties": { "description": { "description": "Describes the custom deny action.", "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the custom deny action.", "readOnly": true, "type": "string" }, "name": { "description": "The name you assigned to the custom deny action.", "type": "string" }, "parameters": { "description": "Describes the custom deny parameters.", "items": { "additionalProperties": false, "description": "Contains a list of parameters for the custom deny action. These parameters are not the same type of parameters you usually include in the path of a request.", "properties": { "displayName": { "description": "The description of the custom deny parameter.", "type": "string" }, "name": { "description": "The custom deny parameter you choose instead of the Akamai default response. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "enum": [ "response_status_code", "prevent_browser_cache", "response_content_type", "response_body_content", "response_header_name", "response_header_value", "custom_deny_hostname", "custom_deny_path", "include_true_ip", "include_reference_id" ], "type": "string" }, "value": { "description": "The value you assign to the custom deny parameter. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "name", "parameters" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-deny.yaml" } } } }, "description": "Successfully returned custom deny action." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to custom deny action in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or custom deny action wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Get a Custom Deny Action", "tags": [ "Shared resources: Custom deny actions" ] }, "put": { "description": "Update details for a specific custom deny action. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-custom-deny" }, "operationId": "put-custom-deny", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "description": "test description", "id": 622919, "name": "new custom deny", "parameters": [ { "displayName": "Prevent browser caching", "name": "prevent_browser_cache", "value": "true" }, { "displayName": "Response body content", "name": "response_body_content", "value": "json desc" }, { "displayName": "Response content type", "name": "response_content_type", "value": "application/xml" }, { "displayName": "Response status code", "name": "response_status_code", "value": "403" } ] }, "schema": { "additionalProperties": false, "description": "Contains details about a custom deny action.", "properties": { "description": { "description": "Describes the custom deny action.", "example": "{{description}}", "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the custom deny action.", "example": "{{id}}", "readOnly": true, "type": "string" }, "name": { "description": "The name you assigned to the custom deny action.", "example": "{{name}}", "type": "string" }, "parameters": { "description": "Describes the custom deny parameters.", "items": { "additionalProperties": false, "description": "Contains a list of parameters for the custom deny action. These parameters are not the same type of parameters you usually include in the path of a request.", "properties": { "displayName": { "description": "The description of the custom deny parameter.", "type": "string" }, "name": { "description": "The custom deny parameter you choose instead of the Akamai default response. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "enum": [ "response_status_code", "prevent_browser_cache", "response_content_type", "response_body_content", "response_header_name", "response_header_value", "custom_deny_hostname", "custom_deny_path", "include_true_ip", "include_reference_id" ], "type": "string" }, "value": { "description": "The value you assign to the custom deny parameter. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "name", "parameters" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-deny.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "description": "test description", "id": "deny_custom_622919", "name": "new custom deny", "parameters": [ { "displayName": "Prevent browser caching", "name": "prevent_browser_cache", "value": "true" }, { "displayName": "Response body content", "name": "response_body_content", "value": "json body" }, { "displayName": "Response content type", "name": "response_content_type", "value": "application/xml" }, { "displayName": "Response status code", "name": "response_status_code", "value": "403" } ] }, "schema": { "additionalProperties": false, "description": "Contains details about a custom deny action.", "properties": { "description": { "description": "Describes the custom deny action.", "type": "string" }, "id": { "description": "__Read-only__ Uniquely identifies the custom deny action.", "readOnly": true, "type": "string" }, "name": { "description": "The name you assigned to the custom deny action.", "type": "string" }, "parameters": { "description": "Describes the custom deny parameters.", "items": { "additionalProperties": false, "description": "Contains a list of parameters for the custom deny action. These parameters are not the same type of parameters you usually include in the path of a request.", "properties": { "displayName": { "description": "The description of the custom deny parameter.", "type": "string" }, "name": { "description": "The custom deny parameter you choose instead of the Akamai default response. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "enum": [ "response_status_code", "prevent_browser_cache", "response_content_type", "response_body_content", "response_header_name", "response_header_value", "custom_deny_hostname", "custom_deny_path", "include_true_ip", "include_reference_id" ], "type": "string" }, "value": { "description": "The value you assign to the custom deny parameter. For available values, see [Deny name values](https://techdocs.akamai.com/application-security/reference/deny-name-values).", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "name", "parameters" ], "type": "object", "x-akamai": { "file-path": "schemas/custom-deny.yaml" } } } }, "description": "Successfully updated custom deny action." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to custom deny action in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or custom deny action wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Modify a Custom Deny Action", "tags": [ "Shared resources: Custom deny actions" ] }, "delete": { "description": "Delete a custom deny action. You can't delete a custom deny action that is actively in use. To delete the custom deny action, first activate an older configuration version or create a new version without the policy in place. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/delete-custom-deny" }, "operationId": "delete-custom-deny", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "204": { "content": {}, "description": "Successfully deleted the custom deny action." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to custom deny action in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or custom deny action wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Remove a Custom Deny Action", "tags": [ "Shared resources: Custom deny actions" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for each custom deny action.", "example": "{{customDenyId}}", "in": "path", "name": "customDenyId", "required": true, "schema": { "example": "112231", "type": "string" }, "x-akamai": { "file-path": "parameters/custom-deny-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-custom-deny.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/custom-deny/{customDenyId}" } }, "/configs/{configId}/versions/{versionNumber}/hostname-coverage/match-targets": { "get": { "description": "List the API and website match targets that protect a hostname. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-coverage-match-targets" }, "operationId": "get-coverage-match-targets", "parameters": [ { "description": "Get results by hostname.", "example": "{{hostname}}", "in": "query", "name": "hostname", "schema": { "example": "www.example.com", "type": "string" }, "x-akamai": { "file-path": "parameters/search-hostname.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "matchTargets": { "apiTargets": [], "websiteTargets": [ { "bypassNetworkLists": [ { "id": "1410_BYPASSWAFLIST", "name": "shawn - BypassWAFList" } ], "configId": 75498, "configVersion": 428, "defaultFile": "NO_MATCH", "effectiveSecurityControls": { "applyApplicationLayerControls": true, "applyBotmanControls": true, "applyNetworkLayerControls": true, "applyPageIntegrityControls": false, "applyRateControls": true, "applyReputationControls": true, "applySlowPostControls": true }, "fileExtensions": [], "filePaths": [ "/content/tealeaf" ], "firewallPolicy": { "evaluated": false, "policyId": "GRD_4186", "policyName": "Main Street Corporation USA", "policySecurityControls": { "applyApiConstraints": false, "applyApplicationLayerControls": true, "applyBotmanControls": true, "applyNetworkLayerControls": true, "applyPageIntegrityControls": false, "applyRateControls": true, "applyReputationControls": true, "applySlowPostControls": true } }, "hostnames": [ "www.example.com", "m.example.com", "m.new.example.com", "safety.example.com", "static.example.net", "failover3.example.com", "static.example.com", "images.example.com", "failover5.example.com", "espanol.example.com" ], "isNegativeFileExtensionMatch": false, "isNegativePathMatch": false, "isTargetSecurityControlsEditable": false, "logicalId": 1730010, "sequence": 3, "targetId": 2555705, "targetSecurityControls": { "applyApplicationLayerControls": true, "applyNetworkLayerControls": true, "applyPageIntegrityControls": false, "applyRateControls": true, "applyReputationControls": true, "applySlowPostControls": true }, "type": "website" } ] } }, "schema": { "additionalProperties": false, "description": "Contains the hostname coverage API and website match targets defined in the security configuration version.", "properties": { "matchTargets": { "additionalProperties": false, "description": "Contains the API and website match targets defined in the security configuration version.", "properties": { "apiTargets": { "description": "The list of `api` match targets.", "items": { "additionalProperties": false, "description": "Contains details about a hostname coverage match target.", "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": "integer" }, "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": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "type": "integer" }, "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" }, "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" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-coverage-match-target.yaml" } }, "type": "array" }, "websiteTargets": { "description": "The list of `website` match targets.", "items": { "additionalProperties": false, "description": "Contains details about a hostname coverage match target.", "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": "integer" }, "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": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "type": "integer" }, "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" }, "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" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-coverage-match-target.yaml" } }, "type": "array" } }, "required": [ "apiTargets", "websiteTargets" ], "type": "object" } }, "required": [ "matchTargets" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-coverage-match-target-get-200.yaml" } } } }, "description": "Successfully retrieved the hostname coverage match targets." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get the Hostname Coverage Match Targets", "tags": [ "Match targets" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-hostname-coverage-match-targets.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/hostname-coverage/match-targets" } }, "/configs/{configId}/versions/{versionNumber}/hostname-coverage/overlapping": { "get": { "description": "List the configuration versions that contain a hostname also included in the current configuration version. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-hostname-coverage-overlapping" }, "operationId": "get-hostname-coverage-overlapping", "parameters": [ { "description": "Get results by hostname.", "example": "{{hostname}}", "in": "query", "name": "hostname", "schema": { "example": "www.example.com", "type": "string" }, "x-akamai": { "file-path": "parameters/search-hostname.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "overLappingList": [ { "configId": 57415, "configName": "Main Street Corporation Mexico", "configVersion": 37, "contractId": "C-0N7RAC7", "contractName": "Main Street Corporation .-F-I5PAH1", "versionTags": [ "STAGING" ] }, { "configId": 75498, "configName": "Main Street Corporation Inc", "configVersion": 1, "contractId": "K-0N7RAK7", "contractName": "Main Street Corporation .-F-I5PAH1", "versionTags": [ "STAGING" ] }, { "configId": 42826, "configName": "Main Street Corporation Local", "configVersion": 3, "contractId": "K-0N7RAK7", "contractName": "Zoro-Main Street Corporation ", "versionTags": [ "LAST_CREATED" ] } ] }, "schema": { "additionalProperties": false, "description": "Describes configurations that use the same hostname, causing overlapping coverage.", "properties": { "overLappingList": { "description": "The list of configurations that overlap coverage for the hostname.", "items": { "additionalProperties": false, "description": "Contains details about an overlapping configuration.", "properties": { "configId": { "description": "The configuration ID.", "type": "integer" }, "configName": { "description": "The configuration name.", "type": "string" }, "configVersion": { "description": "The configuration version.", "type": "integer" }, "contractId": { "description": "The contract ID.", "type": "string" }, "contractName": { "description": "The contract name.", "type": "string" }, "hostnames": { "description": "List of version tags, any combination of `STAGING` and `LAST_CREATED`.", "items": { "description": "The version tag.", "enum": [ "STAGING", "LAST_CREATED" ], "type": "string" }, "type": "array" } }, "required": [ "configId", "configName", "configVersion" ], "type": "object", "x-akamai": { "file-path": "schemas/overlap-config.yaml" } }, "type": "array" } }, "required": [ "overLappingList" ], "type": "object", "x-akamai": { "file-path": "schemas/hostname-coverage-overlapping-get-200.yaml" } } } }, "description": "Successfully retrieved the hostname's overlapping version information." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security List Hostname Overlaps", "tags": [ "Hostnames" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-hostname-coverage-overlapping.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/hostname-coverage/overlapping" } }, "/configs/{configId}/versions/{versionNumber}/malware-policies": { "post": { "description": "Create a new malware policy for a security configuration version.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-malware-policies" }, "operationId": "post-malware-policies", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "allowListId": "523719_ALLOWLIST", "blockListId": "524002_BLOCKLIST", "contentTypes": [ { "encodedContentAttributes": [ { "encoding": [ "base64" ], "path": "image.imagePath" } ], "name": "application/json" } ], "description": "Malware scan configuration details", "hostnames": [ "abc.com", "def.com", "xyz.com" ], "logFilename": true, "name": "FMS Configuration22", "paths": [ "/base-path", "/b" ] }, "schema": { "additionalProperties": false, "description": "Contains details about a malware policy.", "properties": { "allowListId": { "description": "The ID of a client list containing file hashes of specific files to allow.", "example": "{{allowListId}}", "type": "string" }, "blockListId": { "description": "The ID of a client list containing file hashes of specific files to block.", "example": "{{blockListId}}", "type": "string" }, "contentTypes": { "description": "The content types and encodings to match.", "items": { "additionalProperties": false, "properties": { "encodedContentAttributes": { "description": "An optional list of encoded attribute paths.", "items": { "additionalProperties": false, "properties": { "encoding": { "description": "The encodings used for the attribute path. Currently only `base64` is supported.", "items": { "enum": [ "base64" ], "type": "string" }, "type": "array" }, "path": { "description": "The JSONPath to an attribute with encoded content. The path must point to a single item, and may not include the `$`, `..`, `?` or `*` operators.", "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "description": "The name of the content type.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "description": { "description": "Descriptive text you provide about a policy.", "example": "{{description}}", "type": "string" }, "hostnames": { "description": "The hostnames to match. This is where you want the malware detections to focus.", "items": { "type": "string" }, "type": "array" }, "id": { "description": "__Read-only__ Uniquely identifies each malware policy.", "example": "{{id}}", "readOnly": true, "type": "integer" }, "logFilename": { "default": false, "description": "Whether to log the name of the file that triggered an `alert` or `deny` action.", "example": "{{logFilename}}", "type": "boolean" }, "name": { "description": "The name you assign to a malware policy.", "example": "{{name}}", "type": "string" }, "paths": { "description": "The paths to match. You can use the `?` and `*` wildcards anywhere in a path.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "hostnames", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policy.yaml" } } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "allowListId": "523719_ALLOWLIST", "blockListId": "524002_BLOCKLIST", "contentTypes": [ { "encodedContentAttributes": [ { "encoding": [ "base64" ], "path": "image.imagePath" } ], "name": "application/json" } ], "description": "Malware scan configuration details", "hostnames": [ "abc.com", "def.com", "xyz.com" ], "id": 82, "logFilename": true, "name": "FMS Configuration", "paths": [ "/base-path", "/b" ] }, "schema": { "additionalProperties": false, "description": "Contains details about a malware policy.", "properties": { "allowListId": { "description": "The ID of a client list containing file hashes of specific files to allow.", "type": "string" }, "blockListId": { "description": "The ID of a client list containing file hashes of specific files to block.", "type": "string" }, "contentTypes": { "description": "The content types and encodings to match.", "items": { "additionalProperties": false, "properties": { "encodedContentAttributes": { "description": "An optional list of encoded attribute paths.", "items": { "additionalProperties": false, "properties": { "encoding": { "description": "The encodings used for the attribute path. Currently only `base64` is supported.", "items": { "enum": [ "base64" ], "type": "string" }, "type": "array" }, "path": { "description": "The JSONPath to an attribute with encoded content. The path must point to a single item, and may not include the `$`, `..`, `?` or `*` operators.", "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "description": "The name of the content type.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "hostnames": { "description": "The hostnames to match. This is where you want the malware detections to focus.", "items": { "type": "string" }, "type": "array" }, "id": { "description": "__Read-only__ Uniquely identifies each malware policy.", "readOnly": true, "type": "integer" }, "logFilename": { "default": false, "description": "Whether to log the name of the file that triggered an `alert` or `deny` action.", "type": "boolean" }, "name": { "description": "The name you assign to a malware policy.", "type": "string" }, "paths": { "description": "The paths to match. You can use the `?` and `*` wildcards anywhere in a path.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "hostnames", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policy.yaml" } } } }, "description": "Successfully created a malware policy.", "headers": { "Location": { "description": "A URL to access the newly created resource.", "example": "/malware-policies/post-malware-policies", "schema": { "type": "string" }, "x-akamai": { "file-path": "headers/location.yaml" } } } }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to malware policies in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Create a Malware Policy", "tags": [ "Shared resources: Malware policies" ] }, "get": { "description": "Return malware policies for a security configuration version. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-malware-policies" }, "operationId": "get-malware-policies", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "malwarePolicies": [ { "allowListId": "523719_ALLOWLIST", "blockListId": "524002_BLOCKLIST", "description": "Malware scan configuration details", "hostnames": [ "abc.com", "def.com", "xyz.com" ], "id": 82, "logFilename": true, "name": "FMS Configuration", "paths": [ "/base-path", "/b" ] }, { "description": "Malware scan configuration details", "hostnames": [ "abc.com", "def.com", "xyz.com" ], "id": 83, "name": "FMS Configuration2", "paths": [ "/base-path", "/test" ] } ] }, "schema": { "additionalProperties": false, "description": "Contains details about malware policies.", "properties": { "malwarePolicies": { "description": "A list of malware policies in this configuration version.", "items": { "additionalProperties": false, "description": "Contains details about a malware policy.", "properties": { "allowListId": { "description": "The ID of a client list containing file hashes of specific files to allow.", "type": "string" }, "blockListId": { "description": "The ID of a client list containing file hashes of specific files to block.", "type": "string" }, "contentTypes": { "description": "The content types and encodings to match.", "items": { "additionalProperties": false, "properties": { "encodedContentAttributes": { "description": "An optional list of encoded attribute paths.", "items": { "additionalProperties": false, "properties": { "encoding": { "description": "The encodings used for the attribute path. Currently only `base64` is supported.", "items": { "enum": [ "base64" ], "type": "string" }, "type": "array" }, "path": { "description": "The JSONPath to an attribute with encoded content. The path must point to a single item, and may not include the `$`, `..`, `?` or `*` operators.", "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "description": "The name of the content type.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "hostnames": { "description": "The hostnames to match. This is where you want the malware detections to focus.", "items": { "type": "string" }, "type": "array" }, "id": { "description": "__Read-only__ Uniquely identifies each malware policy.", "readOnly": true, "type": "integer" }, "logFilename": { "default": false, "description": "Whether to log the name of the file that triggered an `alert` or `deny` action.", "type": "boolean" }, "name": { "description": "The name you assign to a malware policy.", "type": "string" }, "paths": { "description": "The paths to match. You can use the `?` and `*` wildcards anywhere in a path.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "hostnames", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policy.yaml" } }, "type": "array" } }, "required": [ "malwarePolicies" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policies.yaml" } } } }, "description": "Successfully returned the malware policies." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the malware policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Malware Policies", "tags": [ "Shared resources: Malware policies" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-malware-policies.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/malware-policies" } }, "/configs/{configId}/versions/{versionNumber}/malware-policies/content-types": { "get": { "description": "Returns all the supported malware policy content types for a security configuration version. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-malware-policy-content-types" }, "operationId": "get-malware-policy-content-types", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "malwareContentTypes": [ "text/plain", "text/x-css", "image/gif", "image/png" ] }, "schema": { "additionalProperties": false, "description": "Contains a list of supported malware policy content types for the specified configuration version.", "properties": { "malwareContentTypes": { "description": "The list of supported content types in a malware policy.", "items": { "description": "The malware content type.", "type": "string" }, "type": "array" } }, "required": [ "malwareContentTypes" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policies-content-types.yaml" } } } }, "description": "Successfully returned the malware policies." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the malware policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Supported Malware Policy Content Types", "tags": [ "Shared resources: Malware policies" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-malware-policies-content-types.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/malware-policies/content-types" } }, "/configs/{configId}/versions/{versionNumber}/malware-policies/{malwarePolicyId}": { "get": { "description": "Return a malware policy. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-malware-policy" }, "operationId": "get-malware-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "allowListId": "523719_ALLOWLIST", "blockListId": "524002_BLOCKLIST", "contentTypes": [ { "encodedContentAttributes": [ { "encoding": [ "base64" ], "path": "image.imagePath" } ], "name": "application/json" } ], "description": "Malware scan configuration details", "hostnames": [ "abc.com", "def.com", "xyz.com" ], "id": 82, "logFilename": true, "name": "FMS Configuration", "paths": [ "/base-path", "/b" ] }, "schema": { "additionalProperties": false, "description": "Contains details about a malware policy.", "properties": { "allowListId": { "description": "The ID of a client list containing file hashes of specific files to allow.", "type": "string" }, "blockListId": { "description": "The ID of a client list containing file hashes of specific files to block.", "type": "string" }, "contentTypes": { "description": "The content types and encodings to match.", "items": { "additionalProperties": false, "properties": { "encodedContentAttributes": { "description": "An optional list of encoded attribute paths.", "items": { "additionalProperties": false, "properties": { "encoding": { "description": "The encodings used for the attribute path. Currently only `base64` is supported.", "items": { "enum": [ "base64" ], "type": "string" }, "type": "array" }, "path": { "description": "The JSONPath to an attribute with encoded content. The path must point to a single item, and may not include the `$`, `..`, `?` or `*` operators.", "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "description": "The name of the content type.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "hostnames": { "description": "The hostnames to match. This is where you want the malware detections to focus.", "items": { "type": "string" }, "type": "array" }, "id": { "description": "__Read-only__ Uniquely identifies each malware policy.", "readOnly": true, "type": "integer" }, "logFilename": { "default": false, "description": "Whether to log the name of the file that triggered an `alert` or `deny` action.", "type": "boolean" }, "name": { "description": "The name you assign to a malware policy.", "type": "string" }, "paths": { "description": "The paths to match. You can use the `?` and `*` wildcards anywhere in a path.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "hostnames", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policy.yaml" } } } }, "description": "Successfully returned the malware policy." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to this malware policy.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The security configuration version or malware policy wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Get a Malware Policy", "tags": [ "Shared resources: Malware policies" ] }, "put": { "description": "Update details for a malware policy.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-malware-policy" }, "operationId": "put-malware-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "allowListId": "523719_ALLOWLIST", "blockListId": "524002_BLOCKLIST", "contentTypes": [ { "encodedContentAttributes": [ { "encoding": [ "base64" ], "path": "image.imagePath" } ], "name": "application/json" } ], "description": "Malware scan configuration details", "hostnames": [ "abc.com", "def.com", "xyz.com" ], "logFilename": true, "name": "FMS Configuration", "paths": [ "/base-path", "/b" ] }, "schema": { "additionalProperties": false, "description": "Contains details about a malware policy.", "properties": { "allowListId": { "description": "The ID of a client list containing file hashes of specific files to allow.", "example": "{{allowListId}}", "type": "string" }, "blockListId": { "description": "The ID of a client list containing file hashes of specific files to block.", "example": "{{blockListId}}", "type": "string" }, "contentTypes": { "description": "The content types and encodings to match.", "items": { "additionalProperties": false, "properties": { "encodedContentAttributes": { "description": "An optional list of encoded attribute paths.", "items": { "additionalProperties": false, "properties": { "encoding": { "description": "The encodings used for the attribute path. Currently only `base64` is supported.", "items": { "enum": [ "base64" ], "type": "string" }, "type": "array" }, "path": { "description": "The JSONPath to an attribute with encoded content. The path must point to a single item, and may not include the `$`, `..`, `?` or `*` operators.", "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "description": "The name of the content type.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "description": { "description": "Descriptive text you provide about a policy.", "example": "{{description}}", "type": "string" }, "hostnames": { "description": "The hostnames to match. This is where you want the malware detections to focus.", "items": { "type": "string" }, "type": "array" }, "id": { "description": "__Read-only__ Uniquely identifies each malware policy.", "example": "{{id}}", "readOnly": true, "type": "integer" }, "logFilename": { "default": false, "description": "Whether to log the name of the file that triggered an `alert` or `deny` action.", "example": "{{logFilename}}", "type": "boolean" }, "name": { "description": "The name you assign to a malware policy.", "example": "{{name}}", "type": "string" }, "paths": { "description": "The paths to match. You can use the `?` and `*` wildcards anywhere in a path.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "hostnames", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policy.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "allowListId": "523719_ALLOWLIST", "blockListId": "524002_BLOCKLIST", "contentTypes": [ { "encodedContentAttributes": [ { "encoding": [ "base64" ], "path": "image.imagePath" } ], "name": "application/json" } ], "description": "Malware scan configuration details", "hostnames": [ "abc.com", "def.com", "xyz.com" ], "id": 82, "logFilename": true, "name": "FMS Configuration", "paths": [ "/base-path", "/b" ] }, "schema": { "additionalProperties": false, "description": "Contains details about a malware policy.", "properties": { "allowListId": { "description": "The ID of a client list containing file hashes of specific files to allow.", "type": "string" }, "blockListId": { "description": "The ID of a client list containing file hashes of specific files to block.", "type": "string" }, "contentTypes": { "description": "The content types and encodings to match.", "items": { "additionalProperties": false, "properties": { "encodedContentAttributes": { "description": "An optional list of encoded attribute paths.", "items": { "additionalProperties": false, "properties": { "encoding": { "description": "The encodings used for the attribute path. Currently only `base64` is supported.", "items": { "enum": [ "base64" ], "type": "string" }, "type": "array" }, "path": { "description": "The JSONPath to an attribute with encoded content. The path must point to a single item, and may not include the `$`, `..`, `?` or `*` operators.", "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "description": "The name of the content type.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "hostnames": { "description": "The hostnames to match. This is where you want the malware detections to focus.", "items": { "type": "string" }, "type": "array" }, "id": { "description": "__Read-only__ Uniquely identifies each malware policy.", "readOnly": true, "type": "integer" }, "logFilename": { "default": false, "description": "Whether to log the name of the file that triggered an `alert` or `deny` action.", "type": "boolean" }, "name": { "description": "The name you assign to a malware policy.", "type": "string" }, "paths": { "description": "The paths to match. You can use the `?` and `*` wildcards anywhere in a path.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "hostnames", "paths" ], "type": "object", "x-akamai": { "file-path": "schemas/malware-policy.yaml" } } } }, "description": "Successfully updated the malware policy." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to this malware policy.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The security configuration version or malware policy wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Modify a Malware Policy", "tags": [ "Shared resources: Malware policies" ] }, "delete": { "description": "Delete a specific malware policy that's not actively in use. To delete an active malware policy, first activate an older configuration version or create a new version without the policy in place. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/delete-malware-policy" }, "operationId": "delete-malware-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "204": { "content": {}, "description": "Successfully deleted the malware policy." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to this malware policy.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The security configuration version or malware policy wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Remove a Malware Policy", "tags": [ "Shared resources: Malware policies" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for each malware policy.", "example": "{{malwarePolicyId}}", "in": "path", "name": "malwarePolicyId", "required": true, "schema": { "example": 112231, "type": "integer" }, "x-akamai": { "file-path": "parameters/malware-policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-malware-policy.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/malware-policies/{malwarePolicyId}" } }, "/configs/{configId}/versions/{versionNumber}/match-targets": { "post": { "description": "Creates a new Match Target in the specified Configuration Version. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-match-targets" }, "operationId": "post-match-targets", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "bypassNetworkLists": [ { "id": "888518_ACDDCKERS" }, { "id": "1304427_AAXXBBLIST" } ], "defaultFile": "NO_MATCH", "fileExtensions": [ "wmls", "jpeg", "pws", "carb", "pdf", "js", "hdml", "cct", "swf", "pct" ], "filePaths": [ "/sssi/*", "/cache/aaabbc*", "/price_toy/*" ], "hostnames": [ "example.com", "www.example.net", "m.example.com" ], "isNegativeFileExtensionMatch": true, "isNegativePathMatch": false, "securityPolicy": { "policyId": "fwsf_32432" }, "type": "website" }, "schema": { "additionalProperties": false, "description": "Contains information about a match target.", "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.", "example": "{{configId}}", "type": "integer" }, "configVersion": { "description": "The version of security configuration.", "example": "{{configVersion}}", "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" ], "example": "{{defaultFile}}", "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.", "example": "{{isNegativeFileExtensionMatch}}", "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.", "example": "{{isNegativePathMatch}}", "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.", "example": "{{sequence}}", "type": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "example": "{{targetId}}", "type": "integer" }, "type": { "description": "Describes the type of match target, either `website` or `api`.", "enum": [ "website", "api" ], "example": "{{type}}", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "bypassNetworkLists": [ { "id": "888518_ACDDCKERS", "name": "Test network list 1" }, { "id": "1304427_AAXXBBLIST", "name": "Test network list 2" } ], "configId": 77653, "configVersion": 25, "defaultFile": "NO_MATCH", "effectiveSecurityControls": { "applyApiConstraints": false, "applyApplicationLayerControls": true, "applyNetworkLayerControls": false, "applyRateControls": true, "applyReputationControls": false, "applySlowPostControls": false }, "fileExtensions": [ "wmls", "jpeg", "pws", "carb", "pdf", "js", "hdml", "cct", "swf", "pct" ], "filePaths": [ "/sssi/*", "/cache/aaabbc*", "/price_toy/*" ], "hostnames": [ "example.com", "www.example.net", "m.example.com" ], "isNegativeFileExtensionMatch": true, "isNegativePathMatch": false, "securityPolicy": { "policyId": "fwsf_32432" }, "sequence": 1, "targetId": 112231, "type": "website" }, "schema": { "additionalProperties": false, "description": "Contains information about a match target.", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } } } }, "description": "Successfully created a match target." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to match targets in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Create a Match Target", "tags": [ "Match targets" ] }, "get": { "description": "Returns match targets defined in the specified security configuration version. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-match-targets" }, "operationId": "get-match-targets", "parameters": [ { "description": "Specifies the security policy to filter match targets.", "example": "{{policyId}}", "in": "query", "name": "policyId", "schema": { "example": "abc_123456", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-query.yaml" } }, { "description": "Specify whether to return the object name in the payload, true` by default.", "example": "{{includeChildObjectName}}", "in": "query", "name": "includeChildObjectName", "schema": { "default": true, "example": false, "type": "boolean" }, "x-akamai": { "file-path": "parameters/include-child-object-name-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "matchTargets": { "apiTargets": [ { "apis": [ { "id": 1111, "name": "API Endpoint 1" }, { "id": 2222, "name": "API Endpoint 2" } ], "bypassNetworkLists": [ { "id": "522825_CCCBYPASSLIST", "name": "Example network list 11" }, { "id": "1622566_XXAABYPASSL", "name": "Example network list 12" } ], "configId": 77653, "configVersion": 25, "effectiveSecurityControls": { "applyApiConstraints": true, "applyApplicationLayerControls": true, "applyNetworkLayerControls": true, "applyRateControls": true, "applyReputationControls": true, "applySlowPostControls": false }, "securityPolicy": { "policyId": "ancv_1234" }, "sequence": 3, "targetId": 1222208, "type": "api" } ], "websiteTargets": [ { "bypassNetworkLists": [ { "id": "222825_AAABYPASSLIST", "name": "Example network list 21" }, { "id": "2622566_YYAABYPASSL", "name": "Example network list 22" } ], "configId": 77653, "configVersion": 25, "defaultFile": "NO_MATCH", "effectiveSecurityControls": { "applyApiConstraints": false, "applyApplicationLayerControls": true, "applyNetworkLayerControls": true, "applyRateControls": true, "applyReputationControls": true, "applySlowPostControls": false }, "fileExtensions": [ "html" ], "filePaths": [ "/*" ], "hostnames": [], "isNegativeFileExtensionMatch": false, "isNegativePathMatch": false, "securityPolicy": { "policyId": "ancv_1234" }, "sequence": 1, "targetId": 1221059, "type": "website" }, { "bypassNetworkLists": [], "configId": 77653, "configVersion": 25, "defaultFile": "NO_MATCH", "effectiveSecurityControls": { "applyApiConstraints": false, "applyApplicationLayerControls": true, "applyNetworkLayerControls": false, "applyRateControls": true, "applyReputationControls": true, "applySlowPostControls": false }, "fileExtensions": [], "filePaths": [ "/path" ], "hostnames": [ "example.com", "www.example.net", "m.example.com" ], "isNegativeFileExtensionMatch": false, "isNegativePathMatch": false, "securityPolicy": { "policyId": "ancv_1234" }, "sequence": 2, "targetId": 1222207, "type": "website" } ] } }, "schema": { "additionalProperties": false, "description": "Describes match target settings.", "properties": { "matchTargets": { "additionalProperties": false, "description": "Match target settings.", "properties": { "apiTargets": { "description": "The `api` match targets.", "items": { "additionalProperties": false, "description": "Contains information about a match target.", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } }, "type": "array" }, "websiteTargets": { "description": "The `website` match targets.", "items": { "additionalProperties": false, "description": "Contains information about a match target.", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } }, "type": "array" } }, "required": [ "apiTargets", "websiteTargets" ], "type": "object" } }, "required": [ "matchTargets" ], "type": "object", "x-akamai": { "file-path": "schemas/match-targets.yaml" } } } }, "description": "Successfully returned match targets." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to match targets in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Match Targets", "tags": [ "Match targets" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-match-targets.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/match-targets" } }, "/configs/{configId}/versions/{versionNumber}/match-targets/sequence": { "put": { "description": "Updates the sequence of Match Targets in a configuration version. The `website` and `api` match targets' sequence requires updates from separate requests by passing the `type` attribute in the JSON request. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-match-targets-sequence" }, "operationId": "put-match-targets-sequence", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "targetSequence": [ { "sequence": 1, "targetId": 1217289 }, { "sequence": 2, "targetId": 1217339 } ], "type": "website" }, "schema": { "additionalProperties": false, "description": "Contains match target settings and a list of objects containing match targets with their assigned sequence number.", "properties": { "targetSequence": { "description": "Contains the ID and sequence of a match target.", "items": { "additionalProperties": false, "properties": { "sequence": { "description": "The position in the sequence of match targets.", "type": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "type": "integer" } }, "required": [ "sequence", "targetId" ], "type": "object" }, "type": "array" }, "type": { "description": "Describes the type of match target, either `WEBSITE` or `API`.", "enum": [ "WEBSITE", "API" ], "example": "{{type}}", "type": "string" } }, "required": [ "type", "targetSequence" ], "type": "object", "x-akamai": { "file-path": "schemas/match-targets-sequence.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "targetSequence": [ { "sequence": 1, "targetId": 1217289 }, { "sequence": 2, "targetId": 1217339 } ], "type": "website" }, "schema": { "additionalProperties": false, "description": "Contains match target settings and a list of objects containing match targets with their assigned sequence number.", "properties": { "targetSequence": { "description": "Contains the ID and sequence of a match target.", "items": { "additionalProperties": false, "properties": { "sequence": { "description": "The position in the sequence of match targets.", "type": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "type": "integer" } }, "required": [ "sequence", "targetId" ], "type": "object" }, "type": "array" }, "type": { "description": "Describes the type of match target, either `WEBSITE` or `API`.", "enum": [ "WEBSITE", "API" ], "type": "string" } }, "required": [ "type", "targetSequence" ], "type": "object", "x-akamai": { "file-path": "schemas/match-targets-sequence.yaml" } } } }, "description": "Successfully updated match target sequence." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to match targets in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Modify Match Target Order", "tags": [ "Match targets" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-match-targets-sequence.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/match-targets/sequence" } }, "/configs/{configId}/versions/{versionNumber}/match-targets/{targetId}": { "get": { "description": "Returns the specified match target. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-match-target" }, "operationId": "get-match-target", "parameters": [ { "description": "Specify whether to return the object name in the payload, true` by default.", "example": "{{includeChildObjectName}}", "in": "query", "name": "includeChildObjectName", "schema": { "default": true, "example": false, "type": "boolean" }, "x-akamai": { "file-path": "parameters/include-child-object-name-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "bypassNetworkLists": [ { "id": "888518_ACDDCKERS", "name": "Test network list 1" }, { "id": "1304427_AAXXBBLIST", "name": "Test network list 2" } ], "configId": 77653, "configVersion": 25, "defaultFile": "NO_MATCH", "effectiveSecurityControls": { "applyApiConstraints": false, "applyApplicationLayerControls": true, "applyNetworkLayerControls": false, "applyRateControls": true, "applyReputationControls": false, "applySlowPostControls": false }, "fileExtensions": [ "wmls", "jpeg", "pws", "carb", "pdf", "js", "hdml", "cct", "swf", "pct" ], "filePaths": [ "/sssi/*", "/cache/aaabbc*", "/price_toy/*" ], "hostnames": [ "example.com", "www.example.net", "m.example.com" ], "isNegativeFileExtensionMatch": true, "isNegativePathMatch": false, "securityPolicy": { "policyId": "fwsf_32432" }, "sequence": 1, "targetId": 112231, "type": "website" }, "schema": { "additionalProperties": false, "description": "Contains information about a match target.", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } } } }, "description": "Successfully returned match target." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to match targets in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or match target wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Get a Match Target", "tags": [ "Match targets" ] }, "put": { "description": "Updates details about the specified match target. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-match-target" }, "operationId": "put-match-target", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "bypassNetworkLists": [ { "id": "888518_ACDDCKERS" }, { "id": "1304427_AAXXBBLIST" } ], "defaultFile": "NO_MATCH", "fileExtensions": [ "wmls", "jpeg", "pws", "carb", "pdf", "js", "hdml", "cct", "swf", "pct" ], "filePaths": [ "/sssi/*", "/cache/aaabbc*", "/price_toy/*" ], "hostnames": [ "example.com", "www.example.net", "m.example.com" ], "isNegativeFileExtensionMatch": true, "isNegativePathMatch": false, "securityPolicy": { "policyId": "fwsf_32432" }, "targetId": 112231, "type": "website" }, "schema": { "additionalProperties": false, "description": "Contains information about a match target.", "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.", "example": "{{configId}}", "type": "integer" }, "configVersion": { "description": "The version of security configuration.", "example": "{{configVersion}}", "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" ], "example": "{{defaultFile}}", "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.", "example": "{{isNegativeFileExtensionMatch}}", "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.", "example": "{{isNegativePathMatch}}", "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.", "example": "{{sequence}}", "type": "integer" }, "targetId": { "description": "Uniquely identifies the match target.", "example": "{{targetId}}", "type": "integer" }, "type": { "description": "Describes the type of match target, either `website` or `api`.", "enum": [ "website", "api" ], "example": "{{type}}", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "bypassNetworkLists": [ { "id": "888518_ACDDCKERS", "name": "Test network list 1" }, { "id": "1304427_AAXXBBLIST", "name": "Test network list 2" } ], "configId": 77653, "configVersion": 25, "defaultFile": "NO_MATCH", "effectiveSecurityControls": { "applyApiConstraints": false, "applyApplicationLayerControls": true, "applyNetworkLayerControls": false, "applyRateControls": true, "applyReputationControls": false, "applySlowPostControls": false }, "fileExtensions": [ "wmls", "jpeg", "pws", "carb", "pdf", "js", "hdml", "cct", "swf", "pct" ], "filePaths": [ "/sssi/*", "/cache/aaabbc*", "/price_toy/*" ], "hostnames": [ "example.com", "www.example.net", "m.example.com" ], "isNegativeFileExtensionMatch": true, "isNegativePathMatch": false, "securityPolicy": { "policyId": "fwsf_32432" }, "sequence": 1, "targetId": 112231, "type": "website" }, "schema": { "additionalProperties": false, "description": "Contains information about a match target.", "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" ], "type": "object", "x-akamai": { "file-path": "schemas/match-target.yaml" } } } }, "description": "Successfully updated match target." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to match targets in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or match target wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Modify a Match Target", "tags": [ "Match targets" ] }, "delete": { "description": "Deletes the specified match target. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/delete-match-target" }, "operationId": "delete-match-target", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "204": { "content": {}, "description": "Successfully deleted the match target." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to match targets in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or match target wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Remove a Match Target", "tags": [ "Match targets" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for each match target.", "example": "{{targetId}}", "in": "path", "name": "targetId", "required": true, "schema": { "example": 112231, "type": "integer" }, "x-akamai": { "file-path": "parameters/target-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-match-target.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/match-targets/{targetId}" } }, "/configs/{configId}/versions/{versionNumber}/protect-eval-hostnames": { "put": { "description": "Move hostnames you're evaluating to active protection. When you move a hostname from the evaluation hostnames list, it's added to your security policy as a protected hostname. You'll see that hostname in the response object the next time you run [List selected hostnames](https://techdocs.akamai.com/application-security/reference/get-selected-hostnames). _Products:_ Web Application Protector, App & API Protector.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-protect-eval-hostnames" }, "operationId": "put-protect-eval-hostnames", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "hostnames": [ "*.example.net", "example.com", "m.example.com" ], "mode": "append" }, "schema": { "additionalProperties": false, "description": "Contains a list of evaluation hostnames for the specified configuration version.", "properties": { "hostnames": { "description": "Contains a list of hostnames.", "items": { "description": "The hostnames on which to match the request.", "type": "string" }, "type": "array" }, "mode": { "description": "The type of update you want to make to the evaluation hostname list. You can `append` additional hostnames, `remove` hostnames from the list, or `replace` the existing list with the hostnames you pass in your request.", "enum": [ "append", "remove", "replace" ], "example": "{{mode}}", "type": "string" } }, "required": [ "hostnames" ], "type": "object", "x-akamai": { "file-path": "schemas/eval-hostnames.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "hostnames": [ "*.example.net", "example.com", "m.example.com" ], "mode": "append" }, "schema": { "additionalProperties": false, "description": "Contains a list of evaluation hostnames for the specified configuration version.", "properties": { "hostnames": { "description": "Contains a list of hostnames.", "items": { "description": "The hostnames on which to match the request.", "type": "string" }, "type": "array" }, "mode": { "description": "The type of update you want to make to the evaluation hostname list. You can `append` additional hostnames, `remove` hostnames from the list, or `replace` the existing list with the hostnames you pass in your request.", "enum": [ "append", "remove", "replace" ], "type": "string" } }, "required": [ "hostnames" ], "type": "object", "x-akamai": { "file-path": "schemas/eval-hostnames.yaml" } } } }, "description": "Successful response." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } } }, "summary": "Akamai API Security Protect Evaluation Hostnames", "tags": [ "Configuration: Evaluation hostnames" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-protect-eval-hostnames.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/protect-eval-hostnames" } }, "/configs/{configId}/versions/{versionNumber}/rate-policies": { "post": { "description": "Create a new rate policy for a specific configuration version. Now you can match on defined or undefined resources. If you're setting a match for either resource type, both `definedResources` and `undefinedResources` must be present in the request object or the request is considered incomplete. When `true`, match on _any_ defined resources without passing a `resourceId`. When `false`, you'll need to pass a `resourceId`. If you pass `definedResources` and `undefinedResources` with empty values, they default to `false`. You can omit both resources and use this operation without these new match criteria. Contact your account team if you'd like to match on `definedResources` or `undefinedResources`. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-rate-policies" }, "operationId": "post-rate-policies", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "additionalMatchOptions": [ { "positiveMatch": true, "type": "IpAddressCondition", "values": [ "192.0.2.210" ] }, { "positiveMatch": true, "type": "RequestMethodCondition", "values": [ "GET" ] } ], "averageThreshold": 5, "burstThreshold": 10, "burstWindow": 3, "clientIdentifier": "ip", "condition": { "atomicConditions": [ { "className": "TlsFingerprintCondition", "positiveMatch": true, "value": [ "a797dc449ef113be", "ba51ec8d71259a5b3c92d8787370e2c3" ] }, { "className": "ClientReputationCondition", "name": [ "DOSATCK", "WEBATCK" ], "positiveMatch": true, "sharedIpHandling": "BOTH", "value": 3 }, { "className": "RequestHeaderCondition", "name": [ "Accept", "Content-Type" ], "nameWildcard": true, "positiveMatch": true, "value": [ "json", "xml" ], "valueCase": false, "valueWildcard": true } ], "positiveMatch": true }, "counterType": "per_edge", "description": "AFW Test Extensions", "evaluation": { "averageThreshold": 5, "burstThreshold": 8 }, "fileExtensions": { "positiveMatch": false, "values": [ "3g2", "3gp", "aif", "aiff", "au", "avi", "bin", "bmp", "cab" ] }, "hosts": { "positiveMatch": false, "values": [ "www.myexamplehostname.org" ] }, "matchType": "path", "name": "Test_Paths 2", "path": { "positiveMatch": true, "values": [ "/login/", "/path/" ] }, "pathMatchType": "Custom", "pathUriPositiveMatch": true, "queryParameters": [ { "name": "productId", "positiveMatch": true, "valueInRange": false, "values": [ "BUB_12", "SUSH_11" ] } ], "requestType": "ClientRequest", "sameActionOnIpv6": false, "type": "WAF", "useXForwardForHeaders": true }, "schema": { "additionalProperties": false, "description": "Contains details about a rate policy.", "properties": { "additionalMatchOptions": { "description": "The list of additional match conditions.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The match condition type. The `RequestHeaderCondition` listed here is deprecated. Specify `RequestHeaderCondition` as an `atomicCondition` to match on request headers. See [Export match condition type values](https://techdocs.akamai.com/application-security/reference/cndval).", "enum": [ "IpAddressCondition", "NetworkListCondition", "RequestHeaderCondition", "RequestMethodCondition", "ResponseHeaderCondition", "ResponseStatusCondition", "UserAgentCondition", "AsNumberCondition" ], "type": "string" }, "values": { "description": "The list of values that trigger the condition on match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type", "positiveMatch", "values" ], "type": "object" }, "type": "array" }, "apiSelectors": { "description": "The API endpoints to match in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "averageThreshold": { "description": "The allowed hits per second during any two-minute interval.", "example": "{{averageThreshold}}", "minimum": 1, "type": "integer" }, "bodyParameters": { "description": "The list of body parameters to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to a body parameter.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The body parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval.", "example": "{{burstThreshold}}", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "The time span for the `burstThreshold` interval. For existing rate policies, analyze your traffic in Alert mode before you reduce the measure window from 5 seconds. [Learn more about thresholds here](https://techdocs.akamai.com/kona-site-defender/docs/rate-thresholds).", "example": "{{burstWindow}}", "maximum": 5, "minimum": 1, "type": "integer" }, "clientIdentifier": { "description": "The client identifier you want to use to identify and track request senders. The value is required only for WAF type, and `api-key` is supported only for API match criteria. Using `ip-useragent` is typically more specific than using `ip` alone when trying to identify a client. Tracking by `cookie:value` applies to requests per individual session, even if the IP address changes.", "enum": [ "api-key", "ip-useragent", "ip", "cookie:value" ], "example": "{{clientIdentifier}}", "type": "string" }, "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the rate policy.", "properties": { "atomicConditions": { "description": "The conditions that trigger the rate policy. Specify one or more request headers, TLS fingerprints, or client reputation categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } } ] }, "minItems": 1, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "counterType": { "default": "per_edge", "description": "The rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "example": "{{counterType}}", "type": "string" }, "createDate": { "description": "__Read-only__ The time stamp when you created the rate policy.", "example": "{{createDate}}", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Descriptive text you provide about a policy.", "example": "{{description}}", "type": "string" }, "evaluation": { "additionalProperties": false, "description": "Contains details about rate policy evaluation.", "properties": { "averageThreshold": { "description": "The allowed hits per second during any two-minute interval during evaluation.", "minimum": 1, "type": "integer" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval during evaluation.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "__Read-only__ The time span for the `burstThreshold` interval used during evaluation. This value is always set to the `burstWindow` specified by the main rate policy.", "readOnly": true, "type": "integer" }, "counterType": { "default": "region_aggregated", "description": "The evaluation rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "endDate": { "description": "__Read-only__ The time stamp when evaluation ends.", "format": "date-time", "readOnly": true, "type": "string" }, "evaluationId": { "description": "__Read-only__ Uniquely identifies an evaluation.", "readOnly": true, "type": "integer" }, "evaluationStatus": { "description": "__Read-only__ Reflects evaluation status, either `in_progress`, `pending_activation`, or `completed`.", "enum": [ "in_progress", "pending_activation", "completed" ], "readOnly": true, "type": "string" }, "startDate": { "description": "__Read-only__ The time stamp when evaluation starts.", "format": "date-time", "readOnly": true, "type": "string" }, "version": { "description": "__Read-only__ Evaluation version.", "readOnly": true, "type": "integer" } }, "required": [ "averageThreshold", "burstThreshold" ], "type": "object" }, "fileExtensions": { "additionalProperties": false, "description": "Contains the file extension match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The file extensions to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "hostnames": { "description": "__Deprecated__. The hostnames to match. This array member is deprecated. Use the `hosts` object instead.", "items": { "type": "string" }, "type": "array" }, "hosts": { "additionalProperties": false, "description": "The hostnames to match, and whether to trigger on a match or absence of match.", "properties": { "positiveMatch": { "default": true, "description": "When `true`, triggers on hostnames that match any hostnames in this array. When `false`, triggers on hostnames that don't match any in this array.", "type": "boolean" }, "values": { "description": "The hostnames you choose to match, or specifically not match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "id": { "description": "__Read-only__ Uniquely identifies each rate policy.", "example": "{{id}}", "readOnly": true, "type": "integer" }, "matchType": { "description": "The match type in a rate policy. Either `path` to match website paths or `api` to match API paths.", "enum": [ "path", "api" ], "example": "{{matchType}}", "type": "string" }, "name": { "description": "The name you assign to a rate policy.", "example": "{{name}}", "type": "string" }, "path": { "additionalProperties": false, "description": "Contains details about the path match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "pathMatchType": { "description": "The type of paths to match in incoming requests. Either `AllRequests` to match an empty path or any path that ends in a trailing slash (`/`), `TopLevel` to match top-level hostnames only, or `Custom` to match a specific path or path component. This applies only when the corresponding `matchType` member is `path`.", "enum": [ "AllRequests", "TopLevel", "Custom" ], "example": "{{pathMatchType}}", "type": "string" }, "pathUriPositiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "example": "{{pathUriPositiveMatch}}", "type": "boolean" }, "queryParameters": { "description": "The list of query parameter objects to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The query parameter name.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The list of query parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "requestType": { "description": "The type of requests to count towards the rate policy's thresholds. Either `ClientRequest` to count client requests to edge servers, `ClientResponse` to count edge responses to the client, `ForwardResponse` to count origin responses to the client, or `ForwardRequest` to count edge requests to your origin.", "enum": [ "ClientRequest", "ClientResponse", "ForwardResponse", "ForwardRequest" ], "example": "{{requestType}}", "type": "string" }, "sameActionOnIpv6": { "description": "Whether to apply the same action to the IPv6 traffic as to the IPv4 traffic.", "example": "{{sameActionOnIpv6}}", "type": "boolean" }, "type": { "description": "The rate policy type. Either `WAF` for Web Application Firewall, or `BOTMAN` for Bot Manager.", "enum": [ "WAF", "BOTMAN" ], "example": "{{type}}", "type": "string" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the rate policy.", "example": "{{updateDate}}", "format": "date-time", "readOnly": true, "type": "string" }, "useXForwardForHeaders": { "description": "Whether to check the contents of the `X-Forwarded-For` header in incoming requests.", "example": "{{useXForwardForHeaders}}", "type": "boolean" }, "used": { "description": "__Read-only__ Whether you're currently using the rate policy.", "example": "{{used}}", "readOnly": true, "type": "boolean" } }, "required": [ "matchType", "type", "name", "averageThreshold", "burstThreshold", "clientIdentifier", "requestType", "sameActionOnIpv6", "pathMatchType" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy.yaml" } } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "additionalMatchOptions": [ { "positiveMatch": true, "type": "IpAddressCondition", "values": [ "192.0.2.13" ] }, { "positiveMatch": true, "type": "RequestMethodCondition", "values": [ "GET" ] } ], "averageThreshold": 5, "burstThreshold": 10, "burstWindow": 3, "clientIdentifier": "ip", "condition": { "atomicConditions": [ { "className": "TlsFingerprintCondition", "positiveMatch": true, "value": [ "a797dc449ef113be", "ba51ec8d71259a5b3c92d8787370e2c3" ] }, { "className": "ClientReputationCondition", "name": [ "DOSATCK", "WEBATCK" ], "positiveMatch": true, "sharedIpHandling": "BOTH", "value": 3 }, { "className": "RequestHeaderCondition", "name": [ "Accept", "Content-Type" ], "nameWildcard": true, "positiveMatch": true, "value": [ "json", "xml" ], "valueCase": false, "valueWildcard": true } ], "positiveMatch": true }, "counterType": "per_edge", "createDate": "2016-07-22 18:57:08.0", "description": "AFW Test Extensions", "evaluation": { "averageThreshold": 5, "burstThreshold": 8, "burstWindow": 5, "counterType": "region_aggregated", "endDate": "2024-04-11T16:04:43Z", "evaluationId": 97, "evaluationStatus": "in_progress", "startDate": "2024-03-28T16:04:43Z", "version": 1 }, "fileExtensions": { "positiveMatch": false, "values": [ "3g2", "3gp", "aif", "aiff", "au", "avi", "bin", "bmp", "cab" ] }, "hosts": { "positiveMatch": false, "values": [ "www.myexamplehostname.org" ] }, "id": 484616, "matchType": "path", "name": "Test_Paths 2", "path": { "positiveMatch": true, "values": [ "/login/", "/path/" ] }, "pathMatchType": "Custom", "pathUriPositiveMatch": true, "queryParameters": [ { "name": "productId", "positiveMatch": true, "valueInRange": false, "values": [ "BUB_12", "SUSH_11" ] } ], "requestType": "ClientRequest", "sameActionOnIpv6": false, "type": "WAF", "updateDate": "2017-02-22 00:05:41.0", "useXForwardForHeaders": true, "used": false }, "schema": { "additionalProperties": false, "description": "Contains details about a rate policy.", "properties": { "additionalMatchOptions": { "description": "The list of additional match conditions.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The match condition type. The `RequestHeaderCondition` listed here is deprecated. Specify `RequestHeaderCondition` as an `atomicCondition` to match on request headers. See [Export match condition type values](https://techdocs.akamai.com/application-security/reference/cndval).", "enum": [ "IpAddressCondition", "NetworkListCondition", "RequestHeaderCondition", "RequestMethodCondition", "ResponseHeaderCondition", "ResponseStatusCondition", "UserAgentCondition", "AsNumberCondition" ], "type": "string" }, "values": { "description": "The list of values that trigger the condition on match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type", "positiveMatch", "values" ], "type": "object" }, "type": "array" }, "apiSelectors": { "description": "The API endpoints to match in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "averageThreshold": { "description": "The allowed hits per second during any two-minute interval.", "minimum": 1, "type": "integer" }, "bodyParameters": { "description": "The list of body parameters to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to a body parameter.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The body parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "The time span for the `burstThreshold` interval. For existing rate policies, analyze your traffic in Alert mode before you reduce the measure window from 5 seconds. [Learn more about thresholds here](https://techdocs.akamai.com/kona-site-defender/docs/rate-thresholds).", "maximum": 5, "minimum": 1, "type": "integer" }, "clientIdentifier": { "description": "The client identifier you want to use to identify and track request senders. The value is required only for WAF type, and `api-key` is supported only for API match criteria. Using `ip-useragent` is typically more specific than using `ip` alone when trying to identify a client. Tracking by `cookie:value` applies to requests per individual session, even if the IP address changes.", "enum": [ "api-key", "ip-useragent", "ip", "cookie:value" ], "type": "string" }, "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the rate policy.", "properties": { "atomicConditions": { "description": "The conditions that trigger the rate policy. Specify one or more request headers, TLS fingerprints, or client reputation categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } } ] }, "minItems": 1, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "counterType": { "default": "per_edge", "description": "The rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "createDate": { "description": "__Read-only__ The time stamp when you created the rate policy.", "example": "2016-07-22 18:57:08.0", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "evaluation": { "additionalProperties": false, "description": "Contains details about rate policy evaluation.", "properties": { "averageThreshold": { "description": "The allowed hits per second during any two-minute interval during evaluation.", "minimum": 1, "type": "integer" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval during evaluation.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "__Read-only__ The time span for the `burstThreshold` interval used during evaluation. This value is always set to the `burstWindow` specified by the main rate policy.", "readOnly": true, "type": "integer" }, "counterType": { "default": "region_aggregated", "description": "The evaluation rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "endDate": { "description": "__Read-only__ The time stamp when evaluation ends.", "format": "date-time", "readOnly": true, "type": "string" }, "evaluationId": { "description": "__Read-only__ Uniquely identifies an evaluation.", "readOnly": true, "type": "integer" }, "evaluationStatus": { "description": "__Read-only__ Reflects evaluation status, either `in_progress`, `pending_activation`, or `completed`.", "enum": [ "in_progress", "pending_activation", "completed" ], "readOnly": true, "type": "string" }, "startDate": { "description": "__Read-only__ The time stamp when evaluation starts.", "format": "date-time", "readOnly": true, "type": "string" }, "version": { "description": "__Read-only__ Evaluation version.", "readOnly": true, "type": "integer" } }, "required": [ "averageThreshold", "burstThreshold" ], "type": "object" }, "fileExtensions": { "additionalProperties": false, "description": "Contains the file extension match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The file extensions to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "hostnames": { "description": "__Deprecated__. The hostnames to match. This array member is deprecated. Use the `hosts` object instead.", "items": { "type": "string" }, "type": "array" }, "hosts": { "additionalProperties": false, "description": "The hostnames to match, and whether to trigger on a match or absence of match.", "properties": { "positiveMatch": { "default": true, "description": "When `true`, triggers on hostnames that match any hostnames in this array. When `false`, triggers on hostnames that don't match any in this array.", "type": "boolean" }, "values": { "description": "The hostnames you choose to match, or specifically not match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "id": { "description": "__Read-only__ Uniquely identifies each rate policy.", "readOnly": true, "type": "integer" }, "matchType": { "description": "The match type in a rate policy. Either `path` to match website paths or `api` to match API paths.", "enum": [ "path", "api" ], "type": "string" }, "name": { "description": "The name you assign to a rate policy.", "type": "string" }, "path": { "additionalProperties": false, "description": "Contains details about the path match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "pathMatchType": { "description": "The type of paths to match in incoming requests. Either `AllRequests` to match an empty path or any path that ends in a trailing slash (`/`), `TopLevel` to match top-level hostnames only, or `Custom` to match a specific path or path component. This applies only when the corresponding `matchType` member is `path`.", "enum": [ "AllRequests", "TopLevel", "Custom" ], "type": "string" }, "pathUriPositiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "queryParameters": { "description": "The list of query parameter objects to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The query parameter name.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The list of query parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "requestType": { "description": "The type of requests to count towards the rate policy's thresholds. Either `ClientRequest` to count client requests to edge servers, `ClientResponse` to count edge responses to the client, `ForwardResponse` to count origin responses to the client, or `ForwardRequest` to count edge requests to your origin.", "enum": [ "ClientRequest", "ClientResponse", "ForwardResponse", "ForwardRequest" ], "type": "string" }, "sameActionOnIpv6": { "description": "Whether to apply the same action to the IPv6 traffic as to the IPv4 traffic.", "type": "boolean" }, "type": { "description": "The rate policy type. Either `WAF` for Web Application Firewall, or `BOTMAN` for Bot Manager.", "enum": [ "WAF", "BOTMAN" ], "type": "string" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the rate policy.", "example": "2017-02-22 00:05:41.0", "format": "date-time", "readOnly": true, "type": "string" }, "useXForwardForHeaders": { "description": "Whether to check the contents of the `X-Forwarded-For` header in incoming requests.", "type": "boolean" }, "used": { "description": "__Read-only__ Whether you're currently using the rate policy.", "readOnly": true, "type": "boolean" } }, "required": [ "matchType", "type", "name", "averageThreshold", "burstThreshold", "clientIdentifier", "requestType", "sameActionOnIpv6", "pathMatchType" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy.yaml" } } } }, "description": "Successfully created a rate policy." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to rate policies in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Create a Rate Policy", "tags": [ "Shared resources: Rate policies" ] }, "get": { "description": "Returns rate policies for a specific security configuration version. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-rate-policies" }, "operationId": "get-rate-policies", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "ratePolicies": [ { "additionalMatchOptions": [ { "positiveMatch": true, "type": "IpAddressCondition", "values": [ "192.0.2.215" ] }, { "positiveMatch": true, "type": "RequestMethodCondition", "values": [ "GET" ] } ], "averageThreshold": 5, "burstThreshold": 10, "burstWindow": 3, "clientIdentifier": "ip", "condition": { "atomicConditions": [ { "className": "TlsFingerprintCondition", "positiveMatch": true, "value": [ "a797dc449ef113be", "ba51ec8d71259a5b3c92d8787370e2c3" ] }, { "className": "ClientReputationCondition", "name": [ "DOSATCK", "WEBATCK" ], "positiveMatch": true, "sharedIpHandling": "BOTH", "value": 3 }, { "className": "RequestHeaderCondition", "name": [ "Accept", "Content-Type" ], "nameWildcard": true, "positiveMatch": true, "value": [ "json", "xml" ], "valueCase": false, "valueWildcard": true } ], "positiveMatch": true }, "counterType": "per_edge", "createDate": "2016-07-22 18:57:08.0", "description": "AFW Test Extensions", "evaluation": { "averageThreshold": 5, "burstThreshold": 8, "burstWindow": 5, "counterType": "region_aggregated", "endDate": "2024-04-11T16:04:43Z", "evaluationId": 97, "evaluationStatus": "completed", "startDate": "2024-03-28T16:04:43Z", "version": 1 }, "fileExtensions": { "positiveMatch": false, "values": [ "3g2", "3gp", "aif", "aiff", "au", "avi", "bin", "bmp", "cab" ] }, "hosts": { "positiveMatch": false, "values": [ "www.myexamplehostname.org" ] }, "id": 484616, "matchType": "path", "name": "Test_Paths 2", "path": { "positiveMatch": true, "values": [ "/login/", "/path/" ] }, "pathMatchType": "Custom", "pathUriPositiveMatch": true, "queryParameters": [ { "name": "productId", "positiveMatch": true, "valueInRange": false, "values": [ "BUB_12", "SUSH_11" ] } ], "requestType": "ClientRequest", "sameActionOnIpv6": false, "type": "WAF", "updateDate": "2017-02-22 00:05:41.0", "useXForwardForHeaders": true, "used": false }, { "additionalMatchOptions": [ { "positiveMatch": false, "type": "NetworkListCondition", "values": [ "18198_DSWINTERNALTESTIPADDRES", "7054_FEOSERVERS" ] }, { "positiveMatch": false, "type": "UserAgentCondition", "values": [ "soasta", "MovableInk" ] } ], "apiSelectors": [ { "apiDefinitionId": 602, "definedResources": false, "resourceIds": [ 748 ], "undefinedResources": false } ], "averageThreshold": 5, "bodyParameters": [ { "name": "Country", "positiveMatch": true, "valueInRange": false, "values": [ "USA", "Canada" ] } ], "burstThreshold": 10, "clientIdentifier": "ip", "counterType": "per_edge", "createDate": "2016-07-22 18:57:08.0", "description": "AFW Test Extensions", "fileExtensions": { "positiveMatch": false, "values": [ "avi", "bmp", "jpg" ] }, "hosts": { "positiveMatch": false, "values": [ "www.myexamplehostname.org" ] }, "id": 484617, "matchType": "api", "name": "Test_Paths 2", "queryParameters": [ { "name": "productId", "positiveMatch": true, "valueInRange": false, "values": [ "BUB_12", "SUSH_11" ] } ], "requestType": "ClientRequest", "sameActionOnIpv": false, "type": "WAF", "updateDate": "2017-02-22 00:05:41.0", "useXForwardForHeaders": true, "used": false } ] }, "schema": { "additionalProperties": false, "description": "Contains details about rate policies.", "properties": { "ratePolicies": { "description": "A list of rate policies in this configuration version.", "items": { "additionalProperties": false, "description": "Contains details about a rate policy.", "properties": { "additionalMatchOptions": { "description": "The list of additional match conditions.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The match condition type. The `RequestHeaderCondition` listed here is deprecated. Specify `RequestHeaderCondition` as an `atomicCondition` to match on request headers. See [Export match condition type values](https://techdocs.akamai.com/application-security/reference/cndval).", "enum": [ "IpAddressCondition", "NetworkListCondition", "RequestHeaderCondition", "RequestMethodCondition", "ResponseHeaderCondition", "ResponseStatusCondition", "UserAgentCondition", "AsNumberCondition" ], "type": "string" }, "values": { "description": "The list of values that trigger the condition on match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type", "positiveMatch", "values" ], "type": "object" }, "type": "array" }, "apiSelectors": { "description": "The API endpoints to match in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "averageThreshold": { "description": "The allowed hits per second during any two-minute interval.", "minimum": 1, "type": "integer" }, "bodyParameters": { "description": "The list of body parameters to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to a body parameter.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The body parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "The time span for the `burstThreshold` interval. For existing rate policies, analyze your traffic in Alert mode before you reduce the measure window from 5 seconds. [Learn more about thresholds here](https://techdocs.akamai.com/kona-site-defender/docs/rate-thresholds).", "maximum": 5, "minimum": 1, "type": "integer" }, "clientIdentifier": { "description": "The client identifier you want to use to identify and track request senders. The value is required only for WAF type, and `api-key` is supported only for API match criteria. Using `ip-useragent` is typically more specific than using `ip` alone when trying to identify a client. Tracking by `cookie:value` applies to requests per individual session, even if the IP address changes.", "enum": [ "api-key", "ip-useragent", "ip", "cookie:value" ], "type": "string" }, "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the rate policy.", "properties": { "atomicConditions": { "description": "The conditions that trigger the rate policy. Specify one or more request headers, TLS fingerprints, or client reputation categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } } ] }, "minItems": 1, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "counterType": { "default": "per_edge", "description": "The rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "createDate": { "description": "__Read-only__ The time stamp when you created the rate policy.", "example": "2016-07-22 18:57:08.0", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "evaluation": { "additionalProperties": false, "description": "Contains details about rate policy evaluation.", "properties": { "averageThreshold": { "description": "The allowed hits per second during any two-minute interval during evaluation.", "minimum": 1, "type": "integer" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval during evaluation.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "__Read-only__ The time span for the `burstThreshold` interval used during evaluation. This value is always set to the `burstWindow` specified by the main rate policy.", "readOnly": true, "type": "integer" }, "counterType": { "default": "region_aggregated", "description": "The evaluation rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "endDate": { "description": "__Read-only__ The time stamp when evaluation ends.", "format": "date-time", "readOnly": true, "type": "string" }, "evaluationId": { "description": "__Read-only__ Uniquely identifies an evaluation.", "readOnly": true, "type": "integer" }, "evaluationStatus": { "description": "__Read-only__ Reflects evaluation status, either `in_progress`, `pending_activation`, or `completed`.", "enum": [ "in_progress", "pending_activation", "completed" ], "readOnly": true, "type": "string" }, "startDate": { "description": "__Read-only__ The time stamp when evaluation starts.", "format": "date-time", "readOnly": true, "type": "string" }, "version": { "description": "__Read-only__ Evaluation version.", "readOnly": true, "type": "integer" } }, "required": [ "averageThreshold", "burstThreshold" ], "type": "object" }, "fileExtensions": { "additionalProperties": false, "description": "Contains the file extension match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The file extensions to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "hostnames": { "description": "__Deprecated__. The hostnames to match. This array member is deprecated. Use the `hosts` object instead.", "items": { "type": "string" }, "type": "array" }, "hosts": { "additionalProperties": false, "description": "The hostnames to match, and whether to trigger on a match or absence of match.", "properties": { "positiveMatch": { "default": true, "description": "When `true`, triggers on hostnames that match any hostnames in this array. When `false`, triggers on hostnames that don't match any in this array.", "type": "boolean" }, "values": { "description": "The hostnames you choose to match, or specifically not match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "id": { "description": "__Read-only__ Uniquely identifies each rate policy.", "readOnly": true, "type": "integer" }, "matchType": { "description": "The match type in a rate policy. Either `path` to match website paths or `api` to match API paths.", "enum": [ "path", "api" ], "type": "string" }, "name": { "description": "The name you assign to a rate policy.", "type": "string" }, "path": { "additionalProperties": false, "description": "Contains details about the path match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "pathMatchType": { "description": "The type of paths to match in incoming requests. Either `AllRequests` to match an empty path or any path that ends in a trailing slash (`/`), `TopLevel` to match top-level hostnames only, or `Custom` to match a specific path or path component. This applies only when the corresponding `matchType` member is `path`.", "enum": [ "AllRequests", "TopLevel", "Custom" ], "type": "string" }, "pathUriPositiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "queryParameters": { "description": "The list of query parameter objects to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The query parameter name.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The list of query parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "requestType": { "description": "The type of requests to count towards the rate policy's thresholds. Either `ClientRequest` to count client requests to edge servers, `ClientResponse` to count edge responses to the client, `ForwardResponse` to count origin responses to the client, or `ForwardRequest` to count edge requests to your origin.", "enum": [ "ClientRequest", "ClientResponse", "ForwardResponse", "ForwardRequest" ], "type": "string" }, "sameActionOnIpv6": { "description": "Whether to apply the same action to the IPv6 traffic as to the IPv4 traffic.", "type": "boolean" }, "type": { "description": "The rate policy type. Either `WAF` for Web Application Firewall, or `BOTMAN` for Bot Manager.", "enum": [ "WAF", "BOTMAN" ], "type": "string" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the rate policy.", "example": "2017-02-22 00:05:41.0", "format": "date-time", "readOnly": true, "type": "string" }, "useXForwardForHeaders": { "description": "Whether to check the contents of the `X-Forwarded-For` header in incoming requests.", "type": "boolean" }, "used": { "description": "__Read-only__ Whether you're currently using the rate policy.", "readOnly": true, "type": "boolean" } }, "required": [ "matchType", "type", "name", "averageThreshold", "burstThreshold", "clientIdentifier", "requestType", "sameActionOnIpv6", "pathMatchType" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy.yaml" } }, "type": "array" } }, "required": [ "ratePolicies" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policies.yaml" } } } }, "description": "Successfully returned rate policies." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to rate policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Rate Policies", "tags": [ "Shared resources: Rate policies" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-rate-policies.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/rate-policies" } }, "/configs/{configId}/versions/{versionNumber}/rate-policies/{ratePolicyId}": { "get": { "description": "Returns the specified rate policy. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-rate-policy" }, "operationId": "get-rate-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "additionalMatchOptions": [ { "positiveMatch": true, "type": "IpAddressCondition", "values": [ "192.0.2.13" ] }, { "positiveMatch": true, "type": "RequestMethodCondition", "values": [ "GET" ] } ], "averageThreshold": 5, "burstThreshold": 10, "burstWindow": 3, "clientIdentifier": "ip", "condition": { "atomicConditions": [ { "className": "TlsFingerprintCondition", "positiveMatch": true, "value": [ "a797dc449ef113be", "ba51ec8d71259a5b3c92d8787370e2c3" ] }, { "className": "ClientReputationCondition", "name": [ "DOSATCK", "WEBATCK" ], "positiveMatch": true, "sharedIpHandling": "BOTH", "value": 3 }, { "className": "RequestHeaderCondition", "name": [ "Accept", "Content-Type" ], "nameWildcard": true, "positiveMatch": true, "value": [ "json", "xml" ], "valueCase": false, "valueWildcard": true } ], "positiveMatch": true }, "counterType": "per_edge", "createDate": "2016-07-22 18:57:08.0", "description": "AFW Test Extensions", "evaluation": { "averageThreshold": 5, "burstThreshold": 8, "burstWindow": 5, "counterType": "region_aggregated", "endDate": "2024-04-11T16:04:43Z", "evaluationId": 97, "evaluationStatus": "in_progress", "startDate": "2024-03-28T16:04:43Z", "version": 1 }, "fileExtensions": { "positiveMatch": false, "values": [ "3g2", "3gp", "aif", "aiff", "au", "avi", "bin", "bmp", "cab" ] }, "hosts": { "positiveMatch": false, "values": [ "www.myexamplehostname.org" ] }, "id": 484616, "matchType": "path", "name": "Test_Paths 2", "path": { "positiveMatch": true, "values": [ "/login/", "/path/" ] }, "pathMatchType": "Custom", "pathUriPositiveMatch": true, "queryParameters": [ { "name": "productId", "positiveMatch": true, "valueInRange": false, "values": [ "BUB_12", "SUSH_11" ] } ], "requestType": "ClientRequest", "sameActionOnIpv6": false, "type": "WAF", "updateDate": "2017-02-22 00:05:41.0", "useXForwardForHeaders": true, "used": false }, "schema": { "additionalProperties": false, "description": "Contains details about a rate policy.", "properties": { "additionalMatchOptions": { "description": "The list of additional match conditions.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The match condition type. The `RequestHeaderCondition` listed here is deprecated. Specify `RequestHeaderCondition` as an `atomicCondition` to match on request headers. See [Export match condition type values](https://techdocs.akamai.com/application-security/reference/cndval).", "enum": [ "IpAddressCondition", "NetworkListCondition", "RequestHeaderCondition", "RequestMethodCondition", "ResponseHeaderCondition", "ResponseStatusCondition", "UserAgentCondition", "AsNumberCondition" ], "type": "string" }, "values": { "description": "The list of values that trigger the condition on match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type", "positiveMatch", "values" ], "type": "object" }, "type": "array" }, "apiSelectors": { "description": "The API endpoints to match in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "averageThreshold": { "description": "The allowed hits per second during any two-minute interval.", "minimum": 1, "type": "integer" }, "bodyParameters": { "description": "The list of body parameters to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to a body parameter.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The body parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "The time span for the `burstThreshold` interval. For existing rate policies, analyze your traffic in Alert mode before you reduce the measure window from 5 seconds. [Learn more about thresholds here](https://techdocs.akamai.com/kona-site-defender/docs/rate-thresholds).", "maximum": 5, "minimum": 1, "type": "integer" }, "clientIdentifier": { "description": "The client identifier you want to use to identify and track request senders. The value is required only for WAF type, and `api-key` is supported only for API match criteria. Using `ip-useragent` is typically more specific than using `ip` alone when trying to identify a client. Tracking by `cookie:value` applies to requests per individual session, even if the IP address changes.", "enum": [ "api-key", "ip-useragent", "ip", "cookie:value" ], "type": "string" }, "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the rate policy.", "properties": { "atomicConditions": { "description": "The conditions that trigger the rate policy. Specify one or more request headers, TLS fingerprints, or client reputation categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } } ] }, "minItems": 1, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "counterType": { "default": "per_edge", "description": "The rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "createDate": { "description": "__Read-only__ The time stamp when you created the rate policy.", "example": "2016-07-22 18:57:08.0", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "evaluation": { "additionalProperties": false, "description": "Contains details about rate policy evaluation.", "properties": { "averageThreshold": { "description": "The allowed hits per second during any two-minute interval during evaluation.", "minimum": 1, "type": "integer" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval during evaluation.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "__Read-only__ The time span for the `burstThreshold` interval used during evaluation. This value is always set to the `burstWindow` specified by the main rate policy.", "readOnly": true, "type": "integer" }, "counterType": { "default": "region_aggregated", "description": "The evaluation rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "endDate": { "description": "__Read-only__ The time stamp when evaluation ends.", "format": "date-time", "readOnly": true, "type": "string" }, "evaluationId": { "description": "__Read-only__ Uniquely identifies an evaluation.", "readOnly": true, "type": "integer" }, "evaluationStatus": { "description": "__Read-only__ Reflects evaluation status, either `in_progress`, `pending_activation`, or `completed`.", "enum": [ "in_progress", "pending_activation", "completed" ], "readOnly": true, "type": "string" }, "startDate": { "description": "__Read-only__ The time stamp when evaluation starts.", "format": "date-time", "readOnly": true, "type": "string" }, "version": { "description": "__Read-only__ Evaluation version.", "readOnly": true, "type": "integer" } }, "required": [ "averageThreshold", "burstThreshold" ], "type": "object" }, "fileExtensions": { "additionalProperties": false, "description": "Contains the file extension match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The file extensions to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "hostnames": { "description": "__Deprecated__. The hostnames to match. This array member is deprecated. Use the `hosts` object instead.", "items": { "type": "string" }, "type": "array" }, "hosts": { "additionalProperties": false, "description": "The hostnames to match, and whether to trigger on a match or absence of match.", "properties": { "positiveMatch": { "default": true, "description": "When `true`, triggers on hostnames that match any hostnames in this array. When `false`, triggers on hostnames that don't match any in this array.", "type": "boolean" }, "values": { "description": "The hostnames you choose to match, or specifically not match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "id": { "description": "__Read-only__ Uniquely identifies each rate policy.", "readOnly": true, "type": "integer" }, "matchType": { "description": "The match type in a rate policy. Either `path` to match website paths or `api` to match API paths.", "enum": [ "path", "api" ], "type": "string" }, "name": { "description": "The name you assign to a rate policy.", "type": "string" }, "path": { "additionalProperties": false, "description": "Contains details about the path match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "pathMatchType": { "description": "The type of paths to match in incoming requests. Either `AllRequests` to match an empty path or any path that ends in a trailing slash (`/`), `TopLevel` to match top-level hostnames only, or `Custom` to match a specific path or path component. This applies only when the corresponding `matchType` member is `path`.", "enum": [ "AllRequests", "TopLevel", "Custom" ], "type": "string" }, "pathUriPositiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "queryParameters": { "description": "The list of query parameter objects to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The query parameter name.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The list of query parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "requestType": { "description": "The type of requests to count towards the rate policy's thresholds. Either `ClientRequest` to count client requests to edge servers, `ClientResponse` to count edge responses to the client, `ForwardResponse` to count origin responses to the client, or `ForwardRequest` to count edge requests to your origin.", "enum": [ "ClientRequest", "ClientResponse", "ForwardResponse", "ForwardRequest" ], "type": "string" }, "sameActionOnIpv6": { "description": "Whether to apply the same action to the IPv6 traffic as to the IPv4 traffic.", "type": "boolean" }, "type": { "description": "The rate policy type. Either `WAF` for Web Application Firewall, or `BOTMAN` for Bot Manager.", "enum": [ "WAF", "BOTMAN" ], "type": "string" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the rate policy.", "example": "2017-02-22 00:05:41.0", "format": "date-time", "readOnly": true, "type": "string" }, "useXForwardForHeaders": { "description": "Whether to check the contents of the `X-Forwarded-For` header in incoming requests.", "type": "boolean" }, "used": { "description": "__Read-only__ Whether you're currently using the rate policy.", "readOnly": true, "type": "boolean" } }, "required": [ "matchType", "type", "name", "averageThreshold", "burstThreshold", "clientIdentifier", "requestType", "sameActionOnIpv6", "pathMatchType" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy.yaml" } } } }, "description": "Successfully returned rate policy." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to rate policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or rate policy wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Get a Rate Policy", "tags": [ "Shared resources: Rate policies" ] }, "put": { "description": "Update details for a specific rate policy. Now you can match on defined or undefined resources. If you're setting a match for either resource type, both `definedResources` and `undefinedResources` must be present in the request object or the request is considered incomplete. When `true`, match on _any_ defined resources without passing a `resourceId`. When `false`, you'll need to pass a `resourceId`. If you pass `definedResources` and `undefinedResources` with empty values, they default to `false`. You can omit both resources and use this operation without these new match criteria. Contact your account team if you'd like to match on `definedResources` or `undefinedResources`. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-rate-policy" }, "operationId": "put-rate-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "additionalMatchOptions": [ { "positiveMatch": true, "type": "IpAddressCondition", "values": [ "192.0.2.232" ] }, { "positiveMatch": true, "type": "RequestMethodCondition", "values": [ "GET" ] } ], "averageThreshold": 5, "burstThreshold": 10, "burstWindow": 3, "clientIdentifier": "ip", "condition": { "atomicConditions": [ { "className": "TlsFingerprintCondition", "positiveMatch": true, "value": [ "a797dc449ef113be", "ba51ec8d71259a5b3c92d8787370e2c3" ] }, { "className": "ClientReputationCondition", "name": [ "DOSATCK", "WEBATCK" ], "positiveMatch": true, "sharedIpHandling": "BOTH", "value": 3 }, { "className": "RequestHeaderCondition", "name": [ "Accept", "Content-Type" ], "nameWildcard": true, "positiveMatch": true, "value": [ "json", "xml" ], "valueCase": false, "valueWildcard": true } ], "positiveMatch": true }, "counterType": "per_edge", "description": "AFW Test Extensions", "evaluation": { "averageThreshold": 5, "burstThreshold": 8 }, "fileExtensions": { "positiveMatch": false, "values": [ "3g2", "3gp", "aif", "aiff", "au", "avi", "bin", "bmp", "cab" ] }, "hosts": { "positiveMatch": false, "values": [ "www.myexamplehostname.org" ] }, "id": 2234, "matchType": "path", "name": "Test_Paths 2", "path": { "positiveMatch": true, "values": [ "/login/", "/path/" ] }, "pathMatchType": "Custom", "pathUriPositiveMatch": true, "queryParameters": [ { "name": "productId", "positiveMatch": true, "valueInRange": false, "values": [ "BUB_12", "SUSH_11" ] } ], "requestType": "ClientRequest", "sameActionOnIpv6": false, "type": "WAF", "useXForwardForHeaders": true }, "schema": { "additionalProperties": false, "description": "Contains details about a rate policy.", "properties": { "additionalMatchOptions": { "description": "The list of additional match conditions.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The match condition type. The `RequestHeaderCondition` listed here is deprecated. Specify `RequestHeaderCondition` as an `atomicCondition` to match on request headers. See [Export match condition type values](https://techdocs.akamai.com/application-security/reference/cndval).", "enum": [ "IpAddressCondition", "NetworkListCondition", "RequestHeaderCondition", "RequestMethodCondition", "ResponseHeaderCondition", "ResponseStatusCondition", "UserAgentCondition", "AsNumberCondition" ], "type": "string" }, "values": { "description": "The list of values that trigger the condition on match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type", "positiveMatch", "values" ], "type": "object" }, "type": "array" }, "apiSelectors": { "description": "The API endpoints to match in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "averageThreshold": { "description": "The allowed hits per second during any two-minute interval.", "example": "{{averageThreshold}}", "minimum": 1, "type": "integer" }, "bodyParameters": { "description": "The list of body parameters to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to a body parameter.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The body parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval.", "example": "{{burstThreshold}}", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "The time span for the `burstThreshold` interval. For existing rate policies, analyze your traffic in Alert mode before you reduce the measure window from 5 seconds. [Learn more about thresholds here](https://techdocs.akamai.com/kona-site-defender/docs/rate-thresholds).", "example": "{{burstWindow}}", "maximum": 5, "minimum": 1, "type": "integer" }, "clientIdentifier": { "description": "The client identifier you want to use to identify and track request senders. The value is required only for WAF type, and `api-key` is supported only for API match criteria. Using `ip-useragent` is typically more specific than using `ip` alone when trying to identify a client. Tracking by `cookie:value` applies to requests per individual session, even if the IP address changes.", "enum": [ "api-key", "ip-useragent", "ip", "cookie:value" ], "example": "{{clientIdentifier}}", "type": "string" }, "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the rate policy.", "properties": { "atomicConditions": { "description": "The conditions that trigger the rate policy. Specify one or more request headers, TLS fingerprints, or client reputation categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } } ] }, "minItems": 1, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "counterType": { "default": "per_edge", "description": "The rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "example": "{{counterType}}", "type": "string" }, "createDate": { "description": "__Read-only__ The time stamp when you created the rate policy.", "example": "{{createDate}}", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Descriptive text you provide about a policy.", "example": "{{description}}", "type": "string" }, "evaluation": { "additionalProperties": false, "description": "Contains details about rate policy evaluation.", "properties": { "averageThreshold": { "description": "The allowed hits per second during any two-minute interval during evaluation.", "minimum": 1, "type": "integer" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval during evaluation.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "__Read-only__ The time span for the `burstThreshold` interval used during evaluation. This value is always set to the `burstWindow` specified by the main rate policy.", "readOnly": true, "type": "integer" }, "counterType": { "default": "region_aggregated", "description": "The evaluation rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "endDate": { "description": "__Read-only__ The time stamp when evaluation ends.", "format": "date-time", "readOnly": true, "type": "string" }, "evaluationId": { "description": "__Read-only__ Uniquely identifies an evaluation.", "readOnly": true, "type": "integer" }, "evaluationStatus": { "description": "__Read-only__ Reflects evaluation status, either `in_progress`, `pending_activation`, or `completed`.", "enum": [ "in_progress", "pending_activation", "completed" ], "readOnly": true, "type": "string" }, "startDate": { "description": "__Read-only__ The time stamp when evaluation starts.", "format": "date-time", "readOnly": true, "type": "string" }, "version": { "description": "__Read-only__ Evaluation version.", "readOnly": true, "type": "integer" } }, "required": [ "averageThreshold", "burstThreshold" ], "type": "object" }, "fileExtensions": { "additionalProperties": false, "description": "Contains the file extension match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The file extensions to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "hostnames": { "description": "__Deprecated__. The hostnames to match. This array member is deprecated. Use the `hosts` object instead.", "items": { "type": "string" }, "type": "array" }, "hosts": { "additionalProperties": false, "description": "The hostnames to match, and whether to trigger on a match or absence of match.", "properties": { "positiveMatch": { "default": true, "description": "When `true`, triggers on hostnames that match any hostnames in this array. When `false`, triggers on hostnames that don't match any in this array.", "type": "boolean" }, "values": { "description": "The hostnames you choose to match, or specifically not match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "id": { "description": "__Read-only__ Uniquely identifies each rate policy.", "example": "{{id}}", "readOnly": true, "type": "integer" }, "matchType": { "description": "The match type in a rate policy. Either `path` to match website paths or `api` to match API paths.", "enum": [ "path", "api" ], "example": "{{matchType}}", "type": "string" }, "name": { "description": "The name you assign to a rate policy.", "example": "{{name}}", "type": "string" }, "path": { "additionalProperties": false, "description": "Contains details about the path match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "pathMatchType": { "description": "The type of paths to match in incoming requests. Either `AllRequests` to match an empty path or any path that ends in a trailing slash (`/`), `TopLevel` to match top-level hostnames only, or `Custom` to match a specific path or path component. This applies only when the corresponding `matchType` member is `path`.", "enum": [ "AllRequests", "TopLevel", "Custom" ], "example": "{{pathMatchType}}", "type": "string" }, "pathUriPositiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "example": "{{pathUriPositiveMatch}}", "type": "boolean" }, "queryParameters": { "description": "The list of query parameter objects to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The query parameter name.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The list of query parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "requestType": { "description": "The type of requests to count towards the rate policy's thresholds. Either `ClientRequest` to count client requests to edge servers, `ClientResponse` to count edge responses to the client, `ForwardResponse` to count origin responses to the client, or `ForwardRequest` to count edge requests to your origin.", "enum": [ "ClientRequest", "ClientResponse", "ForwardResponse", "ForwardRequest" ], "example": "{{requestType}}", "type": "string" }, "sameActionOnIpv6": { "description": "Whether to apply the same action to the IPv6 traffic as to the IPv4 traffic.", "example": "{{sameActionOnIpv6}}", "type": "boolean" }, "type": { "description": "The rate policy type. Either `WAF` for Web Application Firewall, or `BOTMAN` for Bot Manager.", "enum": [ "WAF", "BOTMAN" ], "example": "{{type}}", "type": "string" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the rate policy.", "example": "{{updateDate}}", "format": "date-time", "readOnly": true, "type": "string" }, "useXForwardForHeaders": { "description": "Whether to check the contents of the `X-Forwarded-For` header in incoming requests.", "example": "{{useXForwardForHeaders}}", "type": "boolean" }, "used": { "description": "__Read-only__ Whether you're currently using the rate policy.", "example": "{{used}}", "readOnly": true, "type": "boolean" } }, "required": [ "matchType", "type", "name", "averageThreshold", "burstThreshold", "clientIdentifier", "requestType", "sameActionOnIpv6", "pathMatchType" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "additionalMatchOptions": [ { "positiveMatch": true, "type": "IpAddressCondition", "values": [ "192.0.2.13" ] }, { "positiveMatch": true, "type": "RequestMethodCondition", "values": [ "GET" ] } ], "averageThreshold": 5, "burstThreshold": 10, "burstWindow": 3, "clientIdentifier": "ip", "condition": { "atomicConditions": [ { "className": "TlsFingerprintCondition", "positiveMatch": true, "value": [ "a797dc449ef113be", "ba51ec8d71259a5b3c92d8787370e2c3" ] }, { "className": "ClientReputationCondition", "name": [ "DOSATCK", "WEBATCK" ], "positiveMatch": true, "sharedIpHandling": "BOTH", "value": 3 }, { "className": "RequestHeaderCondition", "name": [ "Accept", "Content-Type" ], "nameWildcard": true, "positiveMatch": true, "value": [ "json", "xml" ], "valueCase": false, "valueWildcard": true } ], "positiveMatch": true }, "counterType": "per_edge", "createDate": "2016-07-22 18:57:08.0", "description": "AFW Test Extensions", "evaluation": { "averageThreshold": 5, "burstThreshold": 8, "burstWindow": 5, "counterType": "region_aggregated", "endDate": "2024-04-11T16:04:43Z", "evaluationId": 97, "evaluationStatus": "in_progress", "startDate": "2024-03-28T16:04:43Z", "version": 1 }, "fileExtensions": { "positiveMatch": false, "values": [ "3g2", "3gp", "aif", "aiff", "au", "avi", "bin", "bmp", "cab" ] }, "hosts": { "positiveMatch": false, "values": [ "www.myexamplehostname.org" ] }, "id": 484616, "matchType": "path", "name": "Test_Paths 2", "path": { "positiveMatch": true, "values": [ "/login/", "/path/" ] }, "pathMatchType": "Custom", "pathUriPositiveMatch": true, "queryParameters": [ { "name": "productId", "positiveMatch": true, "valueInRange": false, "values": [ "BUB_12", "SUSH_11" ] } ], "requestType": "ClientRequest", "sameActionOnIpv6": false, "type": "WAF", "updateDate": "2017-02-22 00:05:41.0", "useXForwardForHeaders": true, "used": false }, "schema": { "additionalProperties": false, "description": "Contains details about a rate policy.", "properties": { "additionalMatchOptions": { "description": "The list of additional match conditions.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The match condition type. The `RequestHeaderCondition` listed here is deprecated. Specify `RequestHeaderCondition` as an `atomicCondition` to match on request headers. See [Export match condition type values](https://techdocs.akamai.com/application-security/reference/cndval).", "enum": [ "IpAddressCondition", "NetworkListCondition", "RequestHeaderCondition", "RequestMethodCondition", "ResponseHeaderCondition", "ResponseStatusCondition", "UserAgentCondition", "AsNumberCondition" ], "type": "string" }, "values": { "description": "The list of values that trigger the condition on match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type", "positiveMatch", "values" ], "type": "object" }, "type": "array" }, "apiSelectors": { "description": "The API endpoints to match in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "averageThreshold": { "description": "The allowed hits per second during any two-minute interval.", "minimum": 1, "type": "integer" }, "bodyParameters": { "description": "The list of body parameters to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to a body parameter.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The body parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "The time span for the `burstThreshold` interval. For existing rate policies, analyze your traffic in Alert mode before you reduce the measure window from 5 seconds. [Learn more about thresholds here](https://techdocs.akamai.com/kona-site-defender/docs/rate-thresholds).", "maximum": 5, "minimum": 1, "type": "integer" }, "clientIdentifier": { "description": "The client identifier you want to use to identify and track request senders. The value is required only for WAF type, and `api-key` is supported only for API match criteria. Using `ip-useragent` is typically more specific than using `ip` alone when trying to identify a client. Tracking by `cookie:value` applies to requests per individual session, even if the IP address changes.", "enum": [ "api-key", "ip-useragent", "ip", "cookie:value" ], "type": "string" }, "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the rate policy.", "properties": { "atomicConditions": { "description": "The conditions that trigger the rate policy. Specify one or more request headers, TLS fingerprints, or client reputation categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } } ] }, "minItems": 1, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "counterType": { "default": "per_edge", "description": "The rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "createDate": { "description": "__Read-only__ The time stamp when you created the rate policy.", "example": "2016-07-22 18:57:08.0", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "evaluation": { "additionalProperties": false, "description": "Contains details about rate policy evaluation.", "properties": { "averageThreshold": { "description": "The allowed hits per second during any two-minute interval during evaluation.", "minimum": 1, "type": "integer" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval during evaluation.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "__Read-only__ The time span for the `burstThreshold` interval used during evaluation. This value is always set to the `burstWindow` specified by the main rate policy.", "readOnly": true, "type": "integer" }, "counterType": { "default": "region_aggregated", "description": "The evaluation rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "endDate": { "description": "__Read-only__ The time stamp when evaluation ends.", "format": "date-time", "readOnly": true, "type": "string" }, "evaluationId": { "description": "__Read-only__ Uniquely identifies an evaluation.", "readOnly": true, "type": "integer" }, "evaluationStatus": { "description": "__Read-only__ Reflects evaluation status, either `in_progress`, `pending_activation`, or `completed`.", "enum": [ "in_progress", "pending_activation", "completed" ], "readOnly": true, "type": "string" }, "startDate": { "description": "__Read-only__ The time stamp when evaluation starts.", "format": "date-time", "readOnly": true, "type": "string" }, "version": { "description": "__Read-only__ Evaluation version.", "readOnly": true, "type": "integer" } }, "required": [ "averageThreshold", "burstThreshold" ], "type": "object" }, "fileExtensions": { "additionalProperties": false, "description": "Contains the file extension match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The file extensions to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "hostnames": { "description": "__Deprecated__. The hostnames to match. This array member is deprecated. Use the `hosts` object instead.", "items": { "type": "string" }, "type": "array" }, "hosts": { "additionalProperties": false, "description": "The hostnames to match, and whether to trigger on a match or absence of match.", "properties": { "positiveMatch": { "default": true, "description": "When `true`, triggers on hostnames that match any hostnames in this array. When `false`, triggers on hostnames that don't match any in this array.", "type": "boolean" }, "values": { "description": "The hostnames you choose to match, or specifically not match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "id": { "description": "__Read-only__ Uniquely identifies each rate policy.", "readOnly": true, "type": "integer" }, "matchType": { "description": "The match type in a rate policy. Either `path` to match website paths or `api` to match API paths.", "enum": [ "path", "api" ], "type": "string" }, "name": { "description": "The name you assign to a rate policy.", "type": "string" }, "path": { "additionalProperties": false, "description": "Contains details about the path match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "pathMatchType": { "description": "The type of paths to match in incoming requests. Either `AllRequests` to match an empty path or any path that ends in a trailing slash (`/`), `TopLevel` to match top-level hostnames only, or `Custom` to match a specific path or path component. This applies only when the corresponding `matchType` member is `path`.", "enum": [ "AllRequests", "TopLevel", "Custom" ], "type": "string" }, "pathUriPositiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "queryParameters": { "description": "The list of query parameter objects to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The query parameter name.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The list of query parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "requestType": { "description": "The type of requests to count towards the rate policy's thresholds. Either `ClientRequest` to count client requests to edge servers, `ClientResponse` to count edge responses to the client, `ForwardResponse` to count origin responses to the client, or `ForwardRequest` to count edge requests to your origin.", "enum": [ "ClientRequest", "ClientResponse", "ForwardResponse", "ForwardRequest" ], "type": "string" }, "sameActionOnIpv6": { "description": "Whether to apply the same action to the IPv6 traffic as to the IPv4 traffic.", "type": "boolean" }, "type": { "description": "The rate policy type. Either `WAF` for Web Application Firewall, or `BOTMAN` for Bot Manager.", "enum": [ "WAF", "BOTMAN" ], "type": "string" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the rate policy.", "example": "2017-02-22 00:05:41.0", "format": "date-time", "readOnly": true, "type": "string" }, "useXForwardForHeaders": { "description": "Whether to check the contents of the `X-Forwarded-For` header in incoming requests.", "type": "boolean" }, "used": { "description": "__Read-only__ Whether you're currently using the rate policy.", "readOnly": true, "type": "boolean" } }, "required": [ "matchType", "type", "name", "averageThreshold", "burstThreshold", "clientIdentifier", "requestType", "sameActionOnIpv6", "pathMatchType" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy.yaml" } } } }, "description": "Successfully updated rate policy." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to rate policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or rate policy wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Modify a Rate Policy", "tags": [ "Shared resources: Rate policies" ] }, "delete": { "description": "Delete the specified rate policy. You can't delete a rate policy that is actively in use. To delete the rate policy, first activate an older configuration version or create a new version without the policy in place. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/delete-rate-policy" }, "operationId": "delete-rate-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "204": { "content": {}, "description": "Successfully deleted the rate policy." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to rate policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or rate policy wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Remove a Rate Policy", "tags": [ "Shared resources: Rate policies" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for each rate policy.", "example": "{{ratePolicyId}}", "in": "path", "name": "ratePolicyId", "required": true, "schema": { "example": 112231, "type": "integer" }, "x-akamai": { "file-path": "parameters/rate-policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-rate-policy.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/rate-policies/{ratePolicyId}" } }, "/configs/{configId}/versions/{versionNumber}/rate-policies/{ratePolicyId}/evaluation": { "put": { "description": "Apply or discard a rate policy evaluation.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-rate-policy-evaluation" }, "operationId": "put-rate-policy-evaluation", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "action": "APPLY" }, "schema": { "additionalProperties": false, "description": "Lists actions you can perform on a rate policy evaluation.", "properties": { "action": { "description": "Specifies the action to perform on a rate policy evaluation, either `APPLY` or `DISCARD`.", "enum": [ "APPLY", "DISCARD" ], "example": "{{action}}", "type": "string" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy-evaluation-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "additionalMatchOptions": [ { "positiveMatch": true, "type": "IpAddressCondition", "values": [ "192.0.2.13" ] }, { "positiveMatch": true, "type": "RequestMethodCondition", "values": [ "GET" ] } ], "averageThreshold": 5, "burstThreshold": 10, "burstWindow": 3, "clientIdentifier": "ip", "condition": { "atomicConditions": [ { "className": "TlsFingerprintCondition", "positiveMatch": true, "value": [ "a797dc449ef113be", "ba51ec8d71259a5b3c92d8787370e2c3" ] }, { "className": "ClientReputationCondition", "name": [ "DOSATCK", "WEBATCK" ], "positiveMatch": true, "sharedIpHandling": "BOTH", "value": 3 }, { "className": "RequestHeaderCondition", "name": [ "Accept", "Content-Type" ], "nameWildcard": true, "positiveMatch": true, "value": [ "json", "xml" ], "valueCase": false, "valueWildcard": true } ], "positiveMatch": true }, "counterType": "region_aggregated", "createDate": "2016-07-22T18:57:08.0Z", "description": "AFW Test Extensions", "fileExtensions": { "positiveMatch": false, "values": [ "3g2", "3gp", "aif", "aiff", "au", "avi", "bin", "bmp", "cab" ] }, "hosts": { "positiveMatch": false, "values": [ "www.myexamplehostname.org" ] }, "id": 484616, "matchType": "path", "name": "Test_Paths 2", "path": { "positiveMatch": true, "values": [ "/login/", "/path/" ] }, "pathMatchType": "Custom", "pathUriPositiveMatch": true, "queryParameters": [ { "name": "productId", "positiveMatch": true, "valueInRange": false, "values": [ "BUB_12", "SUSH_11" ] } ], "requestType": "ClientRequest", "sameActionOnIpv6": false, "type": "WAF", "updateDate": "2017-02-22T00:05:41.0Z", "useXForwardForHeaders": true, "used": false }, "schema": { "additionalProperties": false, "description": "Contains details about a rate policy.", "properties": { "additionalMatchOptions": { "description": "The list of additional match conditions.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The match condition type. The `RequestHeaderCondition` listed here is deprecated. Specify `RequestHeaderCondition` as an `atomicCondition` to match on request headers. See [Export match condition type values](https://techdocs.akamai.com/application-security/reference/cndval).", "enum": [ "IpAddressCondition", "NetworkListCondition", "RequestHeaderCondition", "RequestMethodCondition", "ResponseHeaderCondition", "ResponseStatusCondition", "UserAgentCondition", "AsNumberCondition" ], "type": "string" }, "values": { "description": "The list of values that trigger the condition on match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type", "positiveMatch", "values" ], "type": "object" }, "type": "array" }, "apiSelectors": { "description": "The API endpoints to match in incoming requests. This only applies to the `api` `matchType`.", "items": { "additionalProperties": false, "properties": { "apiDefinitionId": { "description": "Uniquely identifies each API endpoint.", "type": "integer" }, "definedResources": { "description": "When `true`, match on any resource explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" }, "resourceIds": { "description": "The unique identifiers of the endpoint's resources.", "items": { "type": "integer" }, "type": "array" }, "undefinedResources": { "description": "When `true`, match on any resource you have not explicitly added to your API definition without including a `resourceId`. When `false`, you'll need to pass a `resourceId`.", "type": "boolean" } }, "required": [ "apiDefinitionId" ], "type": "object" }, "type": "array" }, "averageThreshold": { "description": "The allowed hits per second during any two-minute interval.", "minimum": 1, "type": "integer" }, "bodyParameters": { "description": "The list of body parameters to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The name you assign to a body parameter.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The body parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "The time span for the `burstThreshold` interval. For existing rate policies, analyze your traffic in Alert mode before you reduce the measure window from 5 seconds. [Learn more about thresholds here](https://techdocs.akamai.com/kona-site-defender/docs/rate-thresholds).", "maximum": 5, "minimum": 1, "type": "integer" }, "clientIdentifier": { "description": "The client identifier you want to use to identify and track request senders. The value is required only for WAF type, and `api-key` is supported only for API match criteria. Using `ip-useragent` is typically more specific than using `ip` alone when trying to identify a client. Tracking by `cookie:value` applies to requests per individual session, even if the IP address changes.", "enum": [ "api-key", "ip-useragent", "ip", "cookie:value" ], "type": "string" }, "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the rate policy.", "properties": { "atomicConditions": { "description": "The conditions that trigger the rate policy. Specify one or more request headers, TLS fingerprints, or client reputation categories.", "items": { "oneOf": [ { "additionalProperties": false, "description": "Collects data needed for condition matches on request headers.", "properties": { "className": { "description": "The type of condition. The `RequestHeaderCondition` type checks for a header from the requesting client and determines if it matches a provided header. This subtype supports the `?` wildcard to match any single character and the `*` wildcard to match any sequence of 0 or more characters. You can also match on case sensitivity.", "enum": [ "RequestHeaderCondition" ], "type": "string" }, "name": { "description": "A header name. Use `name` to check whether the specified header exists.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "nameWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique header values. Use both `value` and `name` to check whether the requesting client\u2019s header matches a provided header.", "items": { "minLength": 1, "type": "string" }, "nullable": true, "type": "array", "uniqueItems": true }, "valueCase": { "description": "Whether to consider the case sensitivity of the provided header values.", "type": "boolean" }, "valueWildcard": { "description": "Whether to interpret `?` and `*` as wildcards.", "type": "boolean" } }, "required": [ "className", "name" ], "title": "RequestHeaderCondition", "type": "object", "x-akamai": { "file-path": "schemas/request-header-condition-2.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on TLS fingerprints.", "properties": { "className": { "description": "The type of condition. In this case, `TlsFingerprintCondition`.", "enum": [ "TlsFingerprintCondition" ], "type": "string" }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "value": { "description": "A list of unique TLS fingerprints.", "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true } }, "required": [ "className", "value" ], "title": "TlsFingerprintCondition", "type": "object", "x-akamai": { "file-path": "schemas/tls-fingerprint-condition.yaml" } }, { "additionalProperties": false, "description": "Collects data needed for condition matches on Client Reputation.", "properties": { "className": { "description": "The type of condition. In this case, `ClientReputationCondition`.", "enum": [ "ClientReputationCondition" ], "type": "string" }, "name": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "items": { "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "positiveMatch": { "description": "Whether the condition triggers on a match or lack of match.", "type": "boolean" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "value": { "description": "Threshold value that causes the trigger.", "maximum": 10, "minimum": 1, "type": "number" } }, "required": [ "className", "name", "value", "sharedIpHandling" ], "title": "ClientReputationCondition", "type": "object", "x-akamai": { "file-path": "schemas/client-reputation-condition.yaml" } } ] }, "minItems": 1, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "counterType": { "default": "per_edge", "description": "The rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "createDate": { "description": "__Read-only__ The time stamp when you created the rate policy.", "example": "2016-07-22 18:57:08.0", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Descriptive text you provide about a policy.", "type": "string" }, "evaluation": { "additionalProperties": false, "description": "Contains details about rate policy evaluation.", "properties": { "averageThreshold": { "description": "The allowed hits per second during any two-minute interval during evaluation.", "minimum": 1, "type": "integer" }, "burstThreshold": { "description": "The allowed hits per second during any five-second interval during evaluation.", "minimum": 1, "type": "integer" }, "burstWindow": { "description": "__Read-only__ The time span for the `burstThreshold` interval used during evaluation. This value is always set to the `burstWindow` specified by the main rate policy.", "readOnly": true, "type": "integer" }, "counterType": { "default": "region_aggregated", "description": "The evaluation rate policy counter type. Either `per_edge` for rate limiting to work per edge node, or `region_aggregated` for rate limiting to work using aggregated rate accounting across multiple edge nodes.", "enum": [ "per_edge", "region_aggregated" ], "type": "string" }, "endDate": { "description": "__Read-only__ The time stamp when evaluation ends.", "format": "date-time", "readOnly": true, "type": "string" }, "evaluationId": { "description": "__Read-only__ Uniquely identifies an evaluation.", "readOnly": true, "type": "integer" }, "evaluationStatus": { "description": "__Read-only__ Reflects evaluation status, either `in_progress`, `pending_activation`, or `completed`.", "enum": [ "in_progress", "pending_activation", "completed" ], "readOnly": true, "type": "string" }, "startDate": { "description": "__Read-only__ The time stamp when evaluation starts.", "format": "date-time", "readOnly": true, "type": "string" }, "version": { "description": "__Read-only__ Evaluation version.", "readOnly": true, "type": "integer" } }, "required": [ "averageThreshold", "burstThreshold" ], "type": "object" }, "fileExtensions": { "additionalProperties": false, "description": "Contains the file extension match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The file extensions to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "hostnames": { "description": "__Deprecated__. The hostnames to match. This array member is deprecated. Use the `hosts` object instead.", "items": { "type": "string" }, "type": "array" }, "hosts": { "additionalProperties": false, "description": "The hostnames to match, and whether to trigger on a match or absence of match.", "properties": { "positiveMatch": { "default": true, "description": "When `true`, triggers on hostnames that match any hostnames in this array. When `false`, triggers on hostnames that don't match any in this array.", "type": "boolean" }, "values": { "description": "The hostnames you choose to match, or specifically not match.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "id": { "description": "__Read-only__ Uniquely identifies each rate policy.", "readOnly": true, "type": "integer" }, "matchType": { "description": "The match type in a rate policy. Either `path` to match website paths or `api` to match API paths.", "enum": [ "path", "api" ], "type": "string" }, "name": { "description": "The name you assign to a rate policy.", "type": "string" }, "path": { "additionalProperties": false, "description": "Contains details about the path match criteria.", "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "values": { "description": "The list of paths to match on.", "items": { "type": "string" }, "type": "array" } }, "required": [ "positiveMatch", "values" ], "type": "object" }, "pathMatchType": { "description": "The type of paths to match in incoming requests. Either `AllRequests` to match an empty path or any path that ends in a trailing slash (`/`), `TopLevel` to match top-level hostnames only, or `Custom` to match a specific path or path component. This applies only when the corresponding `matchType` member is `path`.", "enum": [ "AllRequests", "TopLevel", "Custom" ], "type": "string" }, "pathUriPositiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "queryParameters": { "description": "The list of query parameter objects to match on.", "items": { "additionalProperties": false, "properties": { "name": { "description": "The query parameter name.", "type": "string" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "valueInRange": { "description": "Whether to match a value inside or outside a range. The range format is `min:max` \u2014 for example, `2:4`.", "type": "boolean" }, "values": { "description": "The list of query parameter values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "values", "positiveMatch" ], "type": "object" }, "type": "array" }, "requestType": { "description": "The type of requests to count towards the rate policy's thresholds. Either `ClientRequest` to count client requests to edge servers, `ClientResponse` to count edge responses to the client, `ForwardResponse` to count origin responses to the client, or `ForwardRequest` to count edge requests to your origin.", "enum": [ "ClientRequest", "ClientResponse", "ForwardResponse", "ForwardRequest" ], "type": "string" }, "sameActionOnIpv6": { "description": "Whether to apply the same action to the IPv6 traffic as to the IPv4 traffic.", "type": "boolean" }, "type": { "description": "The rate policy type. Either `WAF` for Web Application Firewall, or `BOTMAN` for Bot Manager.", "enum": [ "WAF", "BOTMAN" ], "type": "string" }, "updateDate": { "description": "__Read-only__ The ISO 8601 timestamp when you last updated the rate policy.", "example": "2017-02-22 00:05:41.0", "format": "date-time", "readOnly": true, "type": "string" }, "useXForwardForHeaders": { "description": "Whether to check the contents of the `X-Forwarded-For` header in incoming requests.", "type": "boolean" }, "used": { "description": "__Read-only__ Whether you're currently using the rate policy.", "readOnly": true, "type": "boolean" } }, "required": [ "matchType", "type", "name", "averageThreshold", "burstThreshold", "clientIdentifier", "requestType", "sameActionOnIpv6", "pathMatchType" ], "type": "object", "x-akamai": { "file-path": "schemas/rate-policy.yaml" } } } }, "description": "Successfully apply or discard rate policy evalutation." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to rate policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or rate policy wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Modify a Rate Policy Evaluation", "tags": [ "Shared resources: Rate policies" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for each rate policy.", "example": "{{ratePolicyId}}", "in": "path", "name": "ratePolicyId", "required": true, "schema": { "example": 112231, "type": "integer" }, "x-akamai": { "file-path": "parameters/rate-policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-rate-policy-evaluation.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/rate-policies/{ratePolicyId}/evaluation" } }, "/configs/{configId}/versions/{versionNumber}/reputation-profiles": { "post": { "description": "Create a new reputation profile for a specific configuration version. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-reputation-profiles" }, "operationId": "post-reputation-profiles", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "condition": { "atomicConditions": [ { "className": "AsNumberCondition", "positiveMatch": true, "value": [ "1" ] }, { "className": "RequestCookieCondition", "name": "x-header", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "valueWildcard": true }, { "className": "HostCondition", "host": [ "*.com" ], "positiveMatch": true, "valueWildcard": true } ], "positiveMatch": true }, "context": "WEBATCK", "description": "Reputation profile description", "name": "Web Attack Rep Profile", "sharedIpHandling": "NON_SHARED", "threshold": 5 }, "schema": { "additionalProperties": false, "description": "Contains details about a reputation profile.", "properties": { "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the reputation profile.", "properties": { "atomicConditions": { "description": "The conditions that trigger the reputation profile.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).", "enum": [ "NetworkListCondition", "AsNumberCondition", "IpAddressCondition", "RequestCookieCondition", "RequestHeaderCondition", "HostCondition", "UrlPatternCondition" ], "type": "string" }, "value": { "description": "The list of values that trigger the condition.", "items": { "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "valueCase": { "default": false, "description": "Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.", "type": "boolean" }, "valueWildcard": { "default": true, "description": "Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.", "type": "boolean" } }, "type": "object" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "context": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "example": "{{context}}", "type": "string" }, "contextReadable": { "description": "__Read-only__ Describes the reputation category.", "example": "{{contextReadable}}", "readOnly": true, "type": "string" }, "description": { "description": "Describes the reputation profile.", "example": "{{description}}", "type": "string" }, "enabled": { "description": "__Read-only__ Whether you enabled the reputation profile.", "example": "{{enabled}}", "readOnly": true, "type": "boolean" }, "id": { "description": "__Read-only__ Uniquely identifies the reputation profile.", "example": "{{id}}", "readOnly": true, "type": "integer" }, "name": { "description": "The name you assigned to the reputation profile.", "example": "{{name}}", "type": "string" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "example": "{{sharedIpHandling}}", "type": "string" }, "threshold": { "description": "The threshold when the profile to triggers.", "example": "{{threshold}}", "type": "number" } }, "required": [ "name", "context", "threshold", "sharedIpHandling" ], "type": "object", "x-akamai": { "file-path": "schemas/reputation-profile.yaml" } } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "condition": { "atomicConditions": [ { "checkIps": "connecting", "className": "AsNumberCondition", "index": 1, "positiveMatch": true, "value": [ "1" ] }, { "className": "RequestCookieCondition", "index": 2, "name": "x-header", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "valueCase": false, "valueWildcard": true }, { "className": "HostCondition", "host": [ "*.com" ], "index": 3, "positiveMatch": true, "valueWildcard": true } ], "positiveMatch": true }, "context": "WEBATCK", "description": "Reputation profile description", "enabled": false, "id": 2509987, "name": "Web Attack Rep Profile", "sharedIpHandling": "NON_SHARED", "threshold": 5 }, "schema": { "additionalProperties": false, "description": "Contains details about a reputation profile.", "properties": { "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the reputation profile.", "properties": { "atomicConditions": { "description": "The conditions that trigger the reputation profile.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).", "enum": [ "NetworkListCondition", "AsNumberCondition", "IpAddressCondition", "RequestCookieCondition", "RequestHeaderCondition", "HostCondition", "UrlPatternCondition" ], "type": "string" }, "value": { "description": "The list of values that trigger the condition.", "items": { "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "valueCase": { "default": false, "description": "Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.", "type": "boolean" }, "valueWildcard": { "default": true, "description": "Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.", "type": "boolean" } }, "type": "object" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "context": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "contextReadable": { "description": "__Read-only__ Describes the reputation category.", "readOnly": true, "type": "string" }, "description": { "description": "Describes the reputation profile.", "type": "string" }, "enabled": { "description": "__Read-only__ Whether you enabled the reputation profile.", "readOnly": true, "type": "boolean" }, "id": { "description": "__Read-only__ Uniquely identifies the reputation profile.", "readOnly": true, "type": "integer" }, "name": { "description": "The name you assigned to the reputation profile.", "type": "string" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "threshold": { "description": "The threshold when the profile to triggers.", "type": "number" } }, "required": [ "name", "context", "threshold", "sharedIpHandling" ], "type": "object", "x-akamai": { "file-path": "schemas/reputation-profile.yaml" } } } }, "description": "Successfully created a reputation profile." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to reputation profiles in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Create a Reputation Profile", "tags": [ "Shared resources: Reputation profiles" ] }, "get": { "description": "Returns reputation profiles for a specific security configuration version. To use reputation profiles, you need to add [Client Reputation](https://techdocs.akamai.com/app-api-protector/docs/control-client-reputation) to Kona Site Defender on your contract. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-reputation-profiles" }, "operationId": "get-reputation-profiles", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "reputationProfiles": [ { "context": "SCANTL", "contextReadable": "Scanning Tools", "enabled": false, "id": 146254, "name": "Scanning Tools (High Threat)", "sharedIpHandling": "NON_SHARED", "threshold": 9 }, { "context": "WEBATCK", "contextReadable": "Web Attackers", "enabled": false, "id": 146258, "name": "Web Attackers (Low Threat)", "sharedIpHandling": "SHARED_ONLY", "threshold": 5 }, { "condition": { "atomicConditions": [ { "className": "RequestCookieCondition", "name": "cookie", "nameWildcard": true, "positiveMatch": true, "value": [ "cookie" ], "valueWildcard": true } ], "description": "Rep condition description", "id": "2156", "name": "Rep condition", "positiveMatch": true }, "context": "WEBATCK", "contextReadable": "Web Attackers", "description": "this is a customized reputation profile", "enabled": true, "id": 146259, "name": "Custom Reputation Profile", "sharedIpHandling": "SHARED_ONLY", "threshold": 3 } ] }, "schema": { "additionalProperties": false, "description": "Contains details about reputation profiles.", "properties": { "reputationProfiles": { "description": "A list of reputation profiles in this configuration version.", "items": { "additionalProperties": false, "description": "Contains details about a reputation profile.", "properties": { "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the reputation profile.", "properties": { "atomicConditions": { "description": "The conditions that trigger the reputation profile.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).", "enum": [ "NetworkListCondition", "AsNumberCondition", "IpAddressCondition", "RequestCookieCondition", "RequestHeaderCondition", "HostCondition", "UrlPatternCondition" ], "type": "string" }, "value": { "description": "The list of values that trigger the condition.", "items": { "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "valueCase": { "default": false, "description": "Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.", "type": "boolean" }, "valueWildcard": { "default": true, "description": "Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.", "type": "boolean" } }, "type": "object" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "context": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "contextReadable": { "description": "__Read-only__ Describes the reputation category.", "readOnly": true, "type": "string" }, "description": { "description": "Describes the reputation profile.", "type": "string" }, "enabled": { "description": "__Read-only__ Whether you enabled the reputation profile.", "readOnly": true, "type": "boolean" }, "id": { "description": "__Read-only__ Uniquely identifies the reputation profile.", "readOnly": true, "type": "integer" }, "name": { "description": "The name you assigned to the reputation profile.", "type": "string" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "threshold": { "description": "The threshold when the profile to triggers.", "type": "number" } }, "required": [ "name", "context", "threshold", "sharedIpHandling" ], "type": "object", "x-akamai": { "file-path": "schemas/reputation-profile.yaml" } }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/reputation-profiles.yaml" } } } }, "description": "Successfully returned reputation profiles." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to reputation profile in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Reputation Profiles", "tags": [ "Shared resources: Reputation profiles" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-reputation-profiles.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/reputation-profiles" } }, "/configs/{configId}/versions/{versionNumber}/reputation-profiles/{reputationProfileId}": { "get": { "description": "Returns the details for a specific reputation profile. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-reputation-profile" }, "operationId": "get-reputation-profile", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "condition": { "atomicConditions": [ { "checkIps": "connecting", "className": "AsNumberCondition", "index": 1, "positiveMatch": true, "value": [ "1" ] }, { "className": "RequestCookieCondition", "index": 2, "name": "x-header", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "valueCase": false, "valueWildcard": true }, { "className": "HostCondition", "host": [ "*.com" ], "index": 3, "positiveMatch": true, "valueWildcard": true } ], "positiveMatch": true }, "context": "WEBATCK", "description": "Reputation profile description", "enabled": false, "id": 2509987, "name": "Web Attack Rep Profile", "sharedIpHandling": "NON_SHARED", "threshold": 5 }, "schema": { "additionalProperties": false, "description": "Contains details about a reputation profile.", "properties": { "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the reputation profile.", "properties": { "atomicConditions": { "description": "The conditions that trigger the reputation profile.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).", "enum": [ "NetworkListCondition", "AsNumberCondition", "IpAddressCondition", "RequestCookieCondition", "RequestHeaderCondition", "HostCondition", "UrlPatternCondition" ], "type": "string" }, "value": { "description": "The list of values that trigger the condition.", "items": { "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "valueCase": { "default": false, "description": "Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.", "type": "boolean" }, "valueWildcard": { "default": true, "description": "Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.", "type": "boolean" } }, "type": "object" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "context": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "contextReadable": { "description": "__Read-only__ Describes the reputation category.", "readOnly": true, "type": "string" }, "description": { "description": "Describes the reputation profile.", "type": "string" }, "enabled": { "description": "__Read-only__ Whether you enabled the reputation profile.", "readOnly": true, "type": "boolean" }, "id": { "description": "__Read-only__ Uniquely identifies the reputation profile.", "readOnly": true, "type": "integer" }, "name": { "description": "The name you assigned to the reputation profile.", "type": "string" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "threshold": { "description": "The threshold when the profile to triggers.", "type": "number" } }, "required": [ "name", "context", "threshold", "sharedIpHandling" ], "type": "object", "x-akamai": { "file-path": "schemas/reputation-profile.yaml" } } } }, "description": "Successfully returned reputation profile." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to reputation profile in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or reputation profile wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Get a Reputation Profile", "tags": [ "Shared resources: Reputation profiles" ] }, "put": { "description": "Update details for a specific reputation profile. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-reputation-profile" }, "operationId": "put-reputation-profile", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "condition": { "atomicConditions": [ { "checkIps": "connecting", "className": "AsNumberCondition", "index": 1, "positiveMatch": true, "value": [ "1" ] }, { "className": "RequestCookieCondition", "index": 2, "name": "x-header", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "valueCase": false, "valueWildcard": true }, { "className": "HostCondition", "host": [ "example.com" ], "index": 3, "positiveMatch": true, "valueWildcard": true } ], "positiveMatch": true }, "context": "WEBATCK", "description": "Reputation profile description", "enabled": false, "id": 2509987, "name": "Web Attack Rep Profile", "sharedIpHandling": "NON_SHARED", "threshold": 5 }, "schema": { "additionalProperties": false, "description": "Contains details about a reputation profile.", "properties": { "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the reputation profile.", "properties": { "atomicConditions": { "description": "The conditions that trigger the reputation profile.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).", "enum": [ "NetworkListCondition", "AsNumberCondition", "IpAddressCondition", "RequestCookieCondition", "RequestHeaderCondition", "HostCondition", "UrlPatternCondition" ], "type": "string" }, "value": { "description": "The list of values that trigger the condition.", "items": { "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "valueCase": { "default": false, "description": "Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.", "type": "boolean" }, "valueWildcard": { "default": true, "description": "Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.", "type": "boolean" } }, "type": "object" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "context": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "example": "{{context}}", "type": "string" }, "contextReadable": { "description": "__Read-only__ Describes the reputation category.", "example": "{{contextReadable}}", "readOnly": true, "type": "string" }, "description": { "description": "Describes the reputation profile.", "example": "{{description}}", "type": "string" }, "enabled": { "description": "__Read-only__ Whether you enabled the reputation profile.", "example": "{{enabled}}", "readOnly": true, "type": "boolean" }, "id": { "description": "__Read-only__ Uniquely identifies the reputation profile.", "example": "{{id}}", "readOnly": true, "type": "integer" }, "name": { "description": "The name you assigned to the reputation profile.", "example": "{{name}}", "type": "string" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "example": "{{sharedIpHandling}}", "type": "string" }, "threshold": { "description": "The threshold when the profile to triggers.", "example": "{{threshold}}", "type": "number" } }, "required": [ "name", "context", "threshold", "sharedIpHandling" ], "type": "object", "x-akamai": { "file-path": "schemas/reputation-profile.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "condition": { "atomicConditions": [ { "checkIps": "connecting", "className": "AsNumberCondition", "index": 1, "positiveMatch": true, "value": [ "1" ] }, { "className": "RequestCookieCondition", "index": 2, "name": "x-header", "nameCase": true, "nameWildcard": true, "positiveMatch": true, "valueCase": false, "valueWildcard": true }, { "className": "HostCondition", "host": [ "*.com" ], "index": 3, "positiveMatch": true, "valueWildcard": true } ], "positiveMatch": true }, "context": "WEBATCK", "description": "Reputation profile description", "enabled": false, "id": 2509987, "name": "Web Attack Rep Profile", "sharedIpHandling": "NON_SHARED", "threshold": 5 }, "schema": { "additionalProperties": false, "description": "Contains details about a reputation profile.", "properties": { "condition": { "additionalProperties": false, "description": "Contains information about the criteria that trigger the reputation profile.", "properties": { "atomicConditions": { "description": "The conditions that trigger the reputation profile.", "items": { "additionalProperties": false, "properties": { "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type. For available values, see [Condition Values](https://techdocs.akamai.com/application-security/reference/condition-values).", "enum": [ "NetworkListCondition", "AsNumberCondition", "IpAddressCondition", "RequestCookieCondition", "RequestHeaderCondition", "HostCondition", "UrlPatternCondition" ], "type": "string" }, "value": { "description": "The list of values that trigger the condition.", "items": { "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "valueCase": { "default": false, "description": "Whether to consider the character case when comparing the value string with the request value. The default is `false`, meaning that a value such as `url` would match a string `UrL` in the request.", "type": "boolean" }, "valueWildcard": { "default": true, "description": "Whether to treat the asterisk (`*`) and question mark (`?`) as wildcards when comparing the value string with the request value. Note that setting this to `false` isn't supported by the host condition, and means that the value string must match exactly.", "type": "boolean" } }, "type": "object" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" } }, "type": "object" }, "context": { "description": "Identifies the reputation category. Web scrapers (`WEBSCRP`) crawl sites and collect data like hotel rates, product prices, store locations, and more. DoS attackers (`DOSATCK`) are web clients or botnets that use automated tools to launch volumetric Denial of Service (DoS) attacks. Web attackers (`WEBATCK`) target websites and web apps with techniques like SQL injection, remote file inclusion, or cross-site scripting. Scanning tools (`SCANTL`) probe web apps for vulnerabilities during an attack's reconnaissance phase.", "enum": [ "WEBSCRP", "DOSATCK", "WEBATCK", "SCANTL" ], "type": "string" }, "contextReadable": { "description": "__Read-only__ Describes the reputation category.", "readOnly": true, "type": "string" }, "description": { "description": "Describes the reputation profile.", "type": "string" }, "enabled": { "description": "__Read-only__ Whether you enabled the reputation profile.", "readOnly": true, "type": "boolean" }, "id": { "description": "__Read-only__ Uniquely identifies the reputation profile.", "readOnly": true, "type": "integer" }, "name": { "description": "The name you assigned to the reputation profile.", "type": "string" }, "sharedIpHandling": { "description": "Identifies the IP sharing. Either `NON_SHARED`, `SHARED_ONLY`, `BOTH`.", "enum": [ "NON_SHARED", "SHARED_ONLY", "BOTH" ], "type": "string" }, "threshold": { "description": "The threshold when the profile to triggers.", "type": "number" } }, "required": [ "name", "context", "threshold", "sharedIpHandling" ], "type": "object", "x-akamai": { "file-path": "schemas/reputation-profile.yaml" } } } }, "description": "Successfully updated reputation profile." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to reputation profile in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or reputation profile wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Modify a Reputation Profile", "tags": [ "Shared resources: Reputation profiles" ] }, "delete": { "description": "Delete a reputation profile. You can't delete a reputation profile that is actively in use. To delete the reputation profile, first activate an older configuration version or create a new version without that policy in place. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/delete-reputation-profile" }, "operationId": "delete-reputation-profile", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "204": { "content": {}, "description": "Successfully deleted the reputation profile." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to reputation profile in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or reputation profile wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Remove a Reputation Profile", "tags": [ "Shared resources: Reputation profiles" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for each reputation profile.", "example": "{{reputationProfileId}}", "in": "path", "name": "reputationProfileId", "required": true, "schema": { "example": 112231, "type": "integer" }, "x-akamai": { "file-path": "parameters/reputation-profile-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/config-reputation-profile.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/reputation-profiles/{reputationProfileId}" } }, "/configs/{configId}/versions/{versionNumber}/security-policies": { "post": { "description": "Creates a new copy of an existing security policy or creates a new security policy from scratch when you don't specify a policy to clone in the request. To create a new security policy, leave `createFromSecurityPolicy` empty in your request. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/post-policy" }, "operationId": "post-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "createFromSecurityPolicy": "1_35752", "policyName": "Open Cloned IV 2", "policyPrefix": "bt17" }, "schema": { "additionalProperties": false, "description": "Specifies the settings for a new clone of a security policy.", "properties": { "createFromSecurityPolicy": { "description": "The unique identifier (`policyId`) of the source policy to create the new policy from.", "example": "{{createFromSecurityPolicy}}", "type": "string" }, "defaultSettings": { "description": "The default settings on the policy, `true` by default.", "example": "{{defaultSettings}}", "type": "string" }, "policyName": { "description": "The name of the security policy. If not provided, the system generates a name automatically with the pattern `clone from `.", "example": "{{policyName}}", "type": "string" }, "policyPrefix": { "description": "The four-character alphanumeric string prefix for the `policyId`. If not provided, the prefix is autogenerated.", "example": "{{policyPrefix}}", "type": "string" }, "source": { "description": "The source for the new the policy. If not provided, the source is blank. Other values are 'default' or the source security policy ID.", "example": "{{source}}", "nullable": true, "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/policy-clone.yaml" } } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "configId": 77653, "policyId": "bt17_75755", "policyName": "Open Cloned IV 2", "policySecurityControls": { "applyApiConstraints": true, "applyApplicationLayerControls": true, "applyBotmanControls": true, "applyNetworkLayerControls": true, "applyRateControls": true, "applyReputationControls": true, "applySlowPostControls": false }, "version": 144 }, "schema": { "additionalProperties": false, "description": "Specifies the details of a security policy.", "properties": { "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "hasRatePolicyWithApiKey": { "description": "Indicates whether this security policy has a rate policy which has `API_KEY` as a client identifier. APIs are managed using the [API Endpoint Definition API](https://techdocs.akamai.com/api-gateway/reference/api).", "type": "boolean" }, "policyId": { "description": "Uniquely identifies the security policy.", "type": "string" }, "policyName": { "description": "The name of the security policy.", "type": "string" }, "policySecurityControls": { "additionalProperties": false, "description": "The status of security controls defined in 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" } }, "required": [ "applyApplicationLayerControls", "applyNetworkLayerControls", "applyRateControls", "applyReputationControls", "applyBotmanControls", "applyApiConstraints", "applySlowPostControls" ], "type": "object", "x-akamai": { "file-path": "schemas/security-controls.yaml" } }, "version": { "description": "The version number of the security configuration.", "type": "integer" } }, "required": [ "hasRatePolicyWithApiKey", "policyId", "policyName", "policySecurityControls" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-2.yaml" } } } }, "description": "Successfully created security policy." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Clone or Create a Security Policy", "tags": [ "General policy settings" ] }, "get": { "description": "Returns a list of security policies available for the specified security configuration. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-policies" }, "operationId": "get-policies", "parameters": [ { "description": "If `true`, returns all security policies in the configuration version that don't have a match target. If `false`, returns all security policies in the configuration version.", "example": "{{notMatched}}", "in": "query", "name": "notMatched", "schema": { "example": true, "type": "boolean" }, "x-akamai": { "file-path": "parameters/not-matched-query.yaml" } }, { "description": "When `true`, the results contain detailed information on versions. With the default `false`, the results contain summary information on versions.", "example": "{{detail}}", "in": "query", "name": "detail", "schema": { "default": false, "example": true, "type": "boolean" }, "x-akamai": { "file-path": "parameters/detail-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "configId": 51074, "policies": [ { "hasRatePolicyWithApiKey": true, "policyId": "NN3_61", "policyName": "NN FW 3", "policySecurityControls": { "applyApiConstraints": false, "applyApplicationLayerControls": true, "applyBotmanControls": true, "applyNetworkLayerControls": true, "applyRateControls": false, "applyReputationControls": false, "applySlowPostControls": false } }, { "hasRatePolicyWithApiKey": false, "policyId": "NN_2", "policyName": "NN FW 1", "policySecurityControls": { "applyApiConstraints": false, "applyApplicationLayerControls": true, "applyBotmanControls": false, "applyNetworkLayerControls": true, "applyRateControls": false, "applyReputationControls": false, "applySlowPostControls": false } }, { "hasRatePolicyWithApiKey": true, "policyId": "NN-2_3", "policyName": "NN FW 2", "policySecurityControls": { "applyApiConstraints": false, "applyApplicationLayerControls": true, "applyBotmanControls": false, "applyNetworkLayerControls": true, "applyRateControls": false, "applyReputationControls": false, "applySlowPostControls": false } } ], "version": 8 }, "schema": { "additionalProperties": false, "description": "Contains details of a security policy that you can apply to a configuration.", "properties": { "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "policies": { "description": "A list of security policies in this configuration version.", "items": { "additionalProperties": false, "description": "Specifies the details of a security policy.", "properties": { "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "hasRatePolicyWithApiKey": { "description": "Indicates whether this security policy has a rate policy which has `API_KEY` as a client identifier. APIs are managed using the [API Endpoint Definition API](https://techdocs.akamai.com/api-gateway/reference/api).", "type": "boolean" }, "policyId": { "description": "Uniquely identifies the security policy.", "type": "string" }, "policyName": { "description": "The name of the security policy.", "type": "string" }, "policySecurityControls": { "additionalProperties": false, "description": "The status of security controls defined in 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" } }, "required": [ "applyApplicationLayerControls", "applyNetworkLayerControls", "applyRateControls", "applyReputationControls", "applyBotmanControls", "applyApiConstraints", "applySlowPostControls" ], "type": "object", "x-akamai": { "file-path": "schemas/security-controls.yaml" } }, "version": { "description": "The version number of the security configuration.", "type": "integer" } }, "required": [ "policyId", "policyName", "hasRatePolicyWithApiKey", "policySecurityControls" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-1.yaml" } }, "type": "array" }, "version": { "description": "The security configuration's version number.", "type": "integer" } }, "required": [ "configId", "policies", "version" ], "type": "object", "x-akamai": { "file-path": "schemas/security-policies.yaml" } } } }, "description": "Successfully returned resource." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn't exist, or the URL is malformed.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security List Security Policies", "tags": [ "General policy settings" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } } ], "x-akamai": { "file-path": "paths/policies.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}": { "get": { "description": "Returns the specified security policy. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-policy" }, "operationId": "get-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "configId": 77653, "policyId": "bt17_75755", "policyName": "Open Cloned IV 2", "policySecurityControls": { "applyApiConstraints": true, "applyApplicationLayerControls": true, "applyBotmanControls": true, "applyNetworkLayerControls": true, "applyRateControls": true, "applyReputationControls": true, "applySlowPostControls": false }, "version": 144 }, "schema": { "additionalProperties": false, "description": "Specifies the details of a security policy.", "properties": { "configId": { "description": "Uniquely identifies the security configuration.", "type": "integer" }, "hasRatePolicyWithApiKey": { "description": "Indicates whether this security policy has a rate policy which has `API_KEY` as a client identifier. APIs are managed using the [API Endpoint Definition API](https://techdocs.akamai.com/api-gateway/reference/api).", "type": "boolean" }, "policyId": { "description": "Uniquely identifies the security policy.", "type": "string" }, "policyName": { "description": "The name of the security policy.", "type": "string" }, "policySecurityControls": { "additionalProperties": false, "description": "The status of security controls defined in 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" } }, "required": [ "applyApplicationLayerControls", "applyNetworkLayerControls", "applyRateControls", "applyReputationControls", "applyBotmanControls", "applyApiConstraints", "applySlowPostControls" ], "type": "object", "x-akamai": { "file-path": "schemas/security-controls.yaml" } }, "version": { "description": "The version number of the security configuration.", "type": "integer" } }, "required": [ "policyId", "policyName", "hasRatePolicyWithApiKey", "policySecurityControls" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-1.yaml" } } } }, "description": "Successfully returned security policy." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to security policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or security policy wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Get a Security Policy", "tags": [ "General policy settings" ] }, "put": { "description": "Update the name of a specific security policy. Currently, you can only edit a security policy's name with this operation, although other editable fields will be available in the future. For any changes to settings within a security policy, run the modify operation for that specific setting. For example, to update your IP/Geo settings, run [Update IP/Geo Firewall settings](https://techdocs.akamai.com/application-security/reference/put-policy-ip-geo-firewall). _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-policy" }, "operationId": "put-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "policyName": "updated policy name" }, "schema": { "type": "string", "x-akamai": { "file-path": "schemas/policy-put-1.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "policyName": "updated policy name" }, "schema": { "additionalProperties": false, "description": "Specifies the details of a security policy.", "properties": { "policyName": { "description": "The name of the security policy.", "type": "string" } }, "required": [ "policyName" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-put-2.yaml" } } } }, "description": "Successfully updated security policy name." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to security policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or security policy action wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Modify a Security Policy", "tags": [ "General policy settings" ] }, "delete": { "description": "Delete the specified security policy. You can't delete a security policy that is actively in use. Before you run this operation, create a new version of your security configuration and omit the policy you want to delete. Once you have activated your new configuration version, you can delete the security policy you omitted from the new version. One way to create a new configuration quickly is to run [Clone a configuration version](https://techdocs.akamai.com/application-security/reference/post-config-versions), remove the policy you want to delete, then PUT the edited object back to [Modify a security policy](https://techdocs.akamai.com/application-security/reference/put-policy). _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/delete-policy" }, "operationId": "delete-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "204": { "content": {}, "description": "Successfully deleted the security policy." }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to security policy in this security configuration.", "x-akamai": { "file-path": "errors/403.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration version or security policy wasn't found.", "x-akamai": { "file-path": "errors/404.yaml" } } }, "summary": "Akamai API Security Remove a Security Policy", "tags": [ "General policy settings" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/evasive-path-match": { "get": { "description": "Lists the evasive path match setting for a security policy. Evasive path match is off by default. This setting applies at the security policy level and overrides the setting at the configuration level on a per-policy basis. _Product:_ Web Application Protector, Kona Site Defender.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-evasive-path-match" }, "operationId": "get-evasive-path-match", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "enablePathMatch": true }, "schema": { "additionalProperties": false, "description": "The GET Response JSON for Security Profile Evasive Path Match.", "properties": { "enablePathMatch": { "description": "When enabled, evaluates requests with the following list of characters removed ` & ! $ ' ( ) + , [ ] * @ ^ \\ \"` and `.` only when it appears as a trailing character at the end of the URL.", "type": "boolean" } }, "required": [ "enablePathMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-evasive-path-match-get-200.yaml" } } } }, "description": "Successfully retrieved the evasive path match settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get Evasive Path Match Settings", "tags": [ "Evasive path match" ] }, "put": { "description": "Enable, disable, or update evasive path match setting for a security policy. This operation applies at the security policy level and overrides the setting at the configuration level on a per-policy basis. _Product:_ Web Application Protector, Kona Site Defender.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-evasive-path-match" }, "operationId": "put-evasive-path-match", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "enablePathMatch": true }, "schema": { "additionalProperties": false, "description": "The PUT Request JSON for Security Profile Evasive Path Match.", "properties": { "enablePathMatch": { "description": "When enabled, evaluates requests with the following list of characters removed ` & ! $ ' ( ) + , [ ] * @ ^ \\ \"` and `.` only when it appears as a trailing character at the end of the URL.", "example": "{{enablePathMatch}}", "type": "boolean" } }, "required": [ "enablePathMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-evasive-path-match-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "enablePathMatch": true }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for Security Profile Evasive Path Match.", "properties": { "enablePathMatch": { "description": "When enabled, evaluates requests with the following list of characters removed ` & ! $ ' ( ) + , [ ] * @ ^ \\ \"` and `.` only when it appears as a trailing character at the end of the URL.", "type": "boolean" } }, "required": [ "enablePathMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-evasive-path-match-put-200.yaml" } } } }, "description": "Successfully updated the evasive path match setting." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Evasive Path Match Settings", "tags": [ "Evasive path match" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-evasive-path-match.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/evasive-path-match" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/logging": { "get": { "description": "List a security policy's settings for HTTP header logging. HTTP header logging is on by default, and in most cases you should leave it enabled. You can filter requests by header type, including or excluding requests with a specific header, or by cookie. This operation applies at the security policy level, and overrides the HTTP header log settings at the configuration level on a per-policy basis. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-policies-logging" }, "operationId": "get-policies-logging", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "allowSampling": true, "cookies": { "type": "all" }, "customHeaders": { "type": "exclude", "values": [ "csdasdad" ] }, "override": true, "standardHeaders": { "type": "only", "values": [ "Accept" ] } }, "schema": { "additionalProperties": false, "description": "The GET Response JSON for Security Policy HTTP Header Logging.", "properties": { "allowSampling": { "description": "Enables HTTP Header logging.", "type": "boolean" }, "cookies": { "additionalProperties": false, "description": "Settings for cookie headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "customHeaders": { "additionalProperties": false, "description": "Settings for custom headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "override": { "description": "Enables logging override for security policy.", "type": "boolean" }, "standardHeaders": { "additionalProperties": false, "description": "Settings for standard headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } } }, "required": [ "override", "allowSampling", "cookies", "customHeaders", "standardHeaders" ], "type": "object", "x-akamai": { "file-path": "schemas/http-header-logging-get-200.yaml" } } } }, "description": "Successfully retrieved the policy HTTP Header Logging settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get HTTP Header Log Settings", "tags": [ "HTTP header logs" ] }, "put": { "description": "Enable, disable, or update HTTP header logging settings for a specific policy. This operation applies at the security policy level, and overrides the HTTP header log settings at the configuration level on a per-policy basis. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-policies-logging" }, "operationId": "put-policies-logging", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "allowSampling": true, "cookies": { "type": "all" }, "customHeaders": { "type": "exclude", "values": [ "csdasdad" ] }, "override": true, "standardHeaders": { "type": "only", "values": [ "Accept" ] } }, "schema": { "additionalProperties": false, "description": "Describes the security policy HTTP header-logging settings.", "properties": { "allowSampling": { "description": "Whether you enabled the header data sampling.", "example": "{{allowSampling}}", "type": "boolean" }, "cookies": { "additionalProperties": false, "description": "When enabled, filter requests whose headers you log by cookie.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "customHeaders": { "additionalProperties": false, "description": "When enabled, filter requests you log by custom headers you specify.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "override": { "description": "When enabled, your security configuration won't log any header data for security events triggered by settings in the security configuration.", "example": "{{override}}", "type": "boolean" }, "standardHeaders": { "additionalProperties": false, "description": "When enabled, filter requests you log by standard headers you specify.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } } }, "required": [ "override" ], "type": "object", "x-akamai": { "file-path": "schemas/http-header-logging-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "allowSampling": true, "cookies": { "type": "all" }, "customHeaders": { "type": "exclude", "values": [ "csdasdad" ] }, "override": true, "standardHeaders": { "type": "only", "values": [ "Accept" ] } }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for Security Policy HTTP Header Logging.", "properties": { "allowSampling": { "description": "Enables HTTP Header logging.", "type": "boolean" }, "cookies": { "additionalProperties": false, "description": "Settings for cookie headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "customHeaders": { "additionalProperties": false, "description": "Settings for custom headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } }, "override": { "description": "Enables logging override for security policy.", "type": "boolean" }, "standardHeaders": { "additionalProperties": false, "description": "Settings for standard headers.", "properties": { "type": { "description": "Use `all` to log headers for all requests with any standard header. Use `none` to exclude headers for any requests with any standard header from logging. Use `exclude` to exclude headers for requests with specific standard headers. Use `only` to include headers for requests with specific standard headers.", "enum": [ "all", "none", "exclude", "only" ], "type": "string" }, "values": { "description": "List of headers to include or exclude depending on the `type` setting.", "items": { "type": "string" }, "type": "array" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/logging-header-setting.yaml" } } }, "required": [ "override", "allowSampling", "cookies", "customHeaders", "standardHeaders" ], "type": "object", "x-akamai": { "file-path": "schemas/http-header-logging-put-200.yaml" } } } }, "description": "Successfully updated the policy HTTP Header Logging settings:." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify HTTP Header Log Settings", "tags": [ "HTTP header logs" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-logging.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/logging" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/logging/attack-payload": { "get": { "description": "List a security policy's settings for attack payload logging. Attack payload logging is on by default, and in most cases you should leave it enabled. When set to `NONE`, the request body and response body appear as `redacted` in the log. For example, `JSON_PAIRS:redacted`. This operation applies at the security policy level, and overrides the attack payload logging settings at the configuration level on a per-policy basis. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-policies-attack-payload-logging" }, "operationId": "get-policies-attack-payload-logging", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "enabled": true, "override": true, "requestBody": { "type": "ATTACK_PAYLOAD" }, "responseBody": { "type": "NONE" } }, "schema": { "additionalProperties": false, "description": "The GET Response JSON for Security Policy attack payload logging.", "properties": { "enabled": { "description": "Whether attack payload logging is enabled.", "type": "boolean" }, "override": { "description": "When `true`, use the security policy's attack payload log settings instead of the settings at the configuration level.", "type": "boolean" }, "requestBody": { "additionalProperties": false, "description": "The settings for how our network logs attack payloads in request bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "responseBody": { "additionalProperties": false, "description": "The settings for how our network logs attack payloads in response bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } } }, "required": [ "override", "enabled", "requestBody", "responseBody" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-attack-payload-logging-get-200.yaml" } } } }, "description": "Successfully retrieved the policy attack payload logging settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get Attack Payload Logging Settings for a Policy", "tags": [ "Attack payload logs" ] }, "put": { "description": "Update attack payload logging settings for a specific policy. This operation applies at the security policy level, and overrides the attack payload logging settings at the configuration level on a per-policy basis. When set to `NONE`, the request body and response body appear as `redacted` in the log. For example, `JSON_PAIRS:redacted`. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-policies-attack-payload-logging" }, "operationId": "put-policies-attack-payload-logging", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "enabled": true, "override": true, "requestBody": { "type": "ATTACK_PAYLOAD" }, "responseBody": { "type": "NONE" } }, "schema": { "additionalProperties": false, "description": "Describes the security policy attack payload logging settings.", "properties": { "enabled": { "description": "When enabled, log attack payloads in requests and responses.", "example": "{{enabled}}", "type": "boolean" }, "override": { "description": "When `true`, use the security policy's attack payload logging settings instead of the settings at the configuration level. Note that when `type` is `NONE`, the request body and response body show as redacted in the log. For example, `JSON_PAIRS:redacted`.", "example": "{{override}}", "type": "boolean" }, "requestBody": { "additionalProperties": false, "description": "The settings for how Akamai's network logs attack payloads in request bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "responseBody": { "additionalProperties": false, "description": "The settings for how Akamai's network logs attack payloads in response bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } } }, "required": [ "override", "enabled", "requestBody", "responseBody" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-attack-payload-logging-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "enabled": true, "override": true, "requestBody": { "type": "ATTACK_PAYLOAD" }, "responseBody": { "type": "NONE" } }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for Security Policy attack payload logging.", "properties": { "enabled": { "description": "When enabled, log attack payloads in requests and responses.", "type": "boolean" }, "override": { "description": "When `true`, use the security policy's attack payload logging settings instead of the settings at the configuration level. Note that when `type` is `NONE`, the request body and response body show as redacted in the log. For example, `JSON_PAIRS:redacted`.", "type": "boolean" }, "requestBody": { "additionalProperties": false, "description": "The settings for how our network logs attack payloads in request bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } }, "responseBody": { "additionalProperties": false, "description": "The settings for how our network logs attack payloads in response bodies.", "properties": { "type": { "description": "Use `ATTACK_PAYLOAD` to log attack payloads for all requests, or use `NONE` if you don't want to log the attack payloads. Note that when set to `NONE`, you'll see `redacted` in the logging information instead of a blank space or sensitive information. For example, `JSON_PAIRS:redacted`.", "enum": [ "ATTACK_PAYLOAD", "NONE" ], "type": "string" } }, "required": [ "type" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-payload-logging.yaml" } } }, "required": [ "override", "enabled", "requestBody", "responseBody" ], "type": "object", "x-akamai": { "file-path": "schemas/policy-attack-payload-logging-put-200.yaml" } } } }, "description": "Successfully updated the policy attack payload logging settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Attack Payload Logging Settings for a Policy", "tags": [ "Attack payload logs" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-logging-attack-payload.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/logging/attack-payload" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/pragma-header": { "get": { "description": "Return the `Pragma` header's excluded conditions. By default, the `Pragma` header debugging information is stripped from an operation's response except in cases where you set `excludeCondition`. This operation applies at the security policy level. To modify `Pragma` header settings at the security configuration level, run [List Pragma header settings for a configuration](https://techdocs.akamai.com/application-security/reference/get-advanced-settings-pragma-header). _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-policies-pragma-header" }, "operationId": "get-policies-pragma-header", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "action": "REMOVE", "conditionOperator": "AND", "excludeCondition": [ { "header": "accept", "positiveMatch": true, "type": "requestHeaderValueMatch", "value": [ "application/json", "application/xml" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "ipMatch", "useHeaders": false, "value": [ "192.0.2.1", "192.0.2.250/24" ] }, { "positiveMatch": true, "type": "networkList", "value": [ "123_3ALLOWEDIPS" ] }, { "name": "type", "positiveMatch": true, "type": "queryParamNameValueMatch", "value": [ "type A", "type B" ], "valueCase": true, "valueWildcard": false } ] }, "schema": { "additionalProperties": false, "description": "Describes which headers you can exclude from inspection when you pass a `Pragma` debug header.", "properties": { "action": { "description": "The action to perform when a user passes a `Pragma` header. The only action currently supported is `REMOVE`.", "enum": [ "REMOVE" ], "type": "string" }, "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "type": "string" }, "excludeCondition": { "description": "The conditions to exclude from the default `remove` action. Any condition you set in this object appears in the `Pragma` header debug response object.", "items": { "additionalProperties": false, "properties": { "header": { "description": "The name of the request header. In the example, `accept`.", "type": "string" }, "name": { "description": "The name of the request header to ignore from inspection. In the example, `type`.", "type": "string" }, "positiveMatch": { "description": "When `true`, matches the selected values. When `false`, matches on anything outside the selected values.", "type": "boolean" }, "type": { "description": "The header value you want to appear in the response. You can choose from `requestHeaderValueMatch`, `ipMatch`, `networkList`, or `queryParamNameValueMatch`.", "enum": [ "requestHeaderValueMatch", "ipMatch", "networkList", "queryParamNameValueMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include the `X-Forwarded-For` header (XFF) header. This only applies when the condition `type` is `IP_MATCH` or `NETWORK_LIST`.", "type": "boolean" }, "value": { "description": "List of header values, query parameter values, IP addresses, or names of network lists. To manage networks lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api).", "items": { "type": "string" }, "type": "array" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header value. This only applies when the condition `type` is `REQUEST_HEADER_VALUE_MATCH`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header value includes wildcards, such as `*` or `?`. This only applies to the `REQUEST_HEADER_VALUE_MATCH` condition type.", "type": "boolean" } }, "required": [ "type", "positiveMatch", "value" ], "type": "object" }, "type": "array" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/pragma-header.yaml" } } } }, "description": "Successfully retrieved the Pragma Header settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get Pragma Settings for a Security Policy", "tags": [ "Pragma settings" ] }, "put": { "description": "Update the pragma header excluded conditions. By default, the `Pragma` header debugging information is stripped from an operation's response except in cases where you set `excludeCondition`. To remove existing settings, submit your request with an empty payload `{}` at the top-level of an object. For example, submit `\"type\": \"{}\"` in the request body to remove the `requestHeaderValueMatch` from the excluded conditions. If you submit an empty payload for each member, you'll clear all of your condition settings. To modify `Pragma` header settings at the security configuration level, run [Modify Pragma header settings for a configuration](https://techdocs.akamai.com/application-security/reference/put-advanced-settings-pragma-header) . _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-policies-pragma-header" }, "operationId": "put-policies-pragma-header", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "action": "REMOVE", "conditionOperator": "AND", "excludeCondition": [ { "header": "accept", "positiveMatch": true, "type": "requestHeaderValueMatch", "value": [ "application/json", "application/xml" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "ipMatch", "useHeaders": false, "value": [ "192.0.2.1", "192.0.2.250/24" ] }, { "positiveMatch": true, "type": "networkList", "value": [ "123_3ALLOWEDIPS" ] }, { "name": "type", "positiveMatch": true, "type": "queryParamNameValueMatch", "value": [ "type A", "type B" ], "valueCase": true, "valueWildcard": false } ] }, "schema": { "additionalProperties": false, "description": "Describes which headers you can exclude from inspection when you pass a `Pragma` debug header.", "properties": { "action": { "description": "The action to perform when a user passes a `Pragma` header. The only action currently supported is `REMOVE`.", "enum": [ "REMOVE" ], "example": "{{action}}", "type": "string" }, "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "example": "{{conditionOperator}}", "type": "string" }, "excludeCondition": { "description": "The conditions to exclude from the default `remove` action. Any condition you set in this object appears in the `Pragma` header debug response object.", "items": { "additionalProperties": false, "properties": { "header": { "description": "The name of the request header. In the example, `accept`.", "type": "string" }, "name": { "description": "The name of the request header to ignore from inspection. In the example, `type`.", "type": "string" }, "positiveMatch": { "description": "When `true`, matches the selected values. When `false`, matches on anything outside the selected values.", "type": "boolean" }, "type": { "description": "The header value you want to appear in the response. You can choose from `requestHeaderValueMatch`, `ipMatch`, `networkList`, or `queryParamNameValueMatch`.", "enum": [ "requestHeaderValueMatch", "ipMatch", "networkList", "queryParamNameValueMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include the `X-Forwarded-For` header (XFF) header. This only applies when the condition `type` is `IP_MATCH` or `NETWORK_LIST`.", "type": "boolean" }, "value": { "description": "List of header values, query parameter values, IP addresses, or names of network lists. To manage networks lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api).", "items": { "type": "string" }, "type": "array" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header value. This only applies when the condition `type` is `REQUEST_HEADER_VALUE_MATCH`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header value includes wildcards, such as `*` or `?`. This only applies to the `REQUEST_HEADER_VALUE_MATCH` condition type.", "type": "boolean" } }, "required": [ "type", "positiveMatch", "value" ], "type": "object" }, "type": "array" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/pragma-header.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "action": "REMOVE", "conditionOperator": "AND", "excludeCondition": [ { "header": "accept", "positiveMatch": true, "type": "requestHeaderValueMatch", "value": [ "application/json", "application/xml" ], "valueCase": true, "valueWildcard": true }, { "positiveMatch": true, "type": "ipMatch", "useHeaders": false, "value": [ "192.0.2.1", "192.0.2.250/24" ] }, { "positiveMatch": true, "type": "networkList", "value": [ "123_3ALLOWEDIPS" ] }, { "name": "type", "positiveMatch": true, "type": "queryParamNameValueMatch", "value": [ "type A", "type B" ], "valueCase": true, "valueWildcard": false } ] }, "schema": { "additionalProperties": false, "description": "Describes which headers you can exclude from inspection when you pass a `Pragma` debug header.", "properties": { "action": { "description": "The action to perform when a user passes a `Pragma` header. The only action currently supported is `REMOVE`.", "enum": [ "REMOVE" ], "type": "string" }, "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "type": "string" }, "excludeCondition": { "description": "The conditions to exclude from the default `remove` action. Any condition you set in this object appears in the `Pragma` header debug response object.", "items": { "additionalProperties": false, "properties": { "header": { "description": "The name of the request header. In the example, `accept`.", "type": "string" }, "name": { "description": "The name of the request header to ignore from inspection. In the example, `type`.", "type": "string" }, "positiveMatch": { "description": "When `true`, matches the selected values. When `false`, matches on anything outside the selected values.", "type": "boolean" }, "type": { "description": "The header value you want to appear in the response. You can choose from `requestHeaderValueMatch`, `ipMatch`, `networkList`, or `queryParamNameValueMatch`.", "enum": [ "requestHeaderValueMatch", "ipMatch", "networkList", "queryParamNameValueMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include the `X-Forwarded-For` header (XFF) header. This only applies when the condition `type` is `IP_MATCH` or `NETWORK_LIST`.", "type": "boolean" }, "value": { "description": "List of header values, query parameter values, IP addresses, or names of network lists. To manage networks lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api).", "items": { "type": "string" }, "type": "array" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header value. This only applies when the condition `type` is `REQUEST_HEADER_VALUE_MATCH`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header value includes wildcards, such as `*` or `?`. This only applies to the `REQUEST_HEADER_VALUE_MATCH` condition type.", "type": "boolean" } }, "required": [ "type", "positiveMatch", "value" ], "type": "object" }, "type": "array" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/pragma-header.yaml" } } } }, "description": "Successfully updated the Pragma header settings:." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Pragma Settings for a Security Policy", "tags": [ "Pragma settings" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-pragma-header.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/pragma-header" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/request-body": { "get": { "description": "__Beta__ Return request body inspection limit settings for a security policy. Contact your account team if you'd like to run this operation. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-policies-request-body" }, "operationId": "get-policies-request-body", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "requestBodySizeInKB": 16 }, "schema": { "additionalProperties": false, "description": "Contains the size limits for a request body.", "properties": { "requestBodyInspectionLimitInKB": { "description": "Request body size in KB, either `8`, `16`, or `32` as string-formatted integers, or `default` to use Akamai's best practice value.", "enum": [ "8", "16", "32", "default" ], "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/request-body.yaml" } } } }, "description": "Successfully retrieved the request body inspection limit settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get Request Body Inspection Limit Settings for a Security Policy", "tags": [ "Request body inspection limits" ], "x-akamai": { "status": "BETA" } }, "put": { "description": "__Beta__ Update inspection settings for a security policy. Inspect request bodies up to a certain size. In exceptional cases, you can change the default value to a set limit: `8`, `16`, or `32` KB. Contact your account team if you'd like to run this operation. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-policies-request-body" }, "operationId": "put-policies-request-body", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "requestBodySizeInKB": 16 }, "schema": { "additionalProperties": false, "description": "Contains the size limits for a request body.", "properties": { "requestBodyInspectionLimitInKB": { "description": "Request body size in KB, either `8`, `16`, or `32` as string-formatted integers, or `default` to use Akamai's best practice value.", "enum": [ "8", "16", "32", "default" ], "example": "{{requestBodyInspectionLimitInKB}}", "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/request-body.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "requestBodySizeInKB": 16 }, "schema": { "additionalProperties": false, "description": "Contains the size limits for a request body.", "properties": { "requestBodyInspectionLimitInKB": { "description": "Request body size in KB, either `8`, `16`, or `32` as string-formatted integers, or `default` to use Akamai's best practice value.", "enum": [ "8", "16", "32", "default" ], "type": "string" } }, "type": "object", "x-akamai": { "file-path": "schemas/request-body.yaml" } } } }, "description": "Successfully updated the request body inspection limit settings." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify Request Body Size Settings for a Security Policy", "tags": [ "Request body inspection limits" ], "x-akamai": { "status": "BETA" } }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-request-body.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/advanced-settings/request-body" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/api-endpoints": { "get": { "description": "List the API endpoints associated with a security policy. This operation only lists the endpoints. To manage them, use [Register an endpoint](https://techdocs.akamai.com/api-gateway/reference/post-endpoints) from the API Endpoint Definition API. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-api-endpoints" }, "operationId": "get-api-endpoints", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "apiEndpoints": [ { "apiEndPointHosts": [ "sg.akamai.com" ], "basePath": "/v1/orders", "id": 619183, "name": "Orders", "productionVersion": { "status": "ACTIVE", "versionNumber": 1 }, "requestConstraintsEnabled": false, "stagingVersion": { "status": "ACTIVE", "versionNumber": 1 } }, { "apiEndPointHosts": [ "sg.akamai.com" ], "basePath": "/v1/catalog", "id": 624913, "name": "Catalog", "productionVersion": { "status": "ACTIVE", "versionNumber": 1 }, "requestConstraintsEnabled": true, "stagingVersion": { "status": "ACTIVE", "versionNumber": 1 } } ] }, "schema": { "additionalProperties": false, "description": "Specifies each API's basic metadata and current deployment status.", "properties": { "apiEndpoints": { "description": "The list of API Endpoints.", "items": { "additionalProperties": false, "description": "API Endpoint JSON Properties.", "properties": { "apiEndPointHosts": { "description": "The hosts associated with this API endpoint.", "items": { "description": "The set of hostnames that allow access to this API.", "type": "string" }, "type": "array" }, "apiResources": { "description": "A list of this API endpoint's functional URL patterns.", "items": { "additionalProperties": false, "properties": { "id": { "description": "A unique identifier an API resource.", "type": "integer" }, "name": { "description": "The name for an API resource.", "type": "string" }, "path": { "description": "The path for an API resource.", "type": "string" } }, "type": "object" }, "type": "array" }, "basePath": { "description": "The API endpoint's base path.", "type": "string" }, "categories": { "description": "The categories this API endpoint belongs to.", "items": { "additionalProperties": false, "properties": { "categoryId": { "description": "A unique identifier for a category.", "type": "integer" }, "categoryName": { "description": "The name for a category.", "type": "string" } }, "type": "object" }, "type": "array" }, "id": { "description": "A unique identifier for an API endpoint.", "type": "integer" }, "name": { "description": "The name for this API endpoint.", "type": "string" }, "productionVersion": { "additionalProperties": false, "description": "Summarizes this API endpoint's current deployment on Akamai's production network.", "properties": { "status": { "description": "The production status.", "type": "string" }, "versionNumber": { "description": "The production version number.", "nullable": true, "type": "integer" } }, "type": "object" }, "requestConstraintsEnabled": { "description": "Whether to allow API constraints for this endpoint.", "type": "boolean" }, "stagingVersion": { "additionalProperties": false, "description": "Summarizes this API endpoint's current deployment on Akamai's staging network.", "properties": { "status": { "description": "The staging status.", "type": "string" }, "versionNumber": { "description": "The staging version number.", "nullable": true, "type": "integer" } }, "type": "object" } }, "type": "object", "x-akamai": { "file-path": "schemas/api-endpoint.yaml" } }, "type": "array" } }, "required": [ "apiEndpoints" ], "type": "object", "x-akamai": { "file-path": "schemas/api-endpoints-get-200.yaml" } } } }, "description": "Successfully retrieved API endpoints." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security List API Endpoints", "tags": [ "API endpoints" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-api-endpoints.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/api-endpoints" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/api-request-constraints": { "get": { "description": "Return a list of APIs with their constraints and associated actions. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-api-request-constraints" }, "operationId": "get-api-request-constraints", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "apiEndpoints": [ { "action": "alert", "id": 1941 }, { "action": "alert", "id": 1942 }, { "action": "alert", "id": 1943 } ] }, "schema": { "additionalProperties": false, "description": "The Response JSON for API Request Constraints action.", "properties": { "apiEndpoints": { "description": "The list of API match targets action set in the security policy.", "items": { "additionalProperties": false, "properties": { "action": { "description": "The action to take for the requests that violate the constraints.", "type": "string" }, "id": { "description": "Uniquely identifies the API match target.", "type": "integer" } }, "required": [ "action", "id" ], "type": "object" }, "type": "array" } }, "required": [ "apiEndpoints" ], "type": "object", "x-akamai": { "file-path": "schemas/api-request-constraints-action-200.yaml" } } } }, "description": "Successfully retrieved API match target actions." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security List API Request Constraints and Actions", "tags": [ "API request constraints" ] }, "put": { "description": "Update what action to take when any API request constraint triggers. Use `alert` to record the trigger of the event, `deny` to block the request, or `customDenyId` to apply a custom deny response. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-api-request-constraints" }, "operationId": "put-api-request-constraints", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "action": "alert" }, "schema": { "additionalProperties": false, "description": "Sets various API constraint actions, which apply when an API constraint is triggered by a request.", "properties": { "action": { "description": "The action to assign to API request constraints, either `alert`, `deny`, or `none`. Use `deny_custom_{custom_deny_id}` to apply a custom action instead of Akamai's default. Run [Modify a custom deny action](https://techdocs.akamai.com/application-security/reference/put-custom-deny) to manage your custom deny actions. If the action is `none`, the rule is inactive in the policy.", "enum": [ "alert", "deny", "none" ], "example": "{{action}}", "type": "string" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/api-request-constraints-action-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "apiEndpoints": [ { "action": "alert", "id": 1941 }, { "action": "alert", "id": 1942 }, { "action": "alert", "id": 1943 } ] }, "schema": { "additionalProperties": false, "description": "The Response JSON for API Request Constraints action.", "properties": { "apiEndpoints": { "description": "The list of API match targets action set in the security policy.", "items": { "additionalProperties": false, "properties": { "action": { "description": "The action to take for the requests that violate the constraints.", "type": "string" }, "id": { "description": "Uniquely identifies the API match target.", "type": "integer" } }, "required": [ "action", "id" ], "type": "object" }, "type": "array" } }, "required": [ "apiEndpoints" ], "type": "object", "x-akamai": { "file-path": "schemas/api-request-constraints-action-200.yaml" } } } }, "description": "Successfully updated the API Request Constraint action for all APIs covered by match target." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify the Request Constraint Action for All APIs", "tags": [ "API request constraints" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-api-request-constraints.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/api-request-constraints" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/api-request-constraints/{apiId}": { "put": { "description": "Update what action to take when the API request constraint triggers. This operation modifies an individual API constraint action. To use this operation, run [List all API request constraints and actions](https://techdocs.akamai.com/application-security/reference/get-api-request-constraints) and pick an API from the response list. Use `alert` to record the trigger of the event, `deny` to block the request, or `none` to take no action. Currently the only member in the API Request Constraints object is `action`. _Products:_ Kona Site Defender, App & API Protector with the Advanced Security module.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-api-request-constraints-api" }, "operationId": "put-api-request-constraints-api", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "action": "alert" }, "schema": { "additionalProperties": false, "description": "Sets various API constraint actions, which apply when an API constraint is triggered by a request.", "properties": { "action": { "description": "The action to assign to API request constraints, either `alert`, `deny`, or `none`. Use `deny_custom_{custom_deny_id}` to apply a custom action instead of Akamai's default. Run [Modify a custom deny action](https://techdocs.akamai.com/application-security/reference/put-custom-deny) to manage your custom deny actions. If the action is `none`, the rule is inactive in the policy.", "enum": [ "alert", "deny", "none" ], "example": "{{action}}", "type": "string" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/api-request-constraints-action-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "action": "alert" }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for API Request Constraints action.", "properties": { "action": { "description": "The action for API Request Constraints, either `alert`, `deny`, or `none`.", "enum": [ "alert", "deny", "none" ], "type": "string" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/api-request-constraints-action-put-200.yaml" } } } }, "description": "Successfully updated the API's action." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify an API Request Constraint's Action", "tags": [ "API request constraints" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } }, { "description": "A unique identifier for each API.", "example": "{{apiId}}", "in": "path", "name": "apiId", "required": true, "schema": { "example": 12345, "type": "integer" }, "x-akamai": { "file-path": "parameters/api-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-api-request-constraints-api.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/api-request-constraints/{apiId}" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/attack-groups": { "get": { "description": "Return a list of attack groups with their associated actions. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-policy-attack-groups" }, "operationId": "get-policy-attack-groups", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "attackGroupActions": [ { "action": "deny", "group": "TOOL" }, { "action": "none", "group": "PROTOCOL" }, { "action": "alert", "group": "SQL" }, { "action": "deny", "group": "XSS" }, { "action": "deny", "group": "LFI" }, { "action": "deny", "group": "RFI" }, { "action": "deny", "group": "CMDI" }, { "action": "none", "group": "PLATFORM" } ] }, "schema": { "additionalProperties": false, "description": "Describes the attack group object. Currently, the only member in an attack group object is the `action`.", "properties": { "attackGroupActions": { "description": "The attack group action, either `alert`, `deny`, or `none`. Use `deny_custom_{custom_deny_id}` to apply a custom action instead of Akamai's default. Run [Modify a custom deny action](https://techdocs.akamai.com/application-security/reference/put-custom-deny) to manage your custom deny actions. If the action is `none`, the attack group is inactive in the security policy.", "items": { "additionalProperties": false, "description": "Attack Group JSON Properties.", "properties": { "action": { "description": "The attack group action, either `alert`, `deny`, or `none`. If the action is `none`, the attack group is inactive in the security policy.", "enum": [ "alert", "deny", "none" ], "type": "string" }, "group": { "description": "The ID for the attack group.", "type": "string" } }, "required": [ "action", "group" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-group.yaml" } }, "type": "array" } }, "required": [ "attackGroupActions" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-group-actions-get-200.yaml" } } } }, "description": "Successfully retrieved the attack group actions." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security List Attack Groups", "tags": [ "WAF rules: Attack groups" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-attack-groups.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/attack-groups" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/attack-groups/{attackGroupId}": { "get": { "description": "Currently the only member in the response object is `action`, which displays the action for the attack group. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-policy-attack-group" }, "operationId": "get-policy-attack-group", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "action": "alert" }, "schema": { "additionalProperties": false, "description": "Describes attack group's action members.", "properties": { "action": { "description": "The attack group action, either `alert`, `deny`, or `none`. Use `deny_custom_{custom_deny_id}` to apply a custom action instead of Akamai's default. Run [Modify a custom deny action](https://techdocs.akamai.com/application-security/reference/put-custom-deny) to manage your custom deny actions. If the action is `none`, the rule is inactive in the policy.", "enum": [ "alert", "deny", "none" ], "type": "string" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-group-action-get-200.yaml" } } } }, "description": "Successfully retrieved the attack group's actions." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get the Action for an Attack Group", "tags": [ "WAF rules: Attack groups" ] }, "put": { "description": "Update what action to take when an attack group's rule triggers. Use `alert` to record the trigger of the event, `deny` to block the request, or `none` to take no action. Currently the only member in the attack group object is `action`. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-attack-group" }, "operationId": "put-attack-group", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "action": "alert" }, "schema": { "additionalProperties": false, "description": "The PUT Request JSON for an attack group action.", "properties": { "action": { "description": "The attack group action, either `alert`, `deny`, or `none`.", "enum": [ "alert", "deny", "none" ], "example": "{{action}}", "type": "string" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-group-action-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "action": "alert" }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for an attack group action.", "properties": { "action": { "description": "The attack group action, either `alert`, `deny`, or `none`.", "enum": [ "alert", "deny", "none" ], "type": "string" } }, "required": [ "action" ], "type": "object", "x-akamai": { "file-path": "schemas/attack-group-action-put-200.yaml" } } } }, "description": "Successfully updated the attack group's action." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify the Action for an Attack Group", "tags": [ "WAF rules: Attack groups" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } }, { "description": "A unique identifier for each attack group.", "example": "{{attackGroupId}}", "in": "path", "name": "attackGroupId", "required": true, "schema": { "example": "CMD", "type": "string" }, "x-akamai": { "file-path": "parameters/attack-group-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-attack-group.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/attack-groups/{attackGroupId}" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/attack-groups/{attackGroupId}/condition-exception": { "get": { "description": "List an attack group's exceptions. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-attack-group-condition-exception" }, "operationId": "get-attack-group-condition-exception", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "advancedExceptions": { "conditionOperator": "AND", "conditions": [ { "filenames": [ "*.aspx", "*.js" ], "positiveMatch": true, "type": "filenameMatch" }, { "paths": [ "/catalog" ], "positiveMatch": true, "type": "pathMatch" }, { "clientLists": [ "88330_TESTIP1" ], "positiveMatch": true, "type": "clientListMatch", "useHeaders": true } ], "headerCookieOrParamValues": [ { "valueWildcard": true, "values": [ "header1", "cookie1", "param1" ] } ], "specificHeaderCookieOrParamNameValue": [ { "namesValues": [ { "names": [ "header1" ], "values": [ "value1" ] } ], "selector": "REQUEST_HEADERS", "wildcard": true }, { "namesValues": [ { "names": [ "param-name" ], "values": [ "param-value" ] } ], "selector": "ARGS", "wildcard": true }, { "namesValues": [ { "names": [ "json-param1" ], "values": [ "json-value1" ] } ], "selector": "JSON_PAIRS", "wildcard": true }, { "namesValues": [ { "names": [ "cookie-name" ], "values": [ "cookie1" ] } ], "selector": "REQUEST_COOKIES", "wildcard": true } ], "specificHeaderCookieParamXmlOrJsonNames": [ { "criteria": [ { "hostnames": [ "www.host.com" ], "paths": [ "/*" ] } ], "selector": "REQUEST_HEADERS_NAMES", "wildcard": true }, { "criteria": [ { "hostnames": [ "ALL" ], "names": [ "header1" ], "paths": [ "/orders" ] } ], "names": [ "header2" ], "selector": "REQUEST_HEADERS", "wildcard": false }, { "criteria": [ { "hostnames": [ "ALL" ], "paths": [ "/*" ] } ], "selector": "ARGS_NAMES", "wildcard": true }, { "names": [ "param-name" ], "selector": "ARGS", "wildcard": true }, { "names": [ "*" ], "selector": "JSON_NAMES", "wildcard": true }, { "names": [ "json1" ], "selector": "JSON_PAIRS", "wildcard": true }, { "names": [ "connect.sid" ], "selector": "REQUEST_COOKIES_NAMES", "wildcard": false }, { "names": [ "cookie1", "cookie2" ], "selector": "REQUEST_COOKIES", "wildcard": true }, { "selector": "REQUEST_BODY", "wildcard": true }, { "selector": "REQBODY_PROCESSOR_ERROR", "wildcard": true }, { "selector": "FILES_NAMES", "wildcard": true }, { "selector": "REQUEST_PROTOCOL", "wildcard": true }, { "selector": "REQUEST_METHOD", "wildcard": true }, { "selector": "REQUEST_URI", "wildcard": true }, { "selector": "QUERY_STRING", "wildcard": true }, { "selector": "REQUEST_FILENAME", "wildcard": true }, { "selector": "REQUEST_PATH_SEGMENT", "wildcard": true } ] } }, "schema": { "additionalProperties": false, "description": "The GET Response JSON for conditions and exceptions.", "properties": { "advancedExceptions": { "additionalProperties": false, "description": "Describes the advanced exception members that allow you to conditionally exclude requests from inspection. This is only available for attack groups and when the advanced exception feature is enabled.", "properties": { "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "type": "string" }, "conditions": { "description": "The list of match conditions.", "items": { "additionalProperties": false, "description": "Describes what conditions can be set for an action to occur.", "properties": { "caseSensitive": { "description": "Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "clientLists": { "description": "The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.", "items": { "type": "string" }, "minItems": 0, "type": "array" }, "extensions": { "description": "The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "filenames": { "description": "The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "header": { "description": "The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.", "type": "string" }, "hosts": { "description": "The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "ips": { "description": "The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "methods": { "description": "The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.", "items": { "enum": [ "GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS", "TRACE", "CONNECT", "PATCH" ], "type": "string" }, "type": "array" }, "name": { "description": "The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.", "type": "string" }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "paths": { "description": "The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).", "enum": [ "hostMatch", "pathMatch", "filenameMatch", "extensionMatch", "uriQueryMatch", "ipMatch", "requestMethodMatch", "requestHeaderMatch", "clientListMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.", "type": "boolean" }, "value": { "description": "The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.", "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "wildcard": { "description": "Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/condition.yaml" } }, "type": "array" }, "headerCookieOrParamValues": { "description": "The list of excepted values in headers, cookies, or query parameters.", "items": { "additionalProperties": false, "properties": { "criteria": { "description": "A list of criteria to limit the scope of this exception.", "items": { "additionalProperties": false, "description": "The hostname and path criteria to limit the scope of exception.", "properties": { "hostnames": { "description": "The list of excepted hostnames.", "items": { "type": "string" }, "type": "array" }, "names": { "description": "The list of excepted names.", "items": { "type": "string" }, "type": "array" }, "paths": { "description": "The list of excepted paths.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of excepted values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "paths", "names", "values" ], "type": "object", "x-akamai": { "file-path": "schemas/criteria.yaml" } }, "type": "array" }, "valueWildcard": { "default": false, "description": "Whether the provided header `name` is a wildcard.", "type": "boolean" }, "values": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" } }, "required": [ "values" ], "type": "object" }, "type": "array" }, "specificHeaderCookieOrParamNameValue": { "description": "Contains details about the excepted name-value pairs in a request.", "items": { "additionalProperties": false, "properties": { "criteria": { "description": "A list of criteria to limit the scope of this exception.", "items": { "additionalProperties": false, "description": "The hostname and path criteria to limit the scope of exception.", "properties": { "hostnames": { "description": "The list of excepted hostnames.", "items": { "type": "string" }, "type": "array" }, "names": { "description": "The list of excepted names.", "items": { "type": "string" }, "type": "array" }, "paths": { "description": "The list of excepted paths.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of excepted values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "paths", "names", "values" ], "type": "object", "x-akamai": { "file-path": "schemas/criteria.yaml" } }, "type": "array" }, "namesValues": { "description": "A list of name-value pairs to except.", "items": { "additionalProperties": false, "properties": { "names": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of request attribute values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "names" ], "type": "object" }, "type": "array" }, "selector": { "description": "The request attribute to exclude from inspection. See [Exception selector values](https://techdocs.akamai.com/application-security/reference/exception-selector-values).", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" }, "wildcard": { "default": false, "description": "Whether the provided header `name` is a wildcard.", "type": "boolean" } }, "required": [ "namesValues", "selector" ], "type": "object" }, "type": "array" }, "specificHeaderCookieParamXmlOrJsonNames": { "description": "Describes the advanced exception members that allow you to conditionally exclude requests from inspection. This is only available for attack groups and when the advanced exception feature is enabled.", "items": { "additionalProperties": false, "properties": { "criteria": { "description": "A list of criteria to limit the scope of this exception.", "items": { "additionalProperties": false, "description": "The hostname and path criteria to limit the scope of exception.", "properties": { "hostnames": { "description": "The list of excepted hostnames.", "items": { "type": "string" }, "type": "array" }, "names": { "description": "The list of excepted names.", "items": { "type": "string" }, "type": "array" }, "paths": { "description": "The list of excepted paths.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of excepted values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "paths", "names", "values" ], "type": "object", "x-akamai": { "file-path": "schemas/criteria.yaml" } }, "type": "array" }, "names": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" }, "selector": { "description": "The request attribute to exclude from inspection. See [Exception selector values](https://techdocs.akamai.com/application-security/reference/exception-selector-values).", "enum": [ "ARGS_NAMES", "ARGS", "REQUEST_HEADERS_NAMES", "REQUEST_HEADERS", "REQUEST_COOKIES_NAMES", "REQUEST_COOKIES", "JSON_NAMES", "JSON_PAIRS", "XML_PAIRS", "REQUEST_PROTOCOL", "REQUEST_METHOD", "REQUEST_URI", "QUERY_STRING", "REQUEST_FILENAME", "REQUEST_PATH_SEGMENT", "REQUEST_BODY", "REQBODY_PROCESSOR_ERROR", "FILES_NAMES" ], "type": "string" }, "wildcard": { "default": false, "description": "Whether the provided header `name` is a wildcard.", "type": "boolean" } }, "required": [ "selector" ], "type": "object" }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/advanced-exception.yaml" } }, "conditions": { "description": "The conditions list for a rule.", "items": { "additionalProperties": false, "description": "Describes what conditions can be set for an action to occur.", "properties": { "caseSensitive": { "description": "Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "clientLists": { "description": "The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.", "items": { "type": "string" }, "minItems": 0, "type": "array" }, "extensions": { "description": "The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "filenames": { "description": "The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "header": { "description": "The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.", "type": "string" }, "hosts": { "description": "The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "ips": { "description": "The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "methods": { "description": "The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.", "items": { "enum": [ "GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS", "TRACE", "CONNECT", "PATCH" ], "type": "string" }, "type": "array" }, "name": { "description": "The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.", "type": "string" }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "paths": { "description": "The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).", "enum": [ "hostMatch", "pathMatch", "filenameMatch", "extensionMatch", "uriQueryMatch", "ipMatch", "requestMethodMatch", "requestHeaderMatch", "clientListMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.", "type": "boolean" }, "value": { "description": "The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.", "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "wildcard": { "description": "Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/condition.yaml" } }, "type": "array" }, "exception": { "additionalProperties": false, "description": "Describes the exception members that allow you to conditionally exclude requests from inspection.", "properties": { "anyHeaderCookieOrParam": { "description": "The list of request attributes to treat as rule or attack group exceptions. The possible values are `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, and `REQUEST_HEADERS` for a request header. Use this option if you can't get an exhaustive list of elements to exclude or the list is too large. You can exclude several attributes.", "items": { "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" }, "type": "array" }, "headerCookieOrParamValues": { "description": "The list of excepted values in headers, cookies, or query parameters.", "items": { "type": "string" }, "type": "array" }, "specificHeaderCookieOrParamNameValue": { "additionalProperties": false, "description": "Contains details about the excepted name-value pair in a request.", "properties": { "name": { "description": "The name of the request attribute.", "type": "string" }, "selector": { "description": "The request attribute that includes the excepted name-value pair. Either `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, or `REQUEST_HEADERS` for a request header.", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" }, "value": { "description": "The value of the request attribute.", "type": "string" } }, "required": [ "name", "selector", "value" ], "type": "object" }, "specificHeaderCookieOrParamNames": { "additionalProperties": false, "description": "Contains details about the excepted request attribute name.", "properties": { "names": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" }, "selector": { "description": "The request attribute that includes the excepted name. Either `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, or `REQUEST_HEADERS` for a request header.", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" } }, "required": [ "names", "selector" ], "type": "object" }, "specificHeaderCookieOrParamPrefix": { "additionalProperties": false, "description": "Contains details about the excepted request attribute name prefix.", "properties": { "prefix": { "description": "The request attribute name prefix.", "type": "string" }, "selector": { "description": "The request attribute that includes the excepted name prefix. Either `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, or `REQUEST_HEADERS` for a request header.", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" } }, "required": [ "prefix", "selector" ], "type": "object" }, "specificHeaderCookieParamXmlOrJsonNames": { "description": "Contains details about the excepted request attribute names. This is only available for attack groups and when advanced exception is not enabled.", "items": { "additionalProperties": false, "properties": { "names": { "description": "Lists request attribute names, required with several `selector` options. With `wildcard` enabled, `*` represents a sequence and `?` represents any single character. For example, `*` matches any name, and `*session` matches a subset.", "items": { "type": "string" }, "type": "array" }, "selector": { "description": "The request attribute to exclude from inspection. The following selectors require a set of `names`: `ARGS_NAMES`, `ARGS`, `REQUEST_HEADERS_NAMES`, `REQUEST_HEADERS`, `REQUEST_COOKIES_NAMES`, `REQUEST_COOKIES`, `JSON_NAMES`, `JSON_PAIRS`, and `XML_PAIRS`. See [Exception selector values](https://techdocs.akamai.com/application-security/reference/exception-selector-values).", "enum": [ "ARGS_NAMES", "ARGS", "REQUEST_HEADERS_NAMES", "REQUEST_HEADERS", "REQUEST_COOKIES_NAMES", "REQUEST_COOKIES", "JSON_NAMES", "JSON_PAIRS", "XML_PAIRS", "REQUEST_PROTOCOL", "REQUEST_METHOD", "REQUEST_URI", "QUERY_STRING", "REQUEST_FILENAME", "REQUEST_PATH_SEGMENT", "REQUEST_BODY", "REQBODY_PROCESSOR_ERROR", "FILES_NAMES" ], "type": "string" }, "wildcard": { "default": false, "description": "Whether you can specify wildcards to flexibly match `names`, either `*` for any set of characters, or `?` for any single character.", "type": "boolean" } }, "required": [ "selector" ], "type": "object" }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/exception.yaml" } } }, "type": "object", "x-akamai": { "file-path": "schemas/condition-exception-get-200.yaml" } } } }, "description": "Successfully retrieved the attack group exceptions." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Get the Exceptions of an Attack Group", "tags": [ "WAF rules: Attack groups" ] }, "put": { "description": "Update an attack group exceptions. _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-attack-group-condition-exception" }, "operationId": "put-attack-group-condition-exception", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "exception": { "specificHeaderCookieParamXmlOrJsonNames": [ { "names": [ "*" ], "selector": "REQUEST_HEADERS_NAMES", "wildcard": true }, { "names": [ "header2", "header1" ], "selector": "REQUEST_HEADERS", "wildcard": false }, { "names": [ "connect.sid" ], "selector": "REQUEST_COOKIES_NAMES", "wildcard": false }, { "names": [ "cookie1", "cookie2" ], "selector": "REQUEST_COOKIES", "wildcard": true }, { "names": [ "test*" ], "selector": "ARGS_NAMES", "wildcard": true }, { "names": [ "param-name" ], "selector": "ARGS", "wildcard": true }, { "names": [ "test*" ], "selector": "JSON_NAMES", "wildcard": true }, { "names": [ "json1" ], "selector": "JSON_PAIRS", "wildcard": true }, { "selector": "REQUEST_PROTOCOL", "wildcard": true }, { "selector": "REQUEST_METHOD", "wildcard": true }, { "selector": "REQUEST_URI", "wildcard": true }, { "selector": "QUERY_STRING", "wildcard": true }, { "selector": "REQUEST_FILENAME", "wildcard": true }, { "selector": "REQUEST_PATH_SEGMENT", "wildcard": true }, { "selector": "REQUEST_BODY", "wildcard": true }, { "selector": "REQBODY_PROCESSOR_ERROR", "wildcard": true }, { "selector": "FILES_NAMES", "wildcard": true } ] } }, "schema": { "additionalProperties": false, "description": "Describes the conditions and exceptions you can configure in attack groups or rules. When `advanced` is enabled, you can only specify attack group exception data in one `basic` or `advancedExceptions` section, and not both.", "properties": { "advancedExceptions": { "additionalProperties": false, "description": "Describes the advanced exception members that allow you to conditionally exclude requests from inspection. This is only available for attack groups and when the advanced exception feature is enabled.", "properties": { "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "type": "string" }, "conditions": { "description": "The list of match conditions.", "items": { "additionalProperties": false, "description": "Describes what conditions can be set for an action to occur.", "properties": { "caseSensitive": { "description": "Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "clientLists": { "description": "The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.", "items": { "type": "string" }, "minItems": 0, "type": "array" }, "extensions": { "description": "The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "filenames": { "description": "The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "header": { "description": "The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.", "type": "string" }, "hosts": { "description": "The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "ips": { "description": "The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "methods": { "description": "The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.", "items": { "enum": [ "GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS", "TRACE", "CONNECT", "PATCH" ], "type": "string" }, "type": "array" }, "name": { "description": "The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.", "type": "string" }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "paths": { "description": "The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).", "enum": [ "hostMatch", "pathMatch", "filenameMatch", "extensionMatch", "uriQueryMatch", "ipMatch", "requestMethodMatch", "requestHeaderMatch", "clientListMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.", "type": "boolean" }, "value": { "description": "The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.", "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "wildcard": { "description": "Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/condition.yaml" } }, "type": "array" }, "headerCookieOrParamValues": { "description": "The list of excepted values in headers, cookies, or query parameters.", "items": { "additionalProperties": false, "properties": { "criteria": { "description": "A list of criteria to limit the scope of this exception.", "items": { "additionalProperties": false, "description": "The hostname and path criteria to limit the scope of exception.", "properties": { "hostnames": { "description": "The list of excepted hostnames.", "items": { "type": "string" }, "type": "array" }, "names": { "description": "The list of excepted names.", "items": { "type": "string" }, "type": "array" }, "paths": { "description": "The list of excepted paths.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of excepted values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "paths", "names", "values" ], "type": "object", "x-akamai": { "file-path": "schemas/criteria.yaml" } }, "type": "array" }, "valueWildcard": { "default": false, "description": "Whether the provided header `name` is a wildcard.", "type": "boolean" }, "values": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" } }, "required": [ "values" ], "type": "object" }, "type": "array" }, "specificHeaderCookieOrParamNameValue": { "description": "Contains details about the excepted name-value pairs in a request.", "items": { "additionalProperties": false, "properties": { "criteria": { "description": "A list of criteria to limit the scope of this exception.", "items": { "additionalProperties": false, "description": "The hostname and path criteria to limit the scope of exception.", "properties": { "hostnames": { "description": "The list of excepted hostnames.", "items": { "type": "string" }, "type": "array" }, "names": { "description": "The list of excepted names.", "items": { "type": "string" }, "type": "array" }, "paths": { "description": "The list of excepted paths.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of excepted values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "paths", "names", "values" ], "type": "object", "x-akamai": { "file-path": "schemas/criteria.yaml" } }, "type": "array" }, "namesValues": { "description": "A list of name-value pairs to except.", "items": { "additionalProperties": false, "properties": { "names": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of request attribute values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "names" ], "type": "object" }, "type": "array" }, "selector": { "description": "The request attribute to exclude from inspection. See [Exception selector values](https://techdocs.akamai.com/application-security/reference/exception-selector-values).", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" }, "wildcard": { "default": false, "description": "Whether the provided header `name` is a wildcard.", "type": "boolean" } }, "required": [ "namesValues", "selector" ], "type": "object" }, "type": "array" }, "specificHeaderCookieParamXmlOrJsonNames": { "description": "Describes the advanced exception members that allow you to conditionally exclude requests from inspection. This is only available for attack groups and when the advanced exception feature is enabled.", "items": { "additionalProperties": false, "properties": { "criteria": { "description": "A list of criteria to limit the scope of this exception.", "items": { "additionalProperties": false, "description": "The hostname and path criteria to limit the scope of exception.", "properties": { "hostnames": { "description": "The list of excepted hostnames.", "items": { "type": "string" }, "type": "array" }, "names": { "description": "The list of excepted names.", "items": { "type": "string" }, "type": "array" }, "paths": { "description": "The list of excepted paths.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of excepted values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "paths", "names", "values" ], "type": "object", "x-akamai": { "file-path": "schemas/criteria.yaml" } }, "type": "array" }, "names": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" }, "selector": { "description": "The request attribute to exclude from inspection. See [Exception selector values](https://techdocs.akamai.com/application-security/reference/exception-selector-values).", "enum": [ "ARGS_NAMES", "ARGS", "REQUEST_HEADERS_NAMES", "REQUEST_HEADERS", "REQUEST_COOKIES_NAMES", "REQUEST_COOKIES", "JSON_NAMES", "JSON_PAIRS", "XML_PAIRS", "REQUEST_PROTOCOL", "REQUEST_METHOD", "REQUEST_URI", "QUERY_STRING", "REQUEST_FILENAME", "REQUEST_PATH_SEGMENT", "REQUEST_BODY", "REQBODY_PROCESSOR_ERROR", "FILES_NAMES" ], "type": "string" }, "wildcard": { "default": false, "description": "Whether the provided header `name` is a wildcard.", "type": "boolean" } }, "required": [ "selector" ], "type": "object" }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/advanced-exception.yaml" } }, "conditions": { "description": "The conditions list for a rule.", "items": { "additionalProperties": false, "description": "Describes what conditions can be set for an action to occur.", "properties": { "caseSensitive": { "description": "Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "clientLists": { "description": "The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.", "items": { "type": "string" }, "minItems": 0, "type": "array" }, "extensions": { "description": "The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "filenames": { "description": "The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "header": { "description": "The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.", "type": "string" }, "hosts": { "description": "The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "ips": { "description": "The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "methods": { "description": "The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.", "items": { "enum": [ "GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS", "TRACE", "CONNECT", "PATCH" ], "type": "string" }, "type": "array" }, "name": { "description": "The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.", "type": "string" }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "paths": { "description": "The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).", "enum": [ "hostMatch", "pathMatch", "filenameMatch", "extensionMatch", "uriQueryMatch", "ipMatch", "requestMethodMatch", "requestHeaderMatch", "clientListMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.", "type": "boolean" }, "value": { "description": "The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.", "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "wildcard": { "description": "Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/condition.yaml" } }, "type": "array" }, "exception": { "additionalProperties": false, "description": "Describes the exception members that allow you to conditionally exclude requests from inspection.", "properties": { "anyHeaderCookieOrParam": { "description": "The list of request attributes to treat as rule or attack group exceptions. The possible values are `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, and `REQUEST_HEADERS` for a request header. Use this option if you can't get an exhaustive list of elements to exclude or the list is too large. You can exclude several attributes.", "items": { "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" }, "type": "array" }, "headerCookieOrParamValues": { "description": "The list of excepted values in headers, cookies, or query parameters.", "items": { "type": "string" }, "type": "array" }, "specificHeaderCookieOrParamNameValue": { "additionalProperties": false, "description": "Contains details about the excepted name-value pair in a request.", "properties": { "name": { "description": "The name of the request attribute.", "type": "string" }, "selector": { "description": "The request attribute that includes the excepted name-value pair. Either `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, or `REQUEST_HEADERS` for a request header.", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" }, "value": { "description": "The value of the request attribute.", "type": "string" } }, "required": [ "name", "selector", "value" ], "type": "object" }, "specificHeaderCookieOrParamNames": { "additionalProperties": false, "description": "Contains details about the excepted request attribute name.", "properties": { "names": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" }, "selector": { "description": "The request attribute that includes the excepted name. Either `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, or `REQUEST_HEADERS` for a request header.", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" } }, "required": [ "names", "selector" ], "type": "object" }, "specificHeaderCookieOrParamPrefix": { "additionalProperties": false, "description": "Contains details about the excepted request attribute name prefix.", "properties": { "prefix": { "description": "The request attribute name prefix.", "type": "string" }, "selector": { "description": "The request attribute that includes the excepted name prefix. Either `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, or `REQUEST_HEADERS` for a request header.", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" } }, "required": [ "prefix", "selector" ], "type": "object" }, "specificHeaderCookieParamXmlOrJsonNames": { "description": "Contains details about the excepted request attribute names. This is only available for attack groups and when advanced exception is not enabled.", "items": { "additionalProperties": false, "properties": { "names": { "description": "Lists request attribute names, required with several `selector` options. With `wildcard` enabled, `*` represents a sequence and `?` represents any single character. For example, `*` matches any name, and `*session` matches a subset.", "items": { "type": "string" }, "type": "array" }, "selector": { "description": "The request attribute to exclude from inspection. The following selectors require a set of `names`: `ARGS_NAMES`, `ARGS`, `REQUEST_HEADERS_NAMES`, `REQUEST_HEADERS`, `REQUEST_COOKIES_NAMES`, `REQUEST_COOKIES`, `JSON_NAMES`, `JSON_PAIRS`, and `XML_PAIRS`. See [Exception selector values](https://techdocs.akamai.com/application-security/reference/exception-selector-values).", "enum": [ "ARGS_NAMES", "ARGS", "REQUEST_HEADERS_NAMES", "REQUEST_HEADERS", "REQUEST_COOKIES_NAMES", "REQUEST_COOKIES", "JSON_NAMES", "JSON_PAIRS", "XML_PAIRS", "REQUEST_PROTOCOL", "REQUEST_METHOD", "REQUEST_URI", "QUERY_STRING", "REQUEST_FILENAME", "REQUEST_PATH_SEGMENT", "REQUEST_BODY", "REQBODY_PROCESSOR_ERROR", "FILES_NAMES" ], "type": "string" }, "wildcard": { "default": false, "description": "Whether you can specify wildcards to flexibly match `names`, either `*` for any set of characters, or `?` for any single character.", "type": "boolean" } }, "required": [ "selector" ], "type": "object" }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/exception.yaml" } } }, "type": "object", "x-akamai": { "file-path": "schemas/condition-exception-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "exception": { "specificHeaderCookieParamXmlOrJsonNames": [ { "names": [ "*" ], "selector": "REQUEST_HEADERS_NAMES", "wildcard": true }, { "names": [ "header2", "header1" ], "selector": "REQUEST_HEADERS", "wildcard": false }, { "names": [ "connect.sid" ], "selector": "REQUEST_COOKIES_NAMES", "wildcard": false }, { "names": [ "cookie1", "cookie2" ], "selector": "REQUEST_COOKIES", "wildcard": true }, { "names": [ "test*" ], "selector": "ARGS_NAMES", "wildcard": true }, { "names": [ "param-name" ], "selector": "ARGS", "wildcard": true }, { "names": [ "test*" ], "selector": "JSON_NAMES", "wildcard": true }, { "names": [ "json1" ], "selector": "JSON_PAIRS", "wildcard": true }, { "selector": "REQUEST_PROTOCOL", "wildcard": true }, { "selector": "REQUEST_METHOD", "wildcard": true }, { "selector": "REQUEST_URI", "wildcard": true }, { "selector": "QUERY_STRING", "wildcard": true }, { "selector": "REQUEST_FILENAME", "wildcard": true }, { "selector": "REQUEST_PATH_SEGMENT", "wildcard": true }, { "selector": "REQUEST_BODY", "wildcard": true }, { "selector": "REQBODY_PROCESSOR_ERROR", "wildcard": true }, { "selector": "FILES_NAMES", "wildcard": true } ] } }, "schema": { "additionalProperties": false, "description": "The PUT Response JSON for conditions and exceptions.", "properties": { "advancedExceptions": { "additionalProperties": false, "description": "Describes the advanced exception members that allow you to conditionally exclude requests from inspection. This is only available for attack groups and when the advanced exception feature is enabled.", "properties": { "conditionOperator": { "description": "Use `OR` to match any condition, or `AND` to match on all conditions.", "enum": [ "OR", "AND" ], "type": "string" }, "conditions": { "description": "The list of match conditions.", "items": { "additionalProperties": false, "description": "Describes what conditions can be set for an action to occur.", "properties": { "caseSensitive": { "description": "Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "clientLists": { "description": "The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.", "items": { "type": "string" }, "minItems": 0, "type": "array" }, "extensions": { "description": "The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "filenames": { "description": "The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "header": { "description": "The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.", "type": "string" }, "hosts": { "description": "The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "ips": { "description": "The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "methods": { "description": "The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.", "items": { "enum": [ "GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS", "TRACE", "CONNECT", "PATCH" ], "type": "string" }, "type": "array" }, "name": { "description": "The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.", "type": "string" }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "paths": { "description": "The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).", "enum": [ "hostMatch", "pathMatch", "filenameMatch", "extensionMatch", "uriQueryMatch", "ipMatch", "requestMethodMatch", "requestHeaderMatch", "clientListMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.", "type": "boolean" }, "value": { "description": "The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.", "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "wildcard": { "description": "Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/condition.yaml" } }, "type": "array" }, "headerCookieOrParamValues": { "description": "The list of excepted values in headers, cookies, or query parameters.", "items": { "additionalProperties": false, "properties": { "criteria": { "description": "A list of criteria to limit the scope of this exception.", "items": { "additionalProperties": false, "description": "The hostname and path criteria to limit the scope of exception.", "properties": { "hostnames": { "description": "The list of excepted hostnames.", "items": { "type": "string" }, "type": "array" }, "names": { "description": "The list of excepted names.", "items": { "type": "string" }, "type": "array" }, "paths": { "description": "The list of excepted paths.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of excepted values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "paths", "names", "values" ], "type": "object", "x-akamai": { "file-path": "schemas/criteria.yaml" } }, "type": "array" }, "valueWildcard": { "default": false, "description": "Whether the provided header `name` is a wildcard.", "type": "boolean" }, "values": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" } }, "required": [ "values" ], "type": "object" }, "type": "array" }, "specificHeaderCookieOrParamNameValue": { "description": "Contains details about the excepted name-value pairs in a request.", "items": { "additionalProperties": false, "properties": { "criteria": { "description": "A list of criteria to limit the scope of this exception.", "items": { "additionalProperties": false, "description": "The hostname and path criteria to limit the scope of exception.", "properties": { "hostnames": { "description": "The list of excepted hostnames.", "items": { "type": "string" }, "type": "array" }, "names": { "description": "The list of excepted names.", "items": { "type": "string" }, "type": "array" }, "paths": { "description": "The list of excepted paths.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of excepted values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "paths", "names", "values" ], "type": "object", "x-akamai": { "file-path": "schemas/criteria.yaml" } }, "type": "array" }, "namesValues": { "description": "A list of name-value pairs to except.", "items": { "additionalProperties": false, "properties": { "names": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of request attribute values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "names" ], "type": "object" }, "type": "array" }, "selector": { "description": "The request attribute to exclude from inspection. See [Exception selector values](https://techdocs.akamai.com/application-security/reference/exception-selector-values).", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" }, "wildcard": { "default": false, "description": "Whether the provided header `name` is a wildcard.", "type": "boolean" } }, "required": [ "namesValues", "selector" ], "type": "object" }, "type": "array" }, "specificHeaderCookieParamXmlOrJsonNames": { "description": "Describes the advanced exception members that allow you to conditionally exclude requests from inspection. This is only available for attack groups and when the advanced exception feature is enabled.", "items": { "additionalProperties": false, "properties": { "criteria": { "description": "A list of criteria to limit the scope of this exception.", "items": { "additionalProperties": false, "description": "The hostname and path criteria to limit the scope of exception.", "properties": { "hostnames": { "description": "The list of excepted hostnames.", "items": { "type": "string" }, "type": "array" }, "names": { "description": "The list of excepted names.", "items": { "type": "string" }, "type": "array" }, "paths": { "description": "The list of excepted paths.", "items": { "type": "string" }, "type": "array" }, "values": { "description": "The list of excepted values.", "items": { "type": "string" }, "type": "array" } }, "required": [ "paths", "names", "values" ], "type": "object", "x-akamai": { "file-path": "schemas/criteria.yaml" } }, "type": "array" }, "names": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" }, "selector": { "description": "The request attribute to exclude from inspection. See [Exception selector values](https://techdocs.akamai.com/application-security/reference/exception-selector-values).", "enum": [ "ARGS_NAMES", "ARGS", "REQUEST_HEADERS_NAMES", "REQUEST_HEADERS", "REQUEST_COOKIES_NAMES", "REQUEST_COOKIES", "JSON_NAMES", "JSON_PAIRS", "XML_PAIRS", "REQUEST_PROTOCOL", "REQUEST_METHOD", "REQUEST_URI", "QUERY_STRING", "REQUEST_FILENAME", "REQUEST_PATH_SEGMENT", "REQUEST_BODY", "REQBODY_PROCESSOR_ERROR", "FILES_NAMES" ], "type": "string" }, "wildcard": { "default": false, "description": "Whether the provided header `name` is a wildcard.", "type": "boolean" } }, "required": [ "selector" ], "type": "object" }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/advanced-exception.yaml" } }, "conditions": { "description": "The conditions list for a rule.", "items": { "additionalProperties": false, "description": "Describes what conditions can be set for an action to occur.", "properties": { "caseSensitive": { "description": "Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "clientLists": { "description": "The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.", "items": { "type": "string" }, "minItems": 0, "type": "array" }, "extensions": { "description": "The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "filenames": { "description": "The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "header": { "description": "The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.", "type": "string" }, "hosts": { "description": "The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "ips": { "description": "The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "methods": { "description": "The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.", "items": { "enum": [ "GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS", "TRACE", "CONNECT", "PATCH" ], "type": "string" }, "type": "array" }, "name": { "description": "The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.", "type": "string" }, "nameCase": { "description": "Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" }, "paths": { "description": "The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.", "items": { "type": "string" }, "type": "array" }, "positiveMatch": { "description": "Whether the condition should trigger on a match (`true`) or a lack of match (`false`).", "type": "boolean" }, "type": { "description": "The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).", "enum": [ "hostMatch", "pathMatch", "filenameMatch", "extensionMatch", "uriQueryMatch", "ipMatch", "requestMethodMatch", "requestHeaderMatch", "clientListMatch" ], "type": "string" }, "useHeaders": { "description": "Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.", "type": "boolean" }, "value": { "description": "The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.", "type": "string" }, "valueCase": { "description": "Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "valueWildcard": { "description": "Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.", "type": "boolean" }, "wildcard": { "description": "Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.", "type": "boolean" } }, "required": [ "type", "positiveMatch" ], "type": "object", "x-akamai": { "file-path": "schemas/condition.yaml" } }, "type": "array" }, "exception": { "additionalProperties": false, "description": "Describes the exception members that allow you to conditionally exclude requests from inspection.", "properties": { "anyHeaderCookieOrParam": { "description": "The list of request attributes to treat as rule or attack group exceptions. The possible values are `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, and `REQUEST_HEADERS` for a request header. Use this option if you can't get an exhaustive list of elements to exclude or the list is too large. You can exclude several attributes.", "items": { "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" }, "type": "array" }, "headerCookieOrParamValues": { "description": "The list of excepted values in headers, cookies, or query parameters.", "items": { "type": "string" }, "type": "array" }, "specificHeaderCookieOrParamNameValue": { "additionalProperties": false, "description": "Contains details about the excepted name-value pair in a request.", "properties": { "name": { "description": "The name of the request attribute.", "type": "string" }, "selector": { "description": "The request attribute that includes the excepted name-value pair. Either `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, or `REQUEST_HEADERS` for a request header.", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" }, "value": { "description": "The value of the request attribute.", "type": "string" } }, "required": [ "name", "selector", "value" ], "type": "object" }, "specificHeaderCookieOrParamNames": { "additionalProperties": false, "description": "Contains details about the excepted request attribute name.", "properties": { "names": { "description": "The list of request attribute names.", "items": { "type": "string" }, "type": "array" }, "selector": { "description": "The request attribute that includes the excepted name. Either `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, or `REQUEST_HEADERS` for a request header.", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" } }, "required": [ "names", "selector" ], "type": "object" }, "specificHeaderCookieOrParamPrefix": { "additionalProperties": false, "description": "Contains details about the excepted request attribute name prefix.", "properties": { "prefix": { "description": "The request attribute name prefix.", "type": "string" }, "selector": { "description": "The request attribute that includes the excepted name prefix. Either `REQUEST_COOKIES`, `JSON_PAIRS` for a JSON parameter, `XML_PAIRS` for an XML parameter, `ARGS` for a request parameter, or `REQUEST_HEADERS` for a request header.", "enum": [ "REQUEST_COOKIES", "JSON_PAIRS", "XML_PAIRS", "ARGS", "REQUEST_HEADERS" ], "type": "string" } }, "required": [ "prefix", "selector" ], "type": "object" }, "specificHeaderCookieParamXmlOrJsonNames": { "description": "Contains details about the excepted request attribute names. This is only available for attack groups and when advanced exception is not enabled.", "items": { "additionalProperties": false, "properties": { "names": { "description": "Lists request attribute names, required with several `selector` options. With `wildcard` enabled, `*` represents a sequence and `?` represents any single character. For example, `*` matches any name, and `*session` matches a subset.", "items": { "type": "string" }, "type": "array" }, "selector": { "description": "The request attribute to exclude from inspection. The following selectors require a set of `names`: `ARGS_NAMES`, `ARGS`, `REQUEST_HEADERS_NAMES`, `REQUEST_HEADERS`, `REQUEST_COOKIES_NAMES`, `REQUEST_COOKIES`, `JSON_NAMES`, `JSON_PAIRS`, and `XML_PAIRS`. See [Exception selector values](https://techdocs.akamai.com/application-security/reference/exception-selector-values).", "enum": [ "ARGS_NAMES", "ARGS", "REQUEST_HEADERS_NAMES", "REQUEST_HEADERS", "REQUEST_COOKIES_NAMES", "REQUEST_COOKIES", "JSON_NAMES", "JSON_PAIRS", "XML_PAIRS", "REQUEST_PROTOCOL", "REQUEST_METHOD", "REQUEST_URI", "QUERY_STRING", "REQUEST_FILENAME", "REQUEST_PATH_SEGMENT", "REQUEST_BODY", "REQBODY_PROCESSOR_ERROR", "FILES_NAMES" ], "type": "string" }, "wildcard": { "default": false, "description": "Whether you can specify wildcards to flexibly match `names`, either `*` for any set of characters, or `?` for any single character.", "type": "boolean" } }, "required": [ "selector" ], "type": "object" }, "type": "array" } }, "type": "object", "x-akamai": { "file-path": "schemas/exception.yaml" } } }, "type": "object", "x-akamai": { "file-path": "schemas/condition-exception-put-200.yaml" } } } }, "description": "Successfully updated the exceptions of an attack group." }, "400": { "content": { "application/json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.", "x-akamai": { "file-path": "errors/400-client-read-errors.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have permission to write to this resource.", "x-akamai": { "file-path": "errors/403-client-write-errors.yaml" } }, "404": { "content": { "application/problem+json": { "example": { "detail": "The requested resource is not found", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 404, "title": "Not Found", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn't exist, doesn't carry application layer controls, or no rule with this ID is available for use in this policy.", "x-akamai": { "file-path": "errors/404-client-read-errors.yaml" } }, "500": { "content": { "application/problem+json": { "example": { "detail": "Internal Server Error", "instance": "12ab3c45-789d-01ef-2gh3-ijk4l56m78no", "status": 500, "title": "Internal Server Error", "type": "internal_server_error" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.", "x-akamai": { "file-path": "errors/500-server-errors.yaml" } } }, "summary": "Akamai API Security Modify the Exceptions of an Attack Group", "tags": [ "WAF rules: Attack groups" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } }, { "description": "A unique identifier for each attack group.", "example": "{{attackGroupId}}", "in": "path", "name": "attackGroupId", "required": true, "schema": { "example": "CMD", "type": "string" }, "x-akamai": { "file-path": "parameters/attack-group-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-attack-group-condition-exception.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/attack-groups/{attackGroupId}/condition-exception" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/bypass-network-lists": { "get": { "description": "Lists which network lists are used in the bypass network lists settings. If you want to add or remove IP addresses from the network lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api). _Products:_ Web Application Protector, App & API Protector.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-bypass-network-lists-per-policy" }, "operationId": "get-bypass-network-lists-per-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "networkLists": [ { "id": "888518_ACDDCKERS", "name": "Test network list 1" }, { "id": "1304427_AAXXBBLIST", "name": "Test network list 2" } ] }, "schema": { "additionalProperties": false, "description": "Contains bypass network lists for the specified configuration version.", "properties": { "networkLists": { "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" } }, "required": [ "networkLists" ], "type": "object", "x-akamai": { "file-path": "schemas/bypass-network-lists-get.yaml" } } } }, "description": "Successfully retrieved the bypass network lists settings." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } } }, "summary": "Akamai API Security Get the Bypass Network Lists Settings for a Security Policy", "tags": [ "Bypass network lists" ] }, "put": { "description": "Update which network lists to use in the bypass network lists settings. If you want to add or remove IP addresses from the network lists, use the [Network Lists API](https://techdocs.akamai.com/network-lists/reference/api). _Products:_ Web Application Protector, App & API Protector.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/put-bypass-network-lists-per-policy" }, "operationId": "put-bypass-network-lists-per-policy", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "networkLists": [ "1304427_AAXXBBLIST", "888518_ACDDCKERS" ] }, "schema": { "additionalProperties": false, "description": "Contains bypass network lists for the specified configuration version.", "properties": { "networkLists": { "description": "Contains a list of network list IDs.", "items": { "description": "List of network lists. The values are the network lists' IDs.", "type": "string" }, "type": "array" } }, "required": [ "networkLists" ], "type": "object", "x-akamai": { "file-path": "schemas/bypass-network-lists-put.yaml" } } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "asnControls": { "allowedIPNetworkLists": { "networkList": [ "9876_ASNTEST" ] }, "blockedIPNetworkLists": { "networkList": [ "567321_TESTASNLIST" ] } }, "block": "blockSpecificIPGeo", "geoControls": { "blockedIPNetworkLists": { "networkList": [ "72138_TEST1" ] } }, "ipControls": { "allowedIPNetworkLists": { "networkList": [ "56921_TEST" ] }, "blockedIPNetworkLists": { "networkList": [ "53712_TESTLIST123" ] } }, "ukraineGeoControl": { "action": "deny" } }, "schema": { "additionalProperties": false, "description": "Contains bypass network lists for the specified configuration version.", "properties": { "networkLists": { "description": "Contains a list of network list IDs.", "items": { "description": "List of network lists. The values are the network lists' IDs.", "type": "string" }, "type": "array" } }, "required": [ "networkLists" ], "type": "object", "x-akamai": { "file-path": "schemas/bypass-network-lists-put.yaml" } } } }, "description": "Successfully updated the IP/Geo Firewall settings." }, "400": { "content": { "application/problem+json": { "example": { "detail": "The request could not be understood by the server due to malformed syntax.", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 400, "title": "Bad Request", "type": "https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.", "x-akamai": { "file-path": "errors/400.yaml" } }, "403": { "content": { "application/problem+json": { "example": { "detail": "You do not have the necessary access to perform this operation or the requested resource cannot be modified", "instance": "https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Forbidden", "type": "https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED" }, "schema": { "additionalProperties": true, "description": "Details the errors you can receive.", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "fieldErrors": { "additionalProperties": { "description": "Fields that provide additional details about the problem.", "type": "string" }, "description": "Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.", "type": "object" }, "instance": { "description": "The non-referenceable URI that indicates the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The error title.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "required": [ "title", "type", "detail", "instance", "status" ], "type": "object", "x-akamai": { "file-path": "schemas/problem-details.yaml" } } } }, "description": "[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don't have access to the resource.", "x-akamai": { "file-path": "errors/403.yaml" } } }, "summary": "Akamai API Security Modify the Bypass Network Lists Settings for a Security Policy", "tags": [ "Bypass network lists" ] }, "parameters": [ { "description": "A unique identifier for each configuration.", "example": "{{configId}}", "in": "path", "name": "configId", "required": true, "schema": { "example": 77653, "format": "int64", "type": "integer" }, "x-akamai": { "file-path": "parameters/config-id-path.yaml" } }, { "description": "A unique identifier for each version of a configuration.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/version-number-path.yaml" } }, { "description": "A unique identifier for a security policy.", "example": "{{policyId}}", "in": "path", "name": "policyId", "required": true, "schema": { "example": "boBF_19288", "type": "string" }, "x-akamai": { "file-path": "parameters/policy-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/policy-bypass-network-lists.yaml", "path-info": "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/bypass-network-lists" } }, "/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/cpc": { "get": { "description": "Get Client-Side Protection & Compliance settings for a specific policy. For more information, see [Client-side Protection & Compliance](https://techdocs.akamai.com/client-side-protect-compliance/docs/client-side-protect-compliance-ov) _Products:_ All.", "externalDocs": { "description": "See documentation for this operation in Akamai's Application Security API", "url": "https://techdocs.akamai.com/application-security/reference/get-policy-cpc" }, "operationId": "get-policy-cpc", "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "edgeInjection": { "autoLoadStaging": false, "clientSideProtectionConfigId": 5965, "cpcConfigId": 5965, "loadScriptAsync": false }, "edgeTestParameters": { "disableInjectionKey": "page-integrity", "disableInjectionValue": "disable-injection-1234_104690", "forceInjectionKey": "page-integrity", "forceInjectionValue": "force-injection-1234_104690" }, "injectionCriteria": { "injectionPathExcludes": "", "injectionPathIncludes": "", "injectionPercent": 100, "injectionPolicy": "late_head" } }, "schema": { "additionalProperties": false, "description": "Configuration settings for Client-Side Protection & Compliance.", "properties": { "edgeInjection": { "additionalProperties": false, "description": "Specifies the Client-Side Protection & Compliance (CPC) configuration you want to apply, and which pages get monitored by CPC's JavaScript injection to flag suspicious activity. See [Client-Side Protection & Compliance](https://techdocs.akamai.com/client-side-protect-compliance/docs/client-side-protect-compliance-ov) for more information.", "properties": { "autoLoadStaging": { "description": "Whether the agent should load from staging. Enabling this can speed up your testing on the staging network.", "type": "boolean" }, "clientSideProtectionConfigId": { "description": "Identifies each Client-Side Protection & Compliance configuration.", "type": "integer" }, "loadScriptAsync": { "description": "Whether the agent script should load asynchronously. Note that this can help improve performance, but may make malicious scripts detection less accurate. See [Load script asynchronously ](https://techdocs.akamai.com/client-side-protect-compliance/docs/tune-configurations-for-security-and-performance#load-script-asynchronously) to learn more.", "type": "boolean" } }, "required": [ "clientSideProtectionConfigId", "loadScriptAsync", "autoLoadStaging" ], "type": "object" }, "edgeTestParameters": { "additionalProperties": false, "description": "Use these query string parameters to unit test an edge server's behavior. Entries here override the sampling percentage, ensuring or disabling JavaScript injection.", "properties": { "disableInjectionKey": { "description": "Send this query string parameter to defer injecting the agent.", "type": "string" }, "disableInjectionValue": { "description": "Specifies the value to disable agent injection.", "type": "string" }, "forceInjectionKey": { "description": "Send this query string parameter to force agent injection.", "type": "string" }, "forceInjectionValue": { "description": "Specifies the value to force agent injection.", "type": "string" } }, "type": "object" }, "injectionCriteria": { "additionalProperties": false, "description": "Specifies the criteria for agent injection.", "properties": { "injectionPathExcludes": { "description": "The path to exclude from agent injection.", "minLength": 0, "type": "string" }, "injectionPathIncludes": { "description": "The path to include for agent injection.", "minLength": 0, "type": "string" }, "injectionPercent": { "description": "The proportion of all pages into which the Client-Side Protection & Compliance JavaScript is inserted. For example, if you set it to `5` percent, the JavaScript file is embedded in just that fraction of your pages, leaving the remaining `95` percent to run without the script.", "maximum": 100, "minimum": 0, "type": "integer" }, "injectionPolicy": { "description": "Specifies the position where agent injection should be applied. The JavaScript injection runs on a page, but you can inject it in a more specific location to fit the characteristics of your pages. Use `early_head` to insert the JavaScript after the `` tag at the beginning of the page. Use `mid_head` to add the JavaScript further down in the `` tags, after tags like ``,``, ``, and similarly located tags. Use `late_head` to insert the JavaScript before a title and after all heading tags, or `first_script` to insert the user agent before the first `