{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--lambda.json",
  "description": "Collection of Schemas for Lambda configurations",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/components/lambda.json",
    "sourceSha256": "cf4ae14b325c933d22411cf15853b26d3b75b2f4ff0f4cd6e4ad6e46fdd28caf"
  },
  "type": "object",
  "id": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/components/lambda.json",
  "schema": "https://json-schema.org/draft-07/schema#",
  "AwsLambdaRuntimeManagement": {
    "title": "AwsLambdaRuntimeManagement",
    "description": "Fine-grained control of the runtime being used for a lambda function:- <https://www.serverless.com/framework/docs/providers/aws/guide/functions#runtime-management>",
    "oneOf": [
      {
        "type": "string",
        "enum": [
          "auto",
          "onFunctionUpdate"
        ]
      },
      {
        "title": "AwsLambdaRuntimeManagementConfig",
        "type": "object",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "auto",
              "onFunctionUpdate",
              "manual"
            ]
          },
          "arn": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^arn:(aws[a-zA-Z-]*):lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}::runtime:.+$"
              },
              {
                "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "mode"
        ]
      }
    ]
  },
  "additionalProperties": false,
  "required": [
    "AwsRuntime",
    "AwsLambdaRuntimeManagement"
  ],
  "AwsRuntime": {
    "type": "string",
    "enum": [
      "nodejs24.x",
      "nodejs22.x",
      "nodejs20.x",
      "nodejs18.x",
      "nodejs16.x",
      "nodejs14.x",
      "nodejs12.x",
      "python3.12",
      "python3.11",
      "python3.10",
      "python3.9",
      "python3.8",
      "python3.7",
      "python3.6",
      "ruby3.4",
      "ruby3.3",
      "ruby3.2",
      "ruby2.7",
      "java21",
      "java17",
      "java11",
      "java8.al2",
      "java8",
      "go1.x",
      "dotnet6",
      "dotnet8",
      "dotnetcore3.1",
      "dotnet5.0",
      "provided.al2023",
      "provided.al2",
      "provided"
    ],
    "description": "<https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>"
  }
}
