{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ad/json-schema/azure-ad-microsoft-graph-custom-authentication-extension-schema.json",
  "title": "microsoft.graph.customAuthenticationExtension",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ad-identity-customauthenticationextension-api-openapi.yml#/components/schemas/microsoft.graph.customAuthenticationExtension",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.customCalloutExtension"
    },
    {
      "title": "customAuthenticationExtension",
      "type": "object",
      "properties": {
        "behaviorOnError": {
          "$ref": "#/$defs/microsoft.graph.customExtensionBehaviorOnError"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.customCalloutExtension": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "customCalloutExtension",
          "type": "object",
          "properties": {
            "authenticationConfiguration": {
              "$ref": "#/$defs/microsoft.graph.customExtensionAuthenticationConfiguration"
            },
            "clientConfiguration": {
              "$ref": "#/$defs/microsoft.graph.customExtensionClientConfiguration"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "description": "Description for the customCalloutExtension object."
            },
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "Display name for the customCalloutExtension object."
            },
            "endpointConfiguration": {
              "$ref": "#/$defs/microsoft.graph.customExtensionEndpointConfiguration"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.customExtensionAuthenticationConfiguration": {
      "title": "customExtensionAuthenticationConfiguration",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.customExtensionBehaviorOnError": {
      "title": "customExtensionBehaviorOnError",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.customExtensionClientConfiguration": {
      "title": "customExtensionClientConfiguration",
      "type": "object",
      "properties": {
        "maximumRetries": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "The max number of retries that Microsoft Entra ID makes to the external API. Values of 0 or 1 are supported. If null, the default for the service applies.",
          "format": "int32"
        },
        "timeoutInMilliseconds": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "The max duration in milliseconds that Microsoft Entra ID waits for a response from the external app before it shuts down the connection. The valid range is between 200 and 2000 milliseconds. Default duration is 1000.",
          "format": "int32"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.customExtensionEndpointConfiguration": {
      "title": "customExtensionEndpointConfiguration",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  }
}