{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/agentcore-cli/versions/1.0.json",
  "x-lintel": {
    "source": "https://schema.agentcore.aws.dev/v1/agentcore.json",
    "sourceSha256": "21b76ec06e1183aee7b72af8faa6993ab2f8fdc7486b61ec7af996ea0231ff6b",
    "fileMatch": [
      "**/agentcore/agentcore.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 23,
      "pattern": "^[A-Za-z][A-Za-z0-9]{0,22}$"
    },
    "version": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "managedBy": {
      "default": "CDK",
      "type": "string",
      "enum": [
        "CDK"
      ]
    },
    "tags": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 256,
        "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
      }
    },
    "runtimes": {
      "default": [],
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$"
          },
          "description": {
            "type": "string",
            "maxLength": 200
          },
          "build": {
            "type": "string",
            "enum": [
              "CodeZip",
              "Container"
            ]
          },
          "entrypoint": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_][a-zA-Z0-9_/.-]*\\.(py|ts|js)(:[a-zA-Z_][a-zA-Z0-9_]*)?$"
          },
          "codeLocation": {
            "type": "string",
            "minLength": 1
          },
          "runtimeVersion": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "PYTHON_3_10",
                  "PYTHON_3_11",
                  "PYTHON_3_12",
                  "PYTHON_3_13"
                ]
              },
              {
                "type": "string",
                "enum": [
                  "NODE_18",
                  "NODE_20",
                  "NODE_22"
                ]
              }
            ]
          },
          "envVars": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                },
                "value": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "value"
              ],
              "additionalProperties": false
            }
          },
          "networkMode": {
            "type": "string",
            "enum": [
              "PUBLIC",
              "VPC"
            ]
          },
          "networkConfig": {
            "type": "object",
            "properties": {
              "subnets": {
                "minItems": 1,
                "maxItems": 16,
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^subnet-[0-9a-zA-Z]{8,17}$"
                }
              },
              "securityGroups": {
                "minItems": 1,
                "maxItems": 16,
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^sg-[0-9a-zA-Z]{8,17}$"
                }
              }
            },
            "required": [
              "subnets",
              "securityGroups"
            ],
            "additionalProperties": false
          },
          "instrumentation": {
            "type": "object",
            "properties": {
              "enableOtel": {
                "default": true,
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "protocol": {
            "type": "string",
            "enum": [
              "HTTP",
              "MCP",
              "A2A"
            ]
          },
          "requestHeaderAllowlist": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "executionRoleArn": {
            "type": "string"
          },
          "authorizerType": {
            "type": "string",
            "enum": [
              "AWS_IAM",
              "CUSTOM_JWT"
            ]
          },
          "authorizerConfiguration": {
            "type": "object",
            "properties": {
              "customJwtAuthorizer": {
                "type": "object",
                "properties": {
                  "discoveryUrl": {
                    "type": "string",
                    "format": "uri"
                  },
                  "allowedAudience": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "allowedClients": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "allowedScopes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "customClaims": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "inboundTokenClaimName": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 255,
                          "pattern": "^[A-Za-z0-9_.:-]+$"
                        },
                        "inboundTokenClaimValueType": {
                          "type": "string",
                          "enum": [
                            "STRING",
                            "STRING_ARRAY"
                          ]
                        },
                        "authorizingClaimMatchValue": {
                          "type": "object",
                          "properties": {
                            "claimMatchOperator": {
                              "type": "string",
                              "enum": [
                                "EQUALS",
                                "CONTAINS",
                                "CONTAINS_ANY"
                              ]
                            },
                            "claimMatchValue": {
                              "type": "object",
                              "properties": {
                                "matchValueString": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 255,
                                  "pattern": "^[A-Za-z0-9_.-]+$"
                                },
                                "matchValueStringList": {
                                  "minItems": 1,
                                  "maxItems": 255,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 255,
                                    "pattern": "^[A-Za-z0-9_.-]+$"
                                  }
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "claimMatchOperator",
                            "claimMatchValue"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "inboundTokenClaimName",
                        "inboundTokenClaimValueType",
                        "authorizingClaimMatchValue"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "discoveryUrl"
                ],
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "tags": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            }
          },
          "lifecycleConfiguration": {
            "type": "object",
            "properties": {
              "idleRuntimeSessionTimeout": {
                "type": "integer",
                "minimum": 60,
                "maximum": 28800
              },
              "maxLifetime": {
                "type": "integer",
                "minimum": 60,
                "maximum": 28800
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "name",
          "build",
          "entrypoint",
          "codeLocation"
        ],
        "additionalProperties": false
      }
    },
    "memories": {
      "default": [],
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$"
          },
          "eventExpiryDuration": {
            "type": "integer",
            "minimum": 7,
            "maximum": 365
          },
          "strategies": {
            "default": [],
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SEMANTIC",
                    "SUMMARIZATION",
                    "USER_PREFERENCE",
                    "EPISODIC"
                  ]
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 48,
                  "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$"
                },
                "description": {
                  "type": "string"
                },
                "namespaces": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "reflectionNamespaces": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "type"
              ],
              "additionalProperties": false
            }
          },
          "tags": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            }
          },
          "encryptionKeyArn": {
            "type": "string"
          },
          "executionRoleArn": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "eventExpiryDuration"
        ],
        "additionalProperties": false
      }
    },
    "credentials": {
      "default": [],
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "authorizerType": {
                "type": "string",
                "const": "ApiKeyCredentialProvider"
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128,
                "pattern": "^[a-zA-Z0-9\\-_]+$"
              }
            },
            "required": [
              "authorizerType",
              "name"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "authorizerType": {
                "type": "string",
                "const": "OAuthCredentialProvider"
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128,
                "pattern": "^[a-zA-Z0-9\\-_]+$"
              },
              "discoveryUrl": {
                "type": "string",
                "format": "uri"
              },
              "scopes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "vendor": {
                "default": "CustomOauth2",
                "type": "string"
              },
              "managed": {
                "type": "boolean"
              },
              "usage": {
                "type": "string",
                "enum": [
                  "inbound",
                  "outbound"
                ]
              }
            },
            "required": [
              "authorizerType",
              "name"
            ],
            "additionalProperties": false
          }
        ]
      }
    },
    "evaluators": {
      "default": [],
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$"
          },
          "level": {
            "type": "string",
            "enum": [
              "SESSION",
              "TRACE",
              "TOOL_CALL"
            ]
          },
          "description": {
            "type": "string"
          },
          "config": {
            "type": "object",
            "properties": {
              "llmAsAJudge": {
                "type": "object",
                "properties": {
                  "model": {
                    "type": "string",
                    "minLength": 1
                  },
                  "instructions": {
                    "type": "string",
                    "minLength": 1
                  },
                  "ratingScale": {
                    "type": "object",
                    "properties": {
                      "numerical": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1
                            },
                            "definition": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "value",
                            "label",
                            "definition"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "categorical": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "minLength": 1
                            },
                            "definition": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "label",
                            "definition"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "model",
                  "instructions",
                  "ratingScale"
                ],
                "additionalProperties": false
              },
              "codeBased": {
                "type": "object",
                "properties": {
                  "managed": {
                    "type": "object",
                    "properties": {
                      "codeLocation": {
                        "type": "string",
                        "minLength": 1
                      },
                      "entrypoint": {
                        "default": "lambda_function.handler",
                        "type": "string",
                        "minLength": 1
                      },
                      "timeoutSeconds": {
                        "default": 60,
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 300
                      },
                      "additionalPolicies": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      }
                    },
                    "required": [
                      "codeLocation"
                    ],
                    "additionalProperties": false
                  },
                  "external": {
                    "type": "object",
                    "properties": {
                      "lambdaArn": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^arn:aws[a-z-]*:lambda:[a-z0-9-]+:\\d{12}:function:.+$"
                      }
                    },
                    "required": [
                      "lambdaArn"
                    ],
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "tags": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            }
          }
        },
        "required": [
          "name",
          "level",
          "config"
        ],
        "additionalProperties": false
      }
    },
    "onlineEvalConfigs": {
      "default": [],
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$"
          },
          "agent": {
            "type": "string",
            "minLength": 1
          },
          "evaluators": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "samplingRate": {
            "type": "number",
            "minimum": 0.01,
            "maximum": 100
          },
          "description": {
            "type": "string",
            "maxLength": 200
          },
          "enableOnCreate": {
            "type": "boolean"
          },
          "tags": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            }
          }
        },
        "required": [
          "name",
          "agent",
          "evaluators",
          "samplingRate"
        ],
        "additionalProperties": false
      }
    },
    "agentCoreGateways": {
      "default": [],
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[0-9a-zA-Z](?:[0-9a-zA-Z-]*[0-9a-zA-Z])?$"
          },
          "description": {
            "type": "string"
          },
          "targets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "targetType": {
                  "type": "string",
                  "enum": [
                    "lambda",
                    "mcpServer",
                    "openApiSchema",
                    "smithyModel",
                    "apiGateway",
                    "lambdaFunctionArn"
                  ]
                },
                "toolDefinitions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128
                      },
                      "description": {
                        "type": "string",
                        "minLength": 1
                      },
                      "inputSchema": {
                        "$ref": "#/$defs/__schema0"
                      },
                      "outputSchema": {
                        "allOf": [
                          {
                            "$ref": "#/$defs/__schema0"
                          }
                        ]
                      }
                    },
                    "required": [
                      "name",
                      "description",
                      "inputSchema"
                    ],
                    "additionalProperties": false
                  }
                },
                "compute": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "host": {
                          "type": "string",
                          "const": "Lambda"
                        },
                        "implementation": {
                          "type": "object",
                          "properties": {
                            "language": {
                              "type": "string",
                              "enum": [
                                "TypeScript",
                                "Python"
                              ]
                            },
                            "path": {
                              "type": "string",
                              "minLength": 1
                            },
                            "handler": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "language",
                            "path",
                            "handler"
                          ],
                          "additionalProperties": false
                        },
                        "nodeVersion": {
                          "type": "string",
                          "enum": [
                            "NODE_18",
                            "NODE_20",
                            "NODE_22"
                          ]
                        },
                        "pythonVersion": {
                          "type": "string",
                          "enum": [
                            "PYTHON_3_10",
                            "PYTHON_3_11",
                            "PYTHON_3_12",
                            "PYTHON_3_13"
                          ]
                        },
                        "timeout": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 900
                        },
                        "memorySize": {
                          "type": "integer",
                          "minimum": 128,
                          "maximum": 10240
                        },
                        "iamPolicy": {
                          "type": "object",
                          "properties": {
                            "Version": {
                              "type": "string"
                            },
                            "Statement": {
                              "type": "array",
                              "items": {}
                            }
                          },
                          "required": [
                            "Version",
                            "Statement"
                          ],
                          "additionalProperties": {}
                        }
                      },
                      "required": [
                        "host",
                        "implementation"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "host": {
                          "type": "string",
                          "const": "AgentCoreRuntime"
                        },
                        "implementation": {
                          "type": "object",
                          "properties": {
                            "language": {
                              "type": "string",
                              "enum": [
                                "TypeScript",
                                "Python"
                              ]
                            },
                            "path": {
                              "type": "string",
                              "minLength": 1
                            },
                            "handler": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "language",
                            "path",
                            "handler"
                          ],
                          "additionalProperties": false
                        },
                        "runtime": {
                          "type": "object",
                          "properties": {
                            "artifact": {
                              "type": "string",
                              "const": "CodeZip"
                            },
                            "pythonVersion": {
                              "type": "string",
                              "enum": [
                                "PYTHON_3_10",
                                "PYTHON_3_11",
                                "PYTHON_3_12",
                                "PYTHON_3_13"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 48,
                              "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$"
                            },
                            "entrypoint": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9_][a-zA-Z0-9_/.-]*\\.py(:[a-zA-Z_][a-zA-Z0-9_]*)?$"
                            },
                            "codeLocation": {
                              "type": "string",
                              "minLength": 1
                            },
                            "instrumentation": {
                              "type": "object",
                              "properties": {
                                "enableOtel": {
                                  "default": true,
                                  "type": "boolean"
                                }
                              },
                              "additionalProperties": false
                            },
                            "networkMode": {
                              "default": "PUBLIC",
                              "type": "string",
                              "enum": [
                                "PUBLIC",
                                "VPC"
                              ]
                            },
                            "description": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "artifact",
                            "pythonVersion",
                            "name",
                            "entrypoint",
                            "codeLocation"
                          ],
                          "additionalProperties": false
                        },
                        "iamPolicy": {
                          "type": "object",
                          "properties": {
                            "Version": {
                              "type": "string"
                            },
                            "Statement": {
                              "type": "array",
                              "items": {}
                            }
                          },
                          "required": [
                            "Version",
                            "Statement"
                          ],
                          "additionalProperties": {}
                        }
                      },
                      "required": [
                        "host",
                        "implementation"
                      ],
                      "additionalProperties": false
                    }
                  ]
                },
                "endpoint": {
                  "type": "string",
                  "format": "uri"
                },
                "outboundAuth": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "default": "NONE",
                      "type": "string",
                      "enum": [
                        "OAUTH",
                        "API_KEY",
                        "NONE"
                      ]
                    },
                    "credentialName": {
                      "type": "string",
                      "minLength": 1
                    },
                    "scopes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "apiGateway": {
                  "type": "object",
                  "properties": {
                    "restApiId": {
                      "type": "string",
                      "minLength": 1
                    },
                    "stage": {
                      "type": "string",
                      "minLength": 1
                    },
                    "apiGatewayToolConfiguration": {
                      "type": "object",
                      "properties": {
                        "toolFilters": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "filterPath": {
                                "type": "string",
                                "minLength": 1
                              },
                              "methods": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "GET",
                                    "POST",
                                    "PUT",
                                    "DELETE",
                                    "PATCH",
                                    "HEAD",
                                    "OPTIONS"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "filterPath",
                              "methods"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "toolOverrides": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1
                              },
                              "path": {
                                "type": "string",
                                "minLength": 1
                              },
                              "method": {
                                "type": "string",
                                "enum": [
                                  "GET",
                                  "POST",
                                  "PUT",
                                  "DELETE",
                                  "PATCH",
                                  "HEAD",
                                  "OPTIONS"
                                ]
                              },
                              "description": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "name",
                              "path",
                              "method"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "toolFilters"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "restApiId",
                    "stage",
                    "apiGatewayToolConfiguration"
                  ],
                  "additionalProperties": false
                },
                "schemaSource": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "inline": {
                          "type": "object",
                          "properties": {
                            "path": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "path"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "inline"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "s3": {
                          "type": "object",
                          "properties": {
                            "uri": {
                              "type": "string",
                              "minLength": 1,
                              "pattern": "^s3:\\/\\/.*"
                            },
                            "bucketOwnerAccountId": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "uri"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "s3"
                      ],
                      "additionalProperties": false
                    }
                  ]
                },
                "lambdaFunctionArn": {
                  "type": "object",
                  "properties": {
                    "lambdaArn": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 170
                    },
                    "toolSchemaFile": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "lambdaArn",
                    "toolSchemaFile"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "name",
                "targetType"
              ],
              "additionalProperties": false
            }
          },
          "authorizerType": {
            "default": "NONE",
            "type": "string",
            "enum": [
              "NONE",
              "AWS_IAM",
              "CUSTOM_JWT"
            ]
          },
          "authorizerConfiguration": {
            "type": "object",
            "properties": {
              "customJwtAuthorizer": {
                "type": "object",
                "properties": {
                  "discoveryUrl": {
                    "type": "string",
                    "format": "uri"
                  },
                  "allowedAudience": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "allowedClients": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "allowedScopes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "customClaims": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "inboundTokenClaimName": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 255,
                          "pattern": "^[A-Za-z0-9_.:-]+$"
                        },
                        "inboundTokenClaimValueType": {
                          "type": "string",
                          "enum": [
                            "STRING",
                            "STRING_ARRAY"
                          ]
                        },
                        "authorizingClaimMatchValue": {
                          "type": "object",
                          "properties": {
                            "claimMatchOperator": {
                              "type": "string",
                              "enum": [
                                "EQUALS",
                                "CONTAINS",
                                "CONTAINS_ANY"
                              ]
                            },
                            "claimMatchValue": {
                              "type": "object",
                              "properties": {
                                "matchValueString": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 255,
                                  "pattern": "^[A-Za-z0-9_.-]+$"
                                },
                                "matchValueStringList": {
                                  "minItems": 1,
                                  "maxItems": 255,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 255,
                                    "pattern": "^[A-Za-z0-9_.-]+$"
                                  }
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "claimMatchOperator",
                            "claimMatchValue"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "inboundTokenClaimName",
                        "inboundTokenClaimValueType",
                        "authorizingClaimMatchValue"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "discoveryUrl"
                ],
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "enableSemanticSearch": {
            "default": true,
            "type": "boolean"
          },
          "exceptionLevel": {
            "default": "NONE",
            "type": "string",
            "enum": [
              "NONE",
              "DEBUG"
            ]
          },
          "policyEngineConfiguration": {
            "type": "object",
            "properties": {
              "policyEngineName": {
                "type": "string",
                "minLength": 1
              },
              "mode": {
                "type": "string",
                "enum": [
                  "LOG_ONLY",
                  "ENFORCE"
                ]
              }
            },
            "required": [
              "policyEngineName",
              "mode"
            ],
            "additionalProperties": false
          },
          "tags": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            }
          }
        },
        "required": [
          "name",
          "targets"
        ],
        "additionalProperties": false
      }
    },
    "mcpRuntimeTools": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "toolDefinition": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "description": {
                "type": "string",
                "minLength": 1
              },
              "inputSchema": {
                "$ref": "#/$defs/__schema0"
              },
              "outputSchema": {
                "allOf": [
                  {
                    "$ref": "#/$defs/__schema0"
                  }
                ]
              }
            },
            "required": [
              "name",
              "description",
              "inputSchema"
            ],
            "additionalProperties": false
          },
          "compute": {
            "type": "object",
            "properties": {
              "host": {
                "type": "string",
                "const": "AgentCoreRuntime"
              },
              "implementation": {
                "type": "object",
                "properties": {
                  "language": {
                    "type": "string",
                    "enum": [
                      "TypeScript",
                      "Python"
                    ]
                  },
                  "path": {
                    "type": "string",
                    "minLength": 1
                  },
                  "handler": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "language",
                  "path",
                  "handler"
                ],
                "additionalProperties": false
              },
              "runtime": {
                "type": "object",
                "properties": {
                  "artifact": {
                    "type": "string",
                    "const": "CodeZip"
                  },
                  "pythonVersion": {
                    "type": "string",
                    "enum": [
                      "PYTHON_3_10",
                      "PYTHON_3_11",
                      "PYTHON_3_12",
                      "PYTHON_3_13"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 48,
                    "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$"
                  },
                  "entrypoint": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9_][a-zA-Z0-9_/.-]*\\.py(:[a-zA-Z_][a-zA-Z0-9_]*)?$"
                  },
                  "codeLocation": {
                    "type": "string",
                    "minLength": 1
                  },
                  "instrumentation": {
                    "type": "object",
                    "properties": {
                      "enableOtel": {
                        "default": true,
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  },
                  "networkMode": {
                    "default": "PUBLIC",
                    "type": "string",
                    "enum": [
                      "PUBLIC",
                      "VPC"
                    ]
                  },
                  "description": {
                    "type": "string"
                  }
                },
                "required": [
                  "artifact",
                  "pythonVersion",
                  "name",
                  "entrypoint",
                  "codeLocation"
                ],
                "additionalProperties": false
              },
              "iamPolicy": {
                "type": "object",
                "properties": {
                  "Version": {
                    "type": "string"
                  },
                  "Statement": {
                    "type": "array",
                    "items": {}
                  }
                },
                "required": [
                  "Version",
                  "Statement"
                ],
                "additionalProperties": {}
              }
            },
            "required": [
              "host",
              "implementation"
            ],
            "additionalProperties": false
          },
          "bindings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "runtimeName": {
                  "type": "string",
                  "minLength": 1
                },
                "envVarName": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                }
              },
              "required": [
                "runtimeName",
                "envVarName"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "name",
          "toolDefinition",
          "compute"
        ],
        "additionalProperties": false
      }
    },
    "unassignedTargets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "targetType": {
            "type": "string",
            "enum": [
              "lambda",
              "mcpServer",
              "openApiSchema",
              "smithyModel",
              "apiGateway",
              "lambdaFunctionArn"
            ]
          },
          "toolDefinitions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "description": {
                  "type": "string",
                  "minLength": 1
                },
                "inputSchema": {
                  "$ref": "#/$defs/__schema0"
                },
                "outputSchema": {
                  "allOf": [
                    {
                      "$ref": "#/$defs/__schema0"
                    }
                  ]
                }
              },
              "required": [
                "name",
                "description",
                "inputSchema"
              ],
              "additionalProperties": false
            }
          },
          "compute": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "host": {
                    "type": "string",
                    "const": "Lambda"
                  },
                  "implementation": {
                    "type": "object",
                    "properties": {
                      "language": {
                        "type": "string",
                        "enum": [
                          "TypeScript",
                          "Python"
                        ]
                      },
                      "path": {
                        "type": "string",
                        "minLength": 1
                      },
                      "handler": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "language",
                      "path",
                      "handler"
                    ],
                    "additionalProperties": false
                  },
                  "nodeVersion": {
                    "type": "string",
                    "enum": [
                      "NODE_18",
                      "NODE_20",
                      "NODE_22"
                    ]
                  },
                  "pythonVersion": {
                    "type": "string",
                    "enum": [
                      "PYTHON_3_10",
                      "PYTHON_3_11",
                      "PYTHON_3_12",
                      "PYTHON_3_13"
                    ]
                  },
                  "timeout": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 900
                  },
                  "memorySize": {
                    "type": "integer",
                    "minimum": 128,
                    "maximum": 10240
                  },
                  "iamPolicy": {
                    "type": "object",
                    "properties": {
                      "Version": {
                        "type": "string"
                      },
                      "Statement": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "Version",
                      "Statement"
                    ],
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "host",
                  "implementation"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "host": {
                    "type": "string",
                    "const": "AgentCoreRuntime"
                  },
                  "implementation": {
                    "type": "object",
                    "properties": {
                      "language": {
                        "type": "string",
                        "enum": [
                          "TypeScript",
                          "Python"
                        ]
                      },
                      "path": {
                        "type": "string",
                        "minLength": 1
                      },
                      "handler": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "language",
                      "path",
                      "handler"
                    ],
                    "additionalProperties": false
                  },
                  "runtime": {
                    "type": "object",
                    "properties": {
                      "artifact": {
                        "type": "string",
                        "const": "CodeZip"
                      },
                      "pythonVersion": {
                        "type": "string",
                        "enum": [
                          "PYTHON_3_10",
                          "PYTHON_3_11",
                          "PYTHON_3_12",
                          "PYTHON_3_13"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 48,
                        "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$"
                      },
                      "entrypoint": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[a-zA-Z0-9_][a-zA-Z0-9_/.-]*\\.py(:[a-zA-Z_][a-zA-Z0-9_]*)?$"
                      },
                      "codeLocation": {
                        "type": "string",
                        "minLength": 1
                      },
                      "instrumentation": {
                        "type": "object",
                        "properties": {
                          "enableOtel": {
                            "default": true,
                            "type": "boolean"
                          }
                        },
                        "additionalProperties": false
                      },
                      "networkMode": {
                        "default": "PUBLIC",
                        "type": "string",
                        "enum": [
                          "PUBLIC",
                          "VPC"
                        ]
                      },
                      "description": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "artifact",
                      "pythonVersion",
                      "name",
                      "entrypoint",
                      "codeLocation"
                    ],
                    "additionalProperties": false
                  },
                  "iamPolicy": {
                    "type": "object",
                    "properties": {
                      "Version": {
                        "type": "string"
                      },
                      "Statement": {
                        "type": "array",
                        "items": {}
                      }
                    },
                    "required": [
                      "Version",
                      "Statement"
                    ],
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "host",
                  "implementation"
                ],
                "additionalProperties": false
              }
            ]
          },
          "endpoint": {
            "type": "string",
            "format": "uri"
          },
          "outboundAuth": {
            "type": "object",
            "properties": {
              "type": {
                "default": "NONE",
                "type": "string",
                "enum": [
                  "OAUTH",
                  "API_KEY",
                  "NONE"
                ]
              },
              "credentialName": {
                "type": "string",
                "minLength": 1
              },
              "scopes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          },
          "apiGateway": {
            "type": "object",
            "properties": {
              "restApiId": {
                "type": "string",
                "minLength": 1
              },
              "stage": {
                "type": "string",
                "minLength": 1
              },
              "apiGatewayToolConfiguration": {
                "type": "object",
                "properties": {
                  "toolFilters": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "filterPath": {
                          "type": "string",
                          "minLength": 1
                        },
                        "methods": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "GET",
                              "POST",
                              "PUT",
                              "DELETE",
                              "PATCH",
                              "HEAD",
                              "OPTIONS"
                            ]
                          }
                        }
                      },
                      "required": [
                        "filterPath",
                        "methods"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "toolOverrides": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1
                        },
                        "path": {
                          "type": "string",
                          "minLength": 1
                        },
                        "method": {
                          "type": "string",
                          "enum": [
                            "GET",
                            "POST",
                            "PUT",
                            "DELETE",
                            "PATCH",
                            "HEAD",
                            "OPTIONS"
                          ]
                        },
                        "description": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "path",
                        "method"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "toolFilters"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "restApiId",
              "stage",
              "apiGatewayToolConfiguration"
            ],
            "additionalProperties": false
          },
          "schemaSource": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "inline": {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "inline"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "s3": {
                    "type": "object",
                    "properties": {
                      "uri": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^s3:\\/\\/.*"
                      },
                      "bucketOwnerAccountId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "uri"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "s3"
                ],
                "additionalProperties": false
              }
            ]
          },
          "lambdaFunctionArn": {
            "type": "object",
            "properties": {
              "lambdaArn": {
                "type": "string",
                "minLength": 1,
                "maxLength": 170
              },
              "toolSchemaFile": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "lambdaArn",
              "toolSchemaFile"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "name",
          "targetType"
        ],
        "additionalProperties": false
      }
    },
    "policyEngines": {
      "default": [],
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,47}$"
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4096
          },
          "encryptionKeyArn": {
            "type": "string"
          },
          "tags": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$"
            }
          },
          "policies": {
            "default": [],
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 48,
                  "pattern": "^[A-Za-z][A-Za-z0-9_]{0,47}$"
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 4096
                },
                "statement": {
                  "type": "string",
                  "minLength": 1
                },
                "sourceFile": {
                  "type": "string"
                },
                "validationMode": {
                  "default": "FAIL_ON_ANY_FINDINGS",
                  "type": "string",
                  "enum": [
                    "FAIL_ON_ANY_FINDINGS",
                    "IGNORE_ALL_FINDINGS"
                  ]
                }
              },
              "required": [
                "name",
                "statement"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false,
  "$defs": {
    "__schema0": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "string",
            "number",
            "object",
            "array",
            "boolean",
            "integer"
          ]
        },
        "description": {
          "type": "string"
        },
        "items": {
          "allOf": [
            {
              "$ref": "#/$defs/__schema0"
            }
          ]
        },
        "properties": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "$ref": "#/$defs/__schema0"
          }
        },
        "required": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "type"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "name",
    "version"
  ]
}
