{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "IKEGateway",
  "description": "IKEGateway schema from Palo Alto Networks Prisma Access Configuration API",
  "$id": "https://raw.githubusercontent.com/api-evangelist/palo-alto-networks/refs/heads/main/json-schema/prisma-access-api-ike-gateway-schema.json",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the IKE gateway.",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "description": "Name of the IKE gateway."
    },
    "version": {
      "type": "string",
      "enum": [
        "ikev1",
        "ikev2",
        "ikev2-preferred"
      ],
      "default": "ikev2-preferred",
      "description": "IKE protocol version."
    },
    "peer_address": {
      "type": "object",
      "description": "Peer IP address configuration.",
      "properties": {
        "ip": {
          "type": "string",
          "format": "ipv4",
          "description": "Static peer IP address."
        },
        "dynamic": {
          "type": "boolean",
          "description": "Whether the peer address is dynamic."
        }
      }
    },
    "authentication": {
      "type": "object",
      "description": "IKE authentication configuration.",
      "properties": {
        "pre_shared_key": {
          "type": "string",
          "description": "Pre-shared key for IKE authentication."
        },
        "certificate": {
          "type": "object",
          "properties": {
            "local_certificate": {
              "type": "string",
              "description": "Local certificate profile name."
            }
          }
        }
      }
    },
    "local_id": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ipaddr",
            "keyid",
            "fqdn",
            "ufqdn"
          ]
        },
        "id": {
          "type": "string"
        }
      }
    },
    "peer_id": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ipaddr",
            "keyid",
            "fqdn",
            "ufqdn"
          ]
        },
        "id": {
          "type": "string"
        }
      }
    },
    "folder": {
      "type": "string",
      "readOnly": true
    }
  },
  "required": [
    "name",
    "peer_address",
    "authentication"
  ]
}
