{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://www.krakend.io/schema/v2.8/backend/soap.json",
  "title": "SOAP Template modifier",
  "description": "Enterprise only. Build and modify requests to communicate with SOAP services.\n\nSee: https://www.krakend.io/docs/backends/soap/",
  "type": "object",
  "oneOf": [
    {
      "required": [ "path" ]
    },
    {
      "required": [ "template" ]
    }
  ],
  "properties": {
    "content_type": {
      "title": "Content-Type",
      "description": "The `Content-Type` used in your template, and that will be sent to the SOAP server. This is not the content-type the end-user sent in the request.\n\nSee: https://www.krakend.io/docs/backends/soap/",
      "examples": [ "application/xml", "text/xml" ],
      "default": "text/xml",
      "type": "string"
    },
    "debug": {
      "title": "Enable debug",
      "description": "When `true`, shows useful information in the logs with `DEBUG` level about the input received and the body generated. Do not enable in production. Debug logs are multiline and designed fore developer readibility, not machine processing.\n\nSee: https://www.krakend.io/docs/backends/soap/",
      "default": false,
      "type": "boolean"
    },
    "path": {
      "title": "Path to template",
      "description": "The path to the Go template file you want to use to craft the body.\n\nSee: https://www.krakend.io/docs/backends/soap/",
      "examples": [ "./path/to.xml" ],
      "type": "string"
    },
    "template": {
      "title": "Template",
      "description": "An inline base64 encoded Go template with the body XML content you want to send to the SOAP service. This option is useful if you don't want to rely on external files and embed the template in the configuration.\n\nSee: https://www.krakend.io/docs/backends/soap/",
      "type": "string"
    }
  },
  "patternProperties": {
    "^[@$_#]": {}
  },
  "additionalProperties": false
}
