{
 "additionalProperties": false,
 "definitions": {
  "APISchema": {
   "oneOf": [
    {
     "additionalProperties": false,
     "properties": {
      "S3": {
       "$ref": "#/definitions/S3Identifier"
      }
     },
     "required": [
      "S3"
     ],
     "title": "S3",
     "type": "object"
    },
    {
     "additionalProperties": false,
     "properties": {
      "Payload": {
       "type": "string"
      }
     },
     "required": [
      "Payload"
     ],
     "title": "Payload",
     "type": "object"
    }
   ]
  },
  "ActionGroupExecutor": {
   "oneOf": [
    {
     "additionalProperties": false,
     "properties": {
      "Lambda": {
       "maxLength": 2048,
       "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z0-9-]{1,20}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$",
       "type": "string"
      }
     },
     "required": [
      "Lambda"
     ],
     "title": "Lambda",
     "type": "object"
    },
    {
     "additionalProperties": false,
     "properties": {
      "CustomControl": {
       "$ref": "#/definitions/CustomControlMethod"
      }
     },
     "required": [
      "CustomControl"
     ],
     "title": "CustomControl",
     "type": "object"
    }
   ]
  },
  "ActionGroupSignature": {
   "enum": [
    "AMAZON.UserInput",
    "AMAZON.CodeInterpreter"
   ],
   "type": "string"
  },
  "ActionGroupState": {
   "enum": [
    "ENABLED",
    "DISABLED"
   ],
   "type": "string"
  },
  "AdditionalModelRequestFields": {
   "type": "object"
  },
  "AgentActionGroup": {
   "additionalProperties": false,
   "properties": {
    "ActionGroupExecutor": {
     "$ref": "#/definitions/ActionGroupExecutor"
    },
    "ActionGroupName": {
     "pattern": "^([0-9a-zA-Z][_-]?){1,100}$",
     "type": "string"
    },
    "ActionGroupState": {
     "$ref": "#/definitions/ActionGroupState"
    },
    "ApiSchema": {
     "$ref": "#/definitions/APISchema"
    },
    "Description": {
     "maxLength": 200,
     "minLength": 1,
     "type": "string"
    },
    "FunctionSchema": {
     "$ref": "#/definitions/FunctionSchema"
    },
    "ParentActionGroupSignature": {
     "$ref": "#/definitions/ActionGroupSignature"
    },
    "SkipResourceInUseCheckOnDelete": {
     "default": false,
     "type": "boolean"
    }
   },
   "required": [
    "ActionGroupName"
   ],
   "type": "object"
  },
  "AgentCollaboration": {
   "enum": [
    "DISABLED",
    "SUPERVISOR",
    "SUPERVISOR_ROUTER"
   ],
   "type": "string"
  },
  "AgentCollaborator": {
   "additionalProperties": false,
   "properties": {
    "AgentDescriptor": {
     "additionalProperties": false,
     "properties": {
      "AliasArn": {
       "pattern": "^arn:(aws[a-zA-Z-]*)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$",
       "type": "string"
      }
     },
     "type": "object"
    },
    "CollaborationInstruction": {
     "type": "string"
    },
    "CollaboratorName": {
     "type": "string"
    },
    "RelayConversationHistory": {
     "$ref": "#/definitions/RelayConversationHistory"
    }
   },
   "required": [
    "AgentDescriptor",
    "CollaborationInstruction",
    "CollaboratorName"
   ],
   "type": "object"
  },
  "AgentKnowledgeBase": {
   "additionalProperties": false,
   "properties": {
    "Description": {
     "maxLength": 200,
     "minLength": 1,
     "type": "string"
    },
    "KnowledgeBaseId": {
     "pattern": "^[0-9a-zA-Z]{10}$",
     "type": "string"
    },
    "KnowledgeBaseState": {
     "$ref": "#/definitions/KnowledgeBaseState"
    }
   },
   "required": [
    "KnowledgeBaseId",
    "Description"
   ],
   "type": "object"
  },
  "AgentStatus": {
   "enum": [
    "CREATING",
    "PREPARING",
    "PREPARED",
    "NOT_PREPARED",
    "DELETING",
    "FAILED",
    "VERSIONING",
    "UPDATING"
   ],
   "type": "string"
  },
  "CreationMode": {
   "enum": [
    "DEFAULT",
    "OVERRIDDEN"
   ],
   "type": "string"
  },
  "CustomControlMethod": {
   "enum": [
    "RETURN_CONTROL"
   ],
   "type": "string"
  },
  "CustomOrchestration": {
   "additionalProperties": false,
   "properties": {
    "Executor": {
     "$ref": "#/definitions/OrchestrationExecutor"
    }
   },
   "type": "object"
  },
  "EnabledMemoryTypes": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/MemoryType"
   },
   "type": "array"
  },
  "FoundationModel": {
   "maxLength": 2048,
   "minLength": 1,
   "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|([0-9]{12}:(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$",
   "type": "string"
  },
  "Function": {
   "additionalProperties": false,
   "properties": {
    "Description": {
     "maxLength": 1200,
     "minLength": 1,
     "type": "string"
    },
    "Name": {
     "pattern": "^([0-9a-zA-Z][_-]?){1,100}$",
     "type": "string"
    },
    "Parameters": {
     "$ref": "#/definitions/ParameterMap"
    },
    "RequireConfirmation": {
     "$ref": "#/definitions/RequireConfirmation"
    }
   },
   "required": [
    "Name"
   ],
   "type": "object"
  },
  "FunctionSchema": {
   "additionalProperties": false,
   "properties": {
    "Functions": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/Function"
     },
     "type": "array"
    }
   },
   "required": [
    "Functions"
   ],
   "title": "Functions",
   "type": "object"
  },
  "GuardrailConfiguration": {
   "additionalProperties": false,
   "properties": {
    "GuardrailIdentifier": {
     "maxLength": 2048,
     "pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$",
     "type": "string"
    },
    "GuardrailVersion": {
     "pattern": "^(([0-9]{1,8})|(DRAFT))$",
     "type": "string"
    }
   },
   "type": "object"
  },
  "InferenceConfiguration": {
   "additionalProperties": false,
   "properties": {
    "MaximumLength": {
     "maximum": 131072,
     "minimum": 0,
     "type": "number"
    },
    "StopSequences": {
     "insertionOrder": false,
     "items": {
      "type": "string"
     },
     "maxItems": 4,
     "minItems": 0,
     "type": "array"
    },
    "Temperature": {
     "maximum": 1,
     "minimum": 0,
     "type": "number"
    },
    "TopK": {
     "maximum": 500,
     "minimum": 0,
     "type": "number"
    },
    "TopP": {
     "maximum": 1,
     "minimum": 0,
     "type": "number"
    }
   },
   "type": "object"
  },
  "KnowledgeBaseState": {
   "enum": [
    "ENABLED",
    "DISABLED"
   ],
   "type": "string"
  },
  "MemoryConfiguration": {
   "additionalProperties": false,
   "properties": {
    "EnabledMemoryTypes": {
     "$ref": "#/definitions/EnabledMemoryTypes"
    },
    "SessionSummaryConfiguration": {
     "$ref": "#/definitions/SessionSummaryConfiguration"
    },
    "StorageDays": {
     "type": "number"
    }
   },
   "type": "object"
  },
  "MemoryType": {
   "enum": [
    "SESSION_SUMMARY"
   ],
   "type": "string"
  },
  "OrchestrationExecutor": {
   "additionalProperties": false,
   "properties": {
    "Lambda": {
     "maxLength": 2048,
     "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z0-9-]{1,20}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$",
     "type": "string"
    }
   },
   "required": [
    "Lambda"
   ],
   "title": "Lambda",
   "type": "object"
  },
  "OrchestrationType": {
   "enum": [
    "DEFAULT",
    "CUSTOM_ORCHESTRATION"
   ],
   "type": "string"
  },
  "ParameterDetail": {
   "additionalProperties": false,
   "properties": {
    "Description": {
     "maxLength": 500,
     "minLength": 1,
     "type": "string"
    },
    "Required": {
     "type": "boolean"
    },
    "Type": {
     "$ref": "#/definitions/Type"
    }
   },
   "required": [
    "Type"
   ],
   "type": "object"
  },
  "ParameterMap": {
   "additionalProperties": false,
   "patternProperties": {
    "^([0-9a-zA-Z][_-]?){1,100}$": {
     "$ref": "#/definitions/ParameterDetail"
    }
   },
   "type": "object"
  },
  "PromptConfiguration": {
   "additionalProperties": false,
   "properties": {
    "AdditionalModelRequestFields": {
     "$ref": "#/definitions/AdditionalModelRequestFields"
    },
    "BasePromptTemplate": {
     "maxLength": 100000,
     "minLength": 1,
     "type": "string"
    },
    "FoundationModel": {
     "$ref": "#/definitions/FoundationModel"
    },
    "InferenceConfiguration": {
     "$ref": "#/definitions/InferenceConfiguration"
    },
    "ParserMode": {
     "$ref": "#/definitions/CreationMode"
    },
    "PromptCreationMode": {
     "$ref": "#/definitions/CreationMode"
    },
    "PromptState": {
     "$ref": "#/definitions/PromptState"
    },
    "PromptType": {
     "$ref": "#/definitions/PromptType"
    }
   },
   "type": "object"
  },
  "PromptOverrideConfiguration": {
   "additionalProperties": false,
   "properties": {
    "OverrideLambda": {
     "maxLength": 2048,
     "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z0-9-]{1,20}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$",
     "type": "string"
    },
    "PromptConfigurations": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/PromptConfiguration"
     },
     "maxItems": 10,
     "type": "array"
    }
   },
   "required": [
    "PromptConfigurations"
   ],
   "type": "object"
  },
  "PromptState": {
   "enum": [
    "ENABLED",
    "DISABLED"
   ],
   "type": "string"
  },
  "PromptType": {
   "enum": [
    "PRE_PROCESSING",
    "ORCHESTRATION",
    "POST_PROCESSING",
    "ROUTING_CLASSIFIER",
    "MEMORY_SUMMARIZATION",
    "KNOWLEDGE_BASE_RESPONSE_GENERATION"
   ],
   "type": "string"
  },
  "RelayConversationHistory": {
   "enum": [
    "TO_COLLABORATOR",
    "DISABLED"
   ],
   "type": "string"
  },
  "RequireConfirmation": {
   "enum": [
    "ENABLED",
    "DISABLED"
   ],
   "type": "string"
  },
  "S3Identifier": {
   "additionalProperties": false,
   "properties": {
    "S3BucketName": {
     "format": "AWS::S3::Bucket.Name",
     "maxLength": 63,
     "minLength": 3,
     "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$",
     "type": "string"
    },
    "S3ObjectKey": {
     "maxLength": 1024,
     "minLength": 1,
     "pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$",
     "type": "string"
    }
   },
   "type": "object"
  },
  "SessionSummaryConfiguration": {
   "additionalProperties": false,
   "properties": {
    "MaxRecentSessions": {
     "type": "number"
    }
   },
   "type": "object"
  },
  "TagsMap": {
   "additionalProperties": false,
   "maxItems": 200,
   "minItems": 0,
   "patternProperties": {
    "^[a-zA-Z0-9\\s._:/=+@-]*$": {
     "maxLength": 256,
     "minLength": 0,
     "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$",
     "type": "string"
    }
   },
   "type": "object"
  },
  "Type": {
   "enum": [
    "string",
    "number",
    "integer",
    "boolean",
    "array"
   ],
   "type": "string"
  }
 },
 "primaryIdentifier": [
  "/properties/AgentId"
 ],
 "properties": {
  "ActionGroups": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/AgentActionGroup"
   },
   "type": "array"
  },
  "AgentArn": {
   "maxLength": 2048,
   "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$",
   "type": "string"
  },
  "AgentCollaboration": {
   "$ref": "#/definitions/AgentCollaboration"
  },
  "AgentCollaborators": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/AgentCollaborator"
   },
   "type": "array"
  },
  "AgentId": {
   "pattern": "^[0-9a-zA-Z]{10}$",
   "type": "string"
  },
  "AgentName": {
   "pattern": "^([0-9a-zA-Z][_-]?){1,100}$",
   "type": "string"
  },
  "AgentResourceRoleArn": {
   "format": "AWS::IAM::Role.Arn",
   "maxLength": 2048,
   "type": "string"
  },
  "AgentStatus": {
   "$ref": "#/definitions/AgentStatus"
  },
  "AgentVersion": {
   "maxLength": 5,
   "minLength": 5,
   "pattern": "^DRAFT$",
   "type": "string"
  },
  "AutoPrepare": {
   "default": false,
   "type": "boolean"
  },
  "CreatedAt": {
   "format": "date-time",
   "type": "string"
  },
  "CustomOrchestration": {
   "$ref": "#/definitions/CustomOrchestration"
  },
  "CustomerEncryptionKeyArn": {
   "maxLength": 2048,
   "minLength": 1,
   "pattern": "^arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$",
   "type": "string"
  },
  "Description": {
   "maxLength": 200,
   "minLength": 1,
   "type": "string"
  },
  "FailureReasons": {
   "insertionOrder": false,
   "items": {
    "maxLength": 2048,
    "type": "string"
   },
   "maxItems": 2048,
   "type": "array"
  },
  "FoundationModel": {
   "$ref": "#/definitions/FoundationModel"
  },
  "GuardrailConfiguration": {
   "$ref": "#/definitions/GuardrailConfiguration"
  },
  "IdleSessionTTLInSeconds": {
   "maximum": 5400,
   "minimum": 60,
   "type": "number"
  },
  "Instruction": {
   "minLength": 40,
   "type": "string"
  },
  "KnowledgeBases": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/AgentKnowledgeBase"
   },
   "type": "array"
  },
  "MemoryConfiguration": {
   "$ref": "#/definitions/MemoryConfiguration"
  },
  "OrchestrationType": {
   "$ref": "#/definitions/OrchestrationType"
  },
  "PreparedAt": {
   "format": "date-time",
   "type": "string"
  },
  "PromptOverrideConfiguration": {
   "$ref": "#/definitions/PromptOverrideConfiguration"
  },
  "RecommendedActions": {
   "insertionOrder": false,
   "items": {
    "maxLength": 2048,
    "type": "string"
   },
   "maxItems": 2048,
   "type": "array"
  },
  "SkipResourceInUseCheckOnDelete": {
   "default": false,
   "type": "boolean"
  },
  "Tags": {
   "$ref": "#/definitions/TagsMap"
  },
  "TestAliasTags": {
   "$ref": "#/definitions/TagsMap"
  },
  "UpdatedAt": {
   "format": "date-time",
   "type": "string"
  }
 },
 "readOnlyProperties": [
  "/properties/AgentArn",
  "/properties/AgentId",
  "/properties/AgentStatus",
  "/properties/AgentVersion",
  "/properties/CreatedAt",
  "/properties/FailureReasons",
  "/properties/PreparedAt",
  "/properties/RecommendedActions",
  "/properties/UpdatedAt"
 ],
 "required": [
  "AgentName"
 ],
 "tagging": {
  "cloudFormationSystemTags": false,
  "tagOnCreate": true,
  "tagProperty": "/properties/Tags",
  "tagUpdatable": true,
  "taggable": true
 },
 "typeName": "AWS::Bedrock::Agent",
 "writeOnlyProperties": [
  "/properties/AutoPrepare",
  "/properties/SkipResourceInUseCheckOnDelete",
  "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete"
 ]
}
