{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2024-02-28",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"bedrock-agentcore",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Amazon Bedrock AgentCore",
    "serviceId":"Bedrock AgentCore",
    "signatureVersion":"v4",
    "signingName":"bedrock-agentcore",
    "uid":"bedrock-agentcore-2024-02-28"
  },
  "operations":{
    "BatchCreateMemoryRecords":{
      "name":"BatchCreateMemoryRecords",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/memoryRecords/batchCreate",
        "responseCode":201
      },
      "input":{"shape":"BatchCreateMemoryRecordsInput"},
      "output":{"shape":"BatchCreateMemoryRecordsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Creates multiple memory records in a single batch operation for the specified memory with custom content.</p>",
      "idempotent":true
    },
    "BatchDeleteMemoryRecords":{
      "name":"BatchDeleteMemoryRecords",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/memoryRecords/batchDelete",
        "responseCode":200
      },
      "input":{"shape":"BatchDeleteMemoryRecordsInput"},
      "output":{"shape":"BatchDeleteMemoryRecordsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes multiple memory records in a single batch operation from the specified memory.</p>"
    },
    "BatchUpdateMemoryRecords":{
      "name":"BatchUpdateMemoryRecords",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/memoryRecords/batchUpdate",
        "responseCode":200
      },
      "input":{"shape":"BatchUpdateMemoryRecordsInput"},
      "output":{"shape":"BatchUpdateMemoryRecordsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Updates multiple memory records with custom content in a single batch operation within the specified memory.</p>"
    },
    "CompleteResourceTokenAuth":{
      "name":"CompleteResourceTokenAuth",
      "http":{
        "method":"POST",
        "requestUri":"/identities/CompleteResourceTokenAuth",
        "responseCode":200
      },
      "input":{"shape":"CompleteResourceTokenAuthRequest"},
      "output":{"shape":"CompleteResourceTokenAuthResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Confirms the user authentication session for obtaining OAuth2.0 tokens for a resource.</p>"
    },
    "CreateABTest":{
      "name":"CreateABTest",
      "http":{
        "method":"POST",
        "requestUri":"/ab-tests",
        "responseCode":202
      },
      "input":{"shape":"CreateABTestRequest"},
      "output":{"shape":"CreateABTestResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates an A/B test for comparing agent configurations. A/B tests split traffic between a control variant and a treatment variant through a gateway, then evaluate performance using online evaluation configurations to determine which variant performs better.</p>"
    },
    "CreateEvent":{
      "name":"CreateEvent",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/events",
        "responseCode":201
      },
      "input":{"shape":"CreateEventInput"},
      "output":{"shape":"CreateEventOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"RetryableConflictException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Creates an event in an AgentCore Memory resource. Events represent interactions or activities that occur within a session and are associated with specific actors.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:CreateEvent</code> permission.</p> <p>This operation is subject to request rate limiting.</p>",
      "idempotent":true
    },
    "DeleteABTest":{
      "name":"DeleteABTest",
      "http":{
        "method":"DELETE",
        "requestUri":"/ab-tests/{abTestId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteABTestRequest"},
      "output":{"shape":"DeleteABTestResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes an A/B test and its associated gateway rules.</p>",
      "idempotent":true
    },
    "DeleteBatchEvaluation":{
      "name":"DeleteBatchEvaluation",
      "http":{
        "method":"DELETE",
        "requestUri":"/evaluations/batch-evaluate/{batchEvaluationId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteBatchEvaluationRequest"},
      "output":{"shape":"DeleteBatchEvaluationResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a batch evaluation and its associated results.</p>",
      "idempotent":true
    },
    "DeleteEvent":{
      "name":"DeleteEvent",
      "http":{
        "method":"DELETE",
        "requestUri":"/memories/{memoryId}/actor/{actorId}/sessions/{sessionId}/events/{eventId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteEventInput"},
      "output":{"shape":"DeleteEventOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes an event from an AgentCore Memory resource. When you delete an event, it is permanently removed.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:DeleteEvent</code> permission.</p>"
    },
    "DeleteMemoryRecord":{
      "name":"DeleteMemoryRecord",
      "http":{
        "method":"DELETE",
        "requestUri":"/memories/{memoryId}/memoryRecords/{memoryRecordId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteMemoryRecordInput"},
      "output":{"shape":"DeleteMemoryRecordOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes a memory record from an AgentCore Memory resource. When you delete a memory record, it is permanently removed.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:DeleteMemoryRecord</code> permission.</p>"
    },
    "DeleteRecommendation":{
      "name":"DeleteRecommendation",
      "http":{
        "method":"DELETE",
        "requestUri":"/recommendations/{recommendationId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteRecommendationRequest"},
      "output":{"shape":"DeleteRecommendationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a recommendation and its associated results.</p>",
      "idempotent":true
    },
    "Evaluate":{
      "name":"Evaluate",
      "http":{
        "method":"POST",
        "requestUri":"/evaluations/evaluate/{evaluatorId}",
        "responseCode":200
      },
      "input":{"shape":"EvaluateRequest"},
      "output":{"shape":"EvaluateResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"UnauthorizedException"},
        {"shape":"DuplicateIdException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Performs on-demand evaluation of agent traces using a specified evaluator. This synchronous API accepts traces in OpenTelemetry format and returns immediate scoring results with detailed explanations.</p>"
    },
    "GetABTest":{
      "name":"GetABTest",
      "http":{
        "method":"GET",
        "requestUri":"/ab-tests/{abTestId}",
        "responseCode":200
      },
      "input":{"shape":"GetABTestRequest"},
      "output":{"shape":"GetABTestResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves detailed information about an A/B test, including its configuration, status, and statistical results.</p>",
      "readonly":true
    },
    "GetAgentCard":{
      "name":"GetAgentCard",
      "http":{
        "method":"GET",
        "requestUri":"/runtimes/{agentRuntimeArn}/invocations/.well-known/agent-card.json",
        "responseCode":200
      },
      "input":{"shape":"GetAgentCardRequest"},
      "output":{"shape":"GetAgentCardResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"RuntimeClientError"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves the A2A agent card associated with an AgentCore Runtime agent.</p>"
    },
    "GetBatchEvaluation":{
      "name":"GetBatchEvaluation",
      "http":{
        "method":"GET",
        "requestUri":"/evaluations/batch-evaluate/{batchEvaluationId}",
        "responseCode":200
      },
      "input":{"shape":"GetBatchEvaluationRequest"},
      "output":{"shape":"GetBatchEvaluationResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves detailed information about a batch evaluation, including its status, configuration, results, and any error details.</p>",
      "readonly":true
    },
    "GetBrowserSession":{
      "name":"GetBrowserSession",
      "http":{
        "method":"GET",
        "requestUri":"/browsers/{browserIdentifier}/sessions/get",
        "responseCode":200
      },
      "input":{"shape":"GetBrowserSessionRequest"},
      "output":{"shape":"GetBrowserSessionResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves detailed information about a specific browser session in Amazon Bedrock AgentCore. This operation returns the session's configuration, current status, associated streams, and metadata.</p> <p>To get a browser session, you must specify both the browser identifier and the session ID. The response includes information about the session's viewport configuration, timeout settings, and stream endpoints.</p> <p>The following operations are related to <code>GetBrowserSession</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartBrowserSession.html\">StartBrowserSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_ListBrowserSessions.html\">ListBrowserSessions</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StopBrowserSession.html\">StopBrowserSession</a> </p> </li> </ul>",
      "readonly":true
    },
    "GetCodeInterpreterSession":{
      "name":"GetCodeInterpreterSession",
      "http":{
        "method":"GET",
        "requestUri":"/code-interpreters/{codeInterpreterIdentifier}/sessions/get",
        "responseCode":200
      },
      "input":{"shape":"GetCodeInterpreterSessionRequest"},
      "output":{"shape":"GetCodeInterpreterSessionResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves detailed information about a specific code interpreter session in Amazon Bedrock AgentCore. This operation returns the session's configuration, current status, and metadata.</p> <p>To get a code interpreter session, you must specify both the code interpreter identifier and the session ID. The response includes information about the session's timeout settings and current status.</p> <p>The following operations are related to <code>GetCodeInterpreterSession</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartCodeInterpreterSession.html\">StartCodeInterpreterSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_ListCodeInterpreterSessions.html\">ListCodeInterpreterSessions</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StopCodeInterpreterSession.html\">StopCodeInterpreterSession</a> </p> </li> </ul>",
      "readonly":true
    },
    "GetEvent":{
      "name":"GetEvent",
      "http":{
        "method":"GET",
        "requestUri":"/memories/{memoryId}/actor/{actorId}/sessions/{sessionId}/events/{eventId}",
        "responseCode":200
      },
      "input":{"shape":"GetEventInput"},
      "output":{"shape":"GetEventOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Retrieves information about a specific event in an AgentCore Memory resource.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:GetEvent</code> permission.</p>",
      "readonly":true
    },
    "GetMemoryRecord":{
      "name":"GetMemoryRecord",
      "http":{
        "method":"GET",
        "requestUri":"/memories/{memoryId}/memoryRecord/{memoryRecordId}",
        "responseCode":200
      },
      "input":{"shape":"GetMemoryRecordInput"},
      "output":{"shape":"GetMemoryRecordOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Retrieves a specific memory record from an AgentCore Memory resource.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:GetMemoryRecord</code> permission.</p>",
      "readonly":true
    },
    "GetRecommendation":{
      "name":"GetRecommendation",
      "http":{
        "method":"GET",
        "requestUri":"/recommendations/{recommendationId}",
        "responseCode":200
      },
      "input":{"shape":"GetRecommendationRequest"},
      "output":{"shape":"GetRecommendationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves detailed information about a recommendation, including its configuration, status, and results.</p>",
      "readonly":true
    },
    "GetResourceApiKey":{
      "name":"GetResourceApiKey",
      "http":{
        "method":"POST",
        "requestUri":"/identities/api-key",
        "responseCode":200
      },
      "input":{"shape":"GetResourceApiKeyRequest"},
      "output":{"shape":"GetResourceApiKeyResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves the API key associated with an API key credential provider.</p>",
      "readonly":true
    },
    "GetResourceOauth2Token":{
      "name":"GetResourceOauth2Token",
      "http":{
        "method":"POST",
        "requestUri":"/identities/oauth2/token",
        "responseCode":200
      },
      "input":{"shape":"GetResourceOauth2TokenRequest"},
      "output":{"shape":"GetResourceOauth2TokenResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns the OAuth 2.0 token of the provided resource.</p>",
      "readonly":true
    },
    "GetWorkloadAccessToken":{
      "name":"GetWorkloadAccessToken",
      "http":{
        "method":"POST",
        "requestUri":"/identities/GetWorkloadAccessToken",
        "responseCode":200
      },
      "input":{"shape":"GetWorkloadAccessTokenRequest"},
      "output":{"shape":"GetWorkloadAccessTokenResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Obtains a workload access token for agentic workloads not acting on behalf of a user.</p>"
    },
    "GetWorkloadAccessTokenForJWT":{
      "name":"GetWorkloadAccessTokenForJWT",
      "http":{
        "method":"POST",
        "requestUri":"/identities/GetWorkloadAccessTokenForJWT",
        "responseCode":200
      },
      "input":{"shape":"GetWorkloadAccessTokenForJWTRequest"},
      "output":{"shape":"GetWorkloadAccessTokenForJWTResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Obtains a workload access token for agentic workloads acting on behalf of a user, using a JWT token.</p>"
    },
    "GetWorkloadAccessTokenForUserId":{
      "name":"GetWorkloadAccessTokenForUserId",
      "http":{
        "method":"POST",
        "requestUri":"/identities/GetWorkloadAccessTokenForUserId",
        "responseCode":200
      },
      "input":{"shape":"GetWorkloadAccessTokenForUserIdRequest"},
      "output":{"shape":"GetWorkloadAccessTokenForUserIdResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Obtains a workload access token for agentic workloads acting on behalf of a user, using the user's ID.</p>"
    },
    "InvokeAgentRuntime":{
      "name":"InvokeAgentRuntime",
      "http":{
        "method":"POST",
        "requestUri":"/runtimes/{agentRuntimeArn}/invocations",
        "responseCode":200
      },
      "input":{"shape":"InvokeAgentRuntimeRequest"},
      "output":{"shape":"InvokeAgentRuntimeResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"RuntimeClientError"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Sends a request to an agent or tool hosted in an Amazon Bedrock AgentCore Runtime and receives responses in real-time. </p> <p>To invoke an agent, you can specify either the AgentCore Runtime ARN or the agent ID with an account ID, and provide a payload containing your request. When you use the agent ID instead of the full ARN, you don't need to URL-encode the identifier. You can optionally specify a qualifier to target a specific endpoint of the agent.</p> <p>This operation supports streaming responses, allowing you to receive partial responses as they become available. We recommend using pagination to ensure that the operation returns quickly and successfully when processing large responses.</p> <p>For example code, see <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-invoke-agent.html\">Invoke an AgentCore Runtime agent</a>. </p> <p>If you're integrating your agent with OAuth, you can't use the Amazon Web Services SDK to call <code>InvokeAgentRuntime</code>. Instead, make a HTTPS request to <code>InvokeAgentRuntime</code>. For an example, see <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-oauth.html\">Authenticate and authorize with Inbound Auth and Outbound Auth</a>.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:InvokeAgentRuntime</code> permission. If you are making a call to <code>InvokeAgentRuntime</code> on behalf of a user ID with the <code>X-Amzn-Bedrock-AgentCore-Runtime-User-Id</code> header, You require permissions to both actions (<code>bedrock-agentcore:InvokeAgentRuntime</code> and <code>bedrock-agentcore:InvokeAgentRuntimeForUser</code>). </p>"
    },
    "InvokeAgentRuntimeCommand":{
      "name":"InvokeAgentRuntimeCommand",
      "http":{
        "method":"POST",
        "requestUri":"/runtimes/{agentRuntimeArn}/commands",
        "responseCode":200
      },
      "input":{"shape":"InvokeAgentRuntimeCommandRequest"},
      "output":{"shape":"InvokeAgentRuntimeCommandResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"RuntimeClientError"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Executes a command in a runtime session container and streams the output back to the caller. This operation allows you to run shell commands within the agent runtime environment and receive real-time streaming responses including standard output and standard error.</p> <p>To invoke a command, you must specify the agent runtime ARN and a runtime session ID. The command execution supports streaming responses, allowing you to receive output as it becomes available through <code>contentStart</code>, <code>contentDelta</code>, and <code>contentStop</code> events.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:InvokeAgentRuntimeCommand</code> permission.</p>"
    },
    "InvokeBrowser":{
      "name":"InvokeBrowser",
      "http":{
        "method":"POST",
        "requestUri":"/browsers/{browserIdentifier}/sessions/invoke",
        "responseCode":200
      },
      "input":{"shape":"InvokeBrowserRequest"},
      "output":{"shape":"InvokeBrowserResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Invokes an operating system-level action on a browser session in Amazon Bedrock AgentCore. This operation provides direct OS-level control over browser sessions, enabling mouse actions, keyboard input, and screenshots that the WebSocket-based Chrome DevTools Protocol (CDP) cannot handle — such as interacting with print dialogs, context menus, and JavaScript alerts.</p> <p>You send a request with exactly one action in the <code>BrowserAction</code> union, and receive a corresponding result in the <code>BrowserActionResult</code> union.</p> <p>The following operations are related to <code>InvokeBrowser</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartBrowserSession.html\">StartBrowserSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_GetBrowserSession.html\">GetBrowserSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StopBrowserSession.html\">StopBrowserSession</a> </p> </li> </ul>"
    },
    "InvokeCodeInterpreter":{
      "name":"InvokeCodeInterpreter",
      "http":{
        "method":"POST",
        "requestUri":"/code-interpreters/{codeInterpreterIdentifier}/tools/invoke",
        "responseCode":200
      },
      "input":{"shape":"InvokeCodeInterpreterRequest"},
      "output":{"shape":"InvokeCodeInterpreterResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Executes code within an active code interpreter session in Amazon Bedrock AgentCore. This operation processes the provided code, runs it in a secure environment, and returns the execution results including output, errors, and generated visualizations.</p> <p>To execute code, you must specify the code interpreter identifier, session ID, and the code to run in the arguments parameter. The operation returns a stream containing the execution results, which can include text output, error messages, and data visualizations.</p> <p>This operation is subject to request rate limiting based on your account's service quotas.</p> <p>The following operations are related to <code>InvokeCodeInterpreter</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartCodeInterpreterSession.html\">StartCodeInterpreterSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_GetCodeInterpreterSession.html\">GetCodeInterpreterSession</a> </p> </li> </ul>"
    },
    "InvokeHarness":{
      "name":"InvokeHarness",
      "http":{
        "method":"POST",
        "requestUri":"/harnesses/invoke",
        "responseCode":200
      },
      "input":{"shape":"InvokeHarnessRequest"},
      "output":{"shape":"InvokeHarnessResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Operation to invoke a Harness.</p>"
    },
    "ListABTests":{
      "name":"ListABTests",
      "http":{
        "method":"GET",
        "requestUri":"/ab-tests",
        "responseCode":200
      },
      "input":{"shape":"ListABTestsRequest"},
      "output":{"shape":"ListABTestsResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all A/B tests in the account.</p>",
      "readonly":true
    },
    "ListActors":{
      "name":"ListActors",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/actors",
        "responseCode":200
      },
      "input":{"shape":"ListActorsInput"},
      "output":{"shape":"ListActorsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists all actors in an AgentCore Memory resource. We recommend using pagination to ensure that the operation returns quickly and successfully.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:ListActors</code> permission.</p>",
      "readonly":true
    },
    "ListBatchEvaluations":{
      "name":"ListBatchEvaluations",
      "http":{
        "method":"GET",
        "requestUri":"/evaluations/batch-evaluate",
        "responseCode":200
      },
      "input":{"shape":"ListBatchEvaluationsRequest"},
      "output":{"shape":"ListBatchEvaluationsResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all batch evaluations in the account, providing summary information about each evaluation's status and configuration.</p>",
      "readonly":true
    },
    "ListBrowserSessions":{
      "name":"ListBrowserSessions",
      "http":{
        "method":"POST",
        "requestUri":"/browsers/{browserIdentifier}/sessions/list",
        "responseCode":200
      },
      "input":{"shape":"ListBrowserSessionsRequest"},
      "output":{"shape":"ListBrowserSessionsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves a list of browser sessions in Amazon Bedrock AgentCore that match the specified criteria. This operation returns summary information about each session, including identifiers, status, and timestamps.</p> <p>You can filter the results by browser identifier and session status. The operation supports pagination to handle large result sets efficiently.</p> <p>We recommend using pagination to ensure that the operation returns quickly and successfully when retrieving large numbers of sessions.</p> <p>The following operations are related to <code>ListBrowserSessions</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartBrowserSession.html\">StartBrowserSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_GetBrowserSession.html\">GetBrowserSession</a> </p> </li> </ul>",
      "readonly":true
    },
    "ListCodeInterpreterSessions":{
      "name":"ListCodeInterpreterSessions",
      "http":{
        "method":"POST",
        "requestUri":"/code-interpreters/{codeInterpreterIdentifier}/sessions/list",
        "responseCode":200
      },
      "input":{"shape":"ListCodeInterpreterSessionsRequest"},
      "output":{"shape":"ListCodeInterpreterSessionsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves a list of code interpreter sessions in Amazon Bedrock AgentCore that match the specified criteria. This operation returns summary information about each session, including identifiers, status, and timestamps.</p> <p>You can filter the results by code interpreter identifier and session status. The operation supports pagination to handle large result sets efficiently.</p> <p>We recommend using pagination to ensure that the operation returns quickly and successfully when retrieving large numbers of sessions.</p> <p>The following operations are related to <code>ListCodeInterpreterSessions</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartCodeInterpreterSession.html\">StartCodeInterpreterSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_GetCodeInterpreterSession.html\">GetCodeInterpreterSession</a> </p> </li> </ul>",
      "readonly":true
    },
    "ListEvents":{
      "name":"ListEvents",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/actor/{actorId}/sessions/{sessionId}",
        "responseCode":200
      },
      "input":{"shape":"ListEventsInput"},
      "output":{"shape":"ListEventsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists events in an AgentCore Memory resource based on specified criteria. We recommend using pagination to ensure that the operation returns quickly and successfully.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:ListEvents</code> permission.</p>",
      "readonly":true
    },
    "ListMemoryExtractionJobs":{
      "name":"ListMemoryExtractionJobs",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/extractionJobs",
        "responseCode":200
      },
      "input":{"shape":"ListMemoryExtractionJobsInput"},
      "output":{"shape":"ListMemoryExtractionJobsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists all long-term memory extraction jobs that are eligible to be started with optional filtering.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:ListMemoryExtractionJobs</code> permission.</p>"
    },
    "ListMemoryRecords":{
      "name":"ListMemoryRecords",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/memoryRecords",
        "responseCode":200
      },
      "input":{"shape":"ListMemoryRecordsInput"},
      "output":{"shape":"ListMemoryRecordsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists memory records in an AgentCore Memory resource based on specified criteria. We recommend using pagination to ensure that the operation returns quickly and successfully.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:ListMemoryRecords</code> permission.</p>",
      "readonly":true
    },
    "ListRecommendations":{
      "name":"ListRecommendations",
      "http":{
        "method":"GET",
        "requestUri":"/recommendations",
        "responseCode":200
      },
      "input":{"shape":"ListRecommendationsRequest"},
      "output":{"shape":"ListRecommendationsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all recommendations in the account, with optional filtering by status.</p>",
      "readonly":true
    },
    "ListSessions":{
      "name":"ListSessions",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/actor/{actorId}/sessions",
        "responseCode":200
      },
      "input":{"shape":"ListSessionsInput"},
      "output":{"shape":"ListSessionsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists sessions in an AgentCore Memory resource based on specified criteria. We recommend using pagination to ensure that the operation returns quickly and successfully.</p> <p>Empty sessions are automatically deleted after one day.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:ListSessions</code> permission.</p>",
      "readonly":true
    },
    "RetrieveMemoryRecords":{
      "name":"RetrieveMemoryRecords",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/retrieve",
        "responseCode":200
      },
      "input":{"shape":"RetrieveMemoryRecordsInput"},
      "output":{"shape":"RetrieveMemoryRecordsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Searches for and retrieves memory records from an AgentCore Memory resource based on specified search criteria. We recommend using pagination to ensure that the operation returns quickly and successfully.</p> <p>To use this operation, you must have the <code>bedrock-agentcore:RetrieveMemoryRecords</code> permission.</p>"
    },
    "SaveBrowserSessionProfile":{
      "name":"SaveBrowserSessionProfile",
      "http":{
        "method":"PUT",
        "requestUri":"/browser-profiles/{profileIdentifier}/save",
        "responseCode":200
      },
      "input":{"shape":"SaveBrowserSessionProfileRequest"},
      "output":{"shape":"SaveBrowserSessionProfileResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Saves the current state of a browser session as a reusable profile in Amazon Bedrock AgentCore. A browser profile captures persistent browser data such as cookies and local storage from an active session, enabling you to reuse this data in future browser sessions.</p> <p>To save a browser session profile, you must specify the profile identifier, browser identifier, and session ID. The session must be active when saving the profile. Once saved, the profile can be used with the <code>StartBrowserSession</code> operation to initialize new sessions with the stored browser state.</p> <p>Browser profiles are useful for scenarios that require persistent authentication, maintaining user preferences across sessions, or continuing tasks that depend on previously stored browser data.</p> <p>The following operations are related to <code>SaveBrowserSessionProfile</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartBrowserSession.html\">StartBrowserSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_GetBrowserSession.html\">GetBrowserSession</a> </p> </li> </ul>",
      "idempotent":true
    },
    "SearchRegistryRecords":{
      "name":"SearchRegistryRecords",
      "http":{
        "method":"POST",
        "requestUri":"/registry-records/search",
        "responseCode":200
      },
      "input":{"shape":"SearchRegistryRecordsRequest"},
      "output":{"shape":"SearchRegistryRecordsResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Searches for registry records using semantic, lexical, or hybrid queries. Returns metadata for matching records ordered by relevance within the specified registry.</p>"
    },
    "StartBatchEvaluation":{
      "name":"StartBatchEvaluation",
      "http":{
        "method":"POST",
        "requestUri":"/evaluations/batch-evaluate",
        "responseCode":202
      },
      "input":{"shape":"StartBatchEvaluationRequest"},
      "output":{"shape":"StartBatchEvaluationResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Starts a batch evaluation job that evaluates agent performance across multiple sessions. Batch evaluations pull agent traces from CloudWatch Logs or an existing online evaluation configuration and run specified evaluators and insights against them.</p>",
      "idempotent":true
    },
    "StartBrowserSession":{
      "name":"StartBrowserSession",
      "http":{
        "method":"PUT",
        "requestUri":"/browsers/{browserIdentifier}/sessions/start",
        "responseCode":200
      },
      "input":{"shape":"StartBrowserSessionRequest"},
      "output":{"shape":"StartBrowserSessionResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates and initializes a browser session in Amazon Bedrock AgentCore. The session enables agents to navigate and interact with web content, extract information from websites, and perform web-based tasks as part of their response generation.</p> <p>To create a session, you must specify a browser identifier and a name. You can also configure the viewport dimensions to control the visible area of web content. The session remains active until it times out or you explicitly stop it using the <code>StopBrowserSession</code> operation.</p> <p>The following operations are related to <code>StartBrowserSession</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_GetBrowserSession.html\">GetBrowserSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_UpdateBrowserStream.html\">UpdateBrowserStream</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_SaveBrowserSessionProfile.html\">SaveBrowserSessionProfile</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StopBrowserSession.html\">StopBrowserSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_InvokeBrowser.html\">InvokeBrowser</a> </p> </li> </ul>",
      "idempotent":true
    },
    "StartCodeInterpreterSession":{
      "name":"StartCodeInterpreterSession",
      "http":{
        "method":"PUT",
        "requestUri":"/code-interpreters/{codeInterpreterIdentifier}/sessions/start",
        "responseCode":200
      },
      "input":{"shape":"StartCodeInterpreterSessionRequest"},
      "output":{"shape":"StartCodeInterpreterSessionResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates and initializes a code interpreter session in Amazon Bedrock AgentCore. The session enables agents to execute code as part of their response generation, supporting programming languages such as Python for data analysis, visualization, and computation tasks.</p> <p>To create a session, you must specify a code interpreter identifier and a name. The session remains active until it times out or you explicitly stop it using the <code>StopCodeInterpreterSession</code> operation.</p> <p>The following operations are related to <code>StartCodeInterpreterSession</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_InvokeCodeInterpreter.html\">InvokeCodeInterpreter</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_GetCodeInterpreterSession.html\">GetCodeInterpreterSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StopCodeInterpreterSession.html\">StopCodeInterpreterSession</a> </p> </li> </ul>",
      "idempotent":true
    },
    "StartMemoryExtractionJob":{
      "name":"StartMemoryExtractionJob",
      "http":{
        "method":"POST",
        "requestUri":"/memories/{memoryId}/extractionJobs/start",
        "responseCode":200
      },
      "input":{"shape":"StartMemoryExtractionJobInput"},
      "output":{"shape":"StartMemoryExtractionJobOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottledException"},
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p> Starts a memory extraction job that processes events that failed extraction previously in an AgentCore Memory resource and produces structured memory records. When earlier extraction attempts have left events unprocessed, this job will pick up and extract those as well. </p> <p>To use this operation, you must have the <code>bedrock-agentcore:StartMemoryExtractionJob</code> permission.</p>",
      "idempotent":true
    },
    "StartRecommendation":{
      "name":"StartRecommendation",
      "http":{
        "method":"POST",
        "requestUri":"/recommendations",
        "responseCode":202
      },
      "input":{"shape":"StartRecommendationRequest"},
      "output":{"shape":"StartRecommendationResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Starts a recommendation job that analyzes agent traces and generates optimization suggestions for system prompts or tool descriptions to improve agent performance.</p>"
    },
    "StopBatchEvaluation":{
      "name":"StopBatchEvaluation",
      "http":{
        "method":"POST",
        "requestUri":"/evaluations/batch-evaluate/{batchEvaluationId}/stop",
        "responseCode":202
      },
      "input":{"shape":"StopBatchEvaluationRequest"},
      "output":{"shape":"StopBatchEvaluationResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Stops a running batch evaluation. Sessions that have already been evaluated retain their results.</p>"
    },
    "StopBrowserSession":{
      "name":"StopBrowserSession",
      "http":{
        "method":"PUT",
        "requestUri":"/browsers/{browserIdentifier}/sessions/stop",
        "responseCode":200
      },
      "input":{"shape":"StopBrowserSessionRequest"},
      "output":{"shape":"StopBrowserSessionResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Terminates an active browser session in Amazon Bedrock AgentCore. This operation stops the session, releases associated resources, and makes the session unavailable for further use.</p> <p>To stop a browser session, you must specify both the browser identifier and the session ID. Once stopped, a session cannot be restarted; you must create a new session using <code>StartBrowserSession</code>.</p> <p>The following operations are related to <code>StopBrowserSession</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartBrowserSession.html\">StartBrowserSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_GetBrowserSession.html\">GetBrowserSession</a> </p> </li> </ul>",
      "idempotent":true
    },
    "StopCodeInterpreterSession":{
      "name":"StopCodeInterpreterSession",
      "http":{
        "method":"PUT",
        "requestUri":"/code-interpreters/{codeInterpreterIdentifier}/sessions/stop",
        "responseCode":200
      },
      "input":{"shape":"StopCodeInterpreterSessionRequest"},
      "output":{"shape":"StopCodeInterpreterSessionResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Terminates an active code interpreter session in Amazon Bedrock AgentCore. This operation stops the session, releases associated resources, and makes the session unavailable for further use.</p> <p>To stop a code interpreter session, you must specify both the code interpreter identifier and the session ID. Once stopped, a session cannot be restarted; you must create a new session using <code>StartCodeInterpreterSession</code>.</p> <p>The following operations are related to <code>StopCodeInterpreterSession</code>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartCodeInterpreterSession.html\">StartCodeInterpreterSession</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_GetCodeInterpreterSession.html\">GetCodeInterpreterSession</a> </p> </li> </ul>",
      "idempotent":true
    },
    "StopRuntimeSession":{
      "name":"StopRuntimeSession",
      "http":{
        "method":"POST",
        "requestUri":"/runtimes/{agentRuntimeArn}/stopruntimesession",
        "responseCode":200
      },
      "input":{"shape":"StopRuntimeSessionRequest"},
      "output":{"shape":"StopRuntimeSessionResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"RuntimeClientError"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Stops a session that is running in an running AgentCore Runtime agent.</p>",
      "idempotent":true
    },
    "UpdateABTest":{
      "name":"UpdateABTest",
      "http":{
        "method":"PUT",
        "requestUri":"/ab-tests/{abTestId}",
        "responseCode":202
      },
      "input":{"shape":"UpdateABTestRequest"},
      "output":{"shape":"UpdateABTestResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an A/B test's configuration, including variants, traffic allocation, evaluation settings, or execution status.</p>",
      "idempotent":true
    },
    "UpdateBrowserStream":{
      "name":"UpdateBrowserStream",
      "http":{
        "method":"PUT",
        "requestUri":"/browsers/{browserIdentifier}/sessions/streams/update",
        "responseCode":200
      },
      "input":{"shape":"UpdateBrowserStreamRequest"},
      "output":{"shape":"UpdateBrowserStreamResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates a browser stream. To use this operation, you must have permissions to perform the bedrock:UpdateBrowserStream action.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "A2aDescriptor":{
      "type":"structure",
      "required":["agentCard"],
      "members":{
        "agentCard":{
          "shape":"AgentCardDefinition",
          "documentation":"<p> The agent card definition that describes the agent's capabilities and interface.</p>"
        }
      },
      "documentation":"<p> The A2A (Agent-to-Agent) descriptor configuration for a registry record.</p>"
    },
    "ABTestArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:ab-test/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "ABTestDescription":{
      "type":"string",
      "max":200,
      "min":1
    },
    "ABTestEvaluationConfig":{
      "type":"structure",
      "members":{
        "onlineEvaluationConfigArn":{
          "shape":"OnlineEvaluationConfigArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a single online evaluation configuration to use for both variants.</p>"
        },
        "perVariantOnlineEvaluationConfig":{
          "shape":"PerVariantOnlineEvaluationConfigList",
          "documentation":"<p>Per-variant online evaluation configurations, allowing different evaluation settings for each variant.</p>"
        }
      },
      "documentation":"<p>The evaluation configuration for an A/B test, specifying which online evaluation configurations to use for measuring variant performance.</p>",
      "union":true
    },
    "ABTestExecutionStatus":{
      "type":"string",
      "enum":[
        "PAUSED",
        "RUNNING",
        "STOPPED",
        "NOT_STARTED"
      ]
    },
    "ABTestId":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "ABTestName":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}"
    },
    "ABTestResults":{
      "type":"structure",
      "required":["evaluatorMetrics"],
      "members":{
        "analysisTimestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the analysis was performed.</p>"
        },
        "evaluatorMetrics":{
          "shape":"EvaluatorMetricList",
          "documentation":"<p>The per-evaluator metrics comparing control and treatment variants.</p>"
        }
      },
      "documentation":"<p>The statistical results of an A/B test.</p>"
    },
    "ABTestStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "ACTIVE",
        "CREATE_FAILED",
        "UPDATING",
        "UPDATE_FAILED",
        "DELETING",
        "DELETE_FAILED",
        "FAILED"
      ]
    },
    "ABTestSummary":{
      "type":"structure",
      "required":[
        "abTestId",
        "abTestArn",
        "name",
        "status",
        "executionStatus",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "abTestId":{
          "shape":"ABTestId",
          "documentation":"<p>The unique identifier of the A/B test.</p>"
        },
        "abTestArn":{
          "shape":"ABTestArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the A/B test.</p>"
        },
        "name":{
          "shape":"ABTestName",
          "documentation":"<p>The name of the A/B test.</p>"
        },
        "status":{
          "shape":"ABTestStatus",
          "documentation":"<p>The current status of the A/B test.</p>"
        },
        "executionStatus":{
          "shape":"ABTestExecutionStatus",
          "documentation":"<p>The execution status of the A/B test.</p>"
        },
        "description":{
          "shape":"ABTestDescription",
          "documentation":"<p>The description of the A/B test.</p>"
        },
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway used for traffic splitting.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the A/B test was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the A/B test was last updated.</p>"
        }
      },
      "documentation":"<p>Summary information about an A/B test.</p>"
    },
    "ABTestSummaryList":{
      "type":"list",
      "member":{"shape":"ABTestSummary"}
    },
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The exception that occurs when you do not have sufficient permissions to perform an action. Verify that your IAM policy includes the necessary permissions for the operation you are trying to perform.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AccessTokenType":{
      "type":"string",
      "max":131072,
      "min":1,
      "sensitive":true
    },
    "ActorId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[a-zA-Z0-9][a-zA-Z0-9-_/]*(?::[a-zA-Z0-9-_/]+)*[a-zA-Z0-9-_/]*"
    },
    "ActorSummary":{
      "type":"structure",
      "required":["actorId"],
      "members":{
        "actorId":{
          "shape":"ActorId",
          "documentation":"<p>The unique identifier of the actor.</p>"
        }
      },
      "documentation":"<p>Contains summary information about an actor in an AgentCore Memory resource.</p>"
    },
    "ActorSummaryList":{
      "type":"list",
      "member":{"shape":"ActorSummary"}
    },
    "AgentCard":{
      "type":"structure",
      "members":{},
      "document":true
    },
    "AgentCardDefinition":{
      "type":"structure",
      "members":{
        "schemaVersion":{
          "shape":"SchemaVersion",
          "documentation":"<p> The schema version of the agent card definition.</p>"
        },
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p> The inline content of the agent card definition.</p>"
        }
      },
      "documentation":"<p> The agent card definition for A2A descriptors, including the schema version and inline content that describes the agent's capabilities.</p>"
    },
    "AgentSkillsDescriptor":{
      "type":"structure",
      "required":["skillMd"],
      "members":{
        "skillMd":{
          "shape":"SkillMdDefinition",
          "documentation":"<p> The skill description in markdown format.</p>"
        },
        "skillDefinition":{
          "shape":"SkillDefinition",
          "documentation":"<p> The structured skill definition with a schema version and content.</p>"
        }
      },
      "documentation":"<p> The agent skills descriptor configuration for a registry record.</p>"
    },
    "AgentTracesConfig":{
      "type":"structure",
      "members":{
        "sessionSpans":{
          "shape":"Spans",
          "documentation":"<p>Agent traces provided as inline session spans in OpenTelemetry format.</p>"
        },
        "cloudwatchLogs":{
          "shape":"CloudWatchLogsTraceConfig",
          "documentation":"<p>Agent traces read from CloudWatch Logs.</p>"
        }
      },
      "documentation":"<p>The configuration specifying where to read agent traces from for recommendation analysis.</p>",
      "union":true
    },
    "ApiKeyArn":{
      "type":"string",
      "pattern":"arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/apikeycredentialprovider/[a-zA-Z0-9-.]+"
    },
    "ApiKeyType":{
      "type":"string",
      "max":65536,
      "min":1,
      "sensitive":true
    },
    "AudienceType":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "AudiencesListType":{
      "type":"list",
      "member":{"shape":"AudienceType"}
    },
    "AuthorizationUrlType":{
      "type":"string",
      "min":1,
      "sensitive":true
    },
    "AutomationStream":{
      "type":"structure",
      "required":[
        "streamEndpoint",
        "streamStatus"
      ],
      "members":{
        "streamEndpoint":{
          "shape":"BrowserStreamEndpoint",
          "documentation":"<p>The endpoint URL for the automation stream. This URL is used to establish a WebSocket connection to the stream for sending commands and receiving responses.</p>"
        },
        "streamStatus":{
          "shape":"AutomationStreamStatus",
          "documentation":"<p>The current status of the automation stream. This indicates whether the stream is available for use. Possible values include ACTIVE, CONNECTING, and DISCONNECTED.</p>"
        }
      },
      "documentation":"<p>The configuration for a stream that enables programmatic control of a browser session in Amazon Bedrock AgentCore. This stream provides a bidirectional communication channel for sending commands to the browser and receiving responses, allowing agents to automate web interactions such as navigation, form filling, and element clicking.</p>"
    },
    "AutomationStreamStatus":{
      "type":"string",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "AutomationStreamUpdate":{
      "type":"structure",
      "members":{
        "streamStatus":{
          "shape":"AutomationStreamStatus",
          "documentation":"<p>The status of the automation stream.</p>"
        }
      },
      "documentation":"<p>Contains information about an update to an automation stream.</p>"
    },
    "BasicAuth":{
      "type":"structure",
      "required":["secretArn"],
      "members":{
        "secretArn":{
          "shape":"SecretArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret containing proxy credentials. The secret must be a JSON object with <code>username</code> and <code>password</code> string fields that meet validation requirements. The caller must have <code>secretsmanager:GetSecretValue</code> permission for this ARN. Example secret format: <code>{\"username\": \"proxy_user\", \"password\": \"secure_password\"}</code> </p>"
        }
      },
      "documentation":"<p>Configuration for HTTP Basic Authentication using credentials stored in Amazon Web Services Secrets Manager. The secret must contain a JSON object with <code>username</code> and <code>password</code> string fields. Username allows alphanumeric characters and <code>@._+=-</code> symbols (pattern: <code>^[a-zA-Z0-9@._+=\\-]+$</code>). Password allows alphanumeric characters and <code>@._+=-!#$%&amp;*</code> symbols (pattern: <code>^[a-zA-Z0-9@._+=\\-!#$%&amp;*]+$</code>). Both fields have a maximum length of 256 characters.</p>"
    },
    "BatchCreateMemoryRecordsInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "records"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The unique ID of the memory resource where records will be created.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "records":{
          "shape":"MemoryRecordsCreateInputList",
          "documentation":"<p>A list of memory record creation inputs to be processed in the batch operation.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotent processing of the batch request.</p>",
          "idempotencyToken":true
        }
      }
    },
    "BatchCreateMemoryRecordsOutput":{
      "type":"structure",
      "required":[
        "successfulRecords",
        "failedRecords"
      ],
      "members":{
        "successfulRecords":{
          "shape":"MemoryRecordsOutputList",
          "documentation":"<p>A list of memory records that were successfully created during the batch operation.</p>"
        },
        "failedRecords":{
          "shape":"MemoryRecordsOutputList",
          "documentation":"<p>A list of memory records that failed to be created, including error details for each failure.</p>"
        }
      }
    },
    "BatchDeleteMemoryRecordsInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "records"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The unique ID of the memory resource where records will be deleted.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "records":{
          "shape":"MemoryRecordsDeleteInputList",
          "documentation":"<p>A list of memory record deletion inputs to be processed in the batch operation.</p>"
        }
      }
    },
    "BatchDeleteMemoryRecordsOutput":{
      "type":"structure",
      "required":[
        "successfulRecords",
        "failedRecords"
      ],
      "members":{
        "successfulRecords":{
          "shape":"MemoryRecordsOutputList",
          "documentation":"<p>A list of memory records that were successfully deleted during the batch operation.</p>"
        },
        "failedRecords":{
          "shape":"MemoryRecordsOutputList",
          "documentation":"<p>A list of memory records that failed to be deleted, including error details for each failure.</p>"
        }
      }
    },
    "BatchEvaluationArn":{
      "type":"string",
      "documentation":"<p>ARN for a batch evaluation</p>"
    },
    "BatchEvaluationDescription":{
      "type":"string",
      "max":200,
      "min":0
    },
    "BatchEvaluationId":{
      "type":"string",
      "documentation":"<p>Unique identifier for a batch evaluation (name-prefixed format)</p>",
      "pattern":"[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "BatchEvaluationName":{
      "type":"string",
      "documentation":"<p>Human-readable name for a batch evaluation</p>",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}"
    },
    "BatchEvaluationStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "IN_PROGRESS",
        "COMPLETED",
        "COMPLETED_WITH_ERRORS",
        "FAILED",
        "STOPPING",
        "STOPPED",
        "DELETING"
      ]
    },
    "BatchEvaluationSummary":{
      "type":"structure",
      "required":[
        "batchEvaluationId",
        "batchEvaluationArn",
        "batchEvaluationName",
        "status",
        "createdAt"
      ],
      "members":{
        "batchEvaluationId":{
          "shape":"BatchEvaluationId",
          "documentation":"<p>The unique identifier of the batch evaluation.</p>"
        },
        "batchEvaluationArn":{
          "shape":"BatchEvaluationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the batch evaluation.</p>"
        },
        "batchEvaluationName":{
          "shape":"BatchEvaluationName",
          "documentation":"<p>The name of the batch evaluation.</p>"
        },
        "status":{
          "shape":"BatchEvaluationStatus",
          "documentation":"<p>The current status of the batch evaluation.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the batch evaluation was created.</p>"
        },
        "description":{
          "shape":"BatchEvaluationDescription",
          "documentation":"<p>The description of the batch evaluation.</p>"
        },
        "evaluators":{
          "shape":"EvaluatorList",
          "documentation":"<p>The list of evaluators applied during the batch evaluation.</p>"
        },
        "evaluationResults":{
          "shape":"EvaluationJobResults",
          "documentation":"<p>The aggregated evaluation results.</p>"
        },
        "errorDetails":{
          "shape":"ErrorDetailsList",
          "documentation":"<p>The error details if the batch evaluation encountered failures.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the batch evaluation was last updated.</p>"
        }
      },
      "documentation":"<p>Summary representation for list responses</p>"
    },
    "BatchEvaluationSummaryList":{
      "type":"list",
      "member":{"shape":"BatchEvaluationSummary"}
    },
    "BatchUpdateMemoryRecordsInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "records"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The unique ID of the memory resource where records will be updated.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "records":{
          "shape":"MemoryRecordsUpdateInputList",
          "documentation":"<p>A list of memory record update inputs to be processed in the batch operation.</p>"
        }
      }
    },
    "BatchUpdateMemoryRecordsOutput":{
      "type":"structure",
      "required":[
        "successfulRecords",
        "failedRecords"
      ],
      "members":{
        "successfulRecords":{
          "shape":"MemoryRecordsOutputList",
          "documentation":"<p>A list of memory records that were successfully updated during the batch operation.</p>"
        },
        "failedRecords":{
          "shape":"MemoryRecordsOutputList",
          "documentation":"<p>A list of memory records that failed to be updated, including error details for each failure.</p>"
        }
      }
    },
    "Blob":{"type":"blob"},
    "Body":{
      "type":"blob",
      "max":100000000,
      "min":0,
      "sensitive":true
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "Branch":{
      "type":"structure",
      "required":["name"],
      "members":{
        "rootEventId":{
          "shape":"EventId",
          "documentation":"<p>The identifier of the root event for this branch.</p>"
        },
        "name":{
          "shape":"BranchName",
          "documentation":"<p>The name of the branch.</p>"
        }
      },
      "documentation":"<p>Contains information about a branch in an AgentCore Memory resource. Branches allow for organizing events into different conversation threads or paths.</p>"
    },
    "BranchFilter":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"BranchName",
          "documentation":"<p>The name of the branch to filter by.</p>"
        },
        "includeParentBranches":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to include parent branches in the results. Set to true to include parent branches, or false to exclude them.</p>"
        }
      },
      "documentation":"<p>Contains filter criteria for branches when listing events.</p>"
    },
    "BranchName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[a-zA-Z0-9][a-zA-Z0-9-_]*"
    },
    "BrowserAction":{
      "type":"structure",
      "members":{
        "mouseClick":{
          "shape":"MouseClickArguments",
          "documentation":"<p>Click at the specified coordinates.</p>"
        },
        "mouseMove":{
          "shape":"MouseMoveArguments",
          "documentation":"<p>Move the cursor to the specified coordinates.</p>"
        },
        "mouseDrag":{
          "shape":"MouseDragArguments",
          "documentation":"<p>Drag from a start position to an end position.</p>"
        },
        "mouseScroll":{
          "shape":"MouseScrollArguments",
          "documentation":"<p>Scroll at the specified position.</p>"
        },
        "keyType":{
          "shape":"KeyTypeArguments",
          "documentation":"<p>Type a string of text.</p>"
        },
        "keyPress":{
          "shape":"KeyPressArguments",
          "documentation":"<p>Press a key one or more times.</p>"
        },
        "keyShortcut":{
          "shape":"KeyShortcutArguments",
          "documentation":"<p>Press a key combination.</p>"
        },
        "screenshot":{
          "shape":"ScreenshotArguments",
          "documentation":"<p>Capture a full-screen screenshot.</p>"
        }
      },
      "documentation":"<p>The browser action to perform. Exactly one member must be set per request.</p>",
      "union":true
    },
    "BrowserActionResult":{
      "type":"structure",
      "members":{
        "mouseClick":{
          "shape":"MouseClickResult",
          "documentation":"<p>The result of a mouse click action.</p>"
        },
        "mouseMove":{
          "shape":"MouseMoveResult",
          "documentation":"<p>The result of a mouse move action.</p>"
        },
        "mouseDrag":{
          "shape":"MouseDragResult",
          "documentation":"<p>The result of a mouse drag action.</p>"
        },
        "mouseScroll":{
          "shape":"MouseScrollResult",
          "documentation":"<p>The result of a mouse scroll action.</p>"
        },
        "keyType":{
          "shape":"KeyTypeResult",
          "documentation":"<p>The result of a key type action.</p>"
        },
        "keyPress":{
          "shape":"KeyPressResult",
          "documentation":"<p>The result of a key press action.</p>"
        },
        "keyShortcut":{
          "shape":"KeyShortcutResult",
          "documentation":"<p>The result of a key shortcut action.</p>"
        },
        "screenshot":{
          "shape":"ScreenshotResult",
          "documentation":"<p>The result of a screenshot action.</p>"
        }
      },
      "documentation":"<p>The result of a browser action execution. Exactly one member is set, matching the action that was performed.</p>",
      "union":true
    },
    "BrowserActionStatus":{
      "type":"string",
      "documentation":"<p>The status of a browser action execution.</p>",
      "enum":[
        "SUCCESS",
        "FAILED"
      ]
    },
    "BrowserArn":{
      "type":"string",
      "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})"
    },
    "BrowserEnterprisePolicies":{
      "type":"list",
      "member":{"shape":"BrowserEnterprisePolicy"},
      "max":100,
      "min":0
    },
    "BrowserEnterprisePolicy":{
      "type":"structure",
      "required":["location"],
      "members":{
        "location":{
          "shape":"ResourceLocation",
          "documentation":"<p>The location of the enterprise policy file.</p>"
        },
        "type":{
          "shape":"BrowserEnterprisePolicyType",
          "documentation":"<p>The enterprise policy type. See BrowserEnterprisePolicyType.</p>"
        }
      },
      "documentation":"<p>Browser enterprise policy configuration.</p>"
    },
    "BrowserEnterprisePolicyType":{
      "type":"string",
      "documentation":"<p>The type of browser enterprise policy. Available values are <code>MANAGED</code> and <code>RECOMMENDED</code>.</p>",
      "enum":[
        "MANAGED",
        "RECOMMENDED"
      ]
    },
    "BrowserExtension":{
      "type":"structure",
      "required":["location"],
      "members":{
        "location":{
          "shape":"ResourceLocation",
          "documentation":"<p>The location where the browser extension files are stored. This specifies the source from which the extension will be loaded and installed.</p>"
        }
      },
      "documentation":"<p>Browser extension configuration.</p>"
    },
    "BrowserExtensions":{
      "type":"list",
      "member":{"shape":"BrowserExtension"},
      "max":10,
      "min":1
    },
    "BrowserProfileConfiguration":{
      "type":"structure",
      "required":["profileIdentifier"],
      "members":{
        "profileIdentifier":{
          "shape":"BrowserProfileId",
          "documentation":"<p>The unique identifier of the browser profile. This identifier is used to reference the profile when starting new browser sessions or saving session data to the profile.</p>"
        }
      },
      "documentation":"<p>The configuration for a browser profile in Amazon Bedrock AgentCore. A browser profile contains persistent browser data such as cookies and local storage that can be saved from one browser session and reused in subsequent sessions. Browser profiles enable continuity for tasks that require authentication, maintain user preferences, or depend on previously stored browser state.</p>"
    },
    "BrowserProfileId":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}"
    },
    "BrowserSessionId":{
      "type":"string",
      "pattern":"[0-9a-zA-Z]{1,40}"
    },
    "BrowserSessionStatus":{
      "type":"string",
      "enum":[
        "READY",
        "TERMINATED"
      ]
    },
    "BrowserSessionStream":{
      "type":"structure",
      "required":["automationStream"],
      "members":{
        "automationStream":{
          "shape":"AutomationStream",
          "documentation":"<p>The stream that enables programmatic control of the browser. This stream allows agents to perform actions such as navigating to URLs, clicking elements, and filling forms.</p>"
        },
        "liveViewStream":{
          "shape":"LiveViewStream",
          "documentation":"<p>The stream that provides a visual representation of the browser content. This stream allows agents to observe the current state of the browser, including rendered web pages and visual elements.</p>"
        }
      },
      "documentation":"<p>The collection of streams associated with a browser session in Amazon Bedrock AgentCore. These streams provide different ways to interact with and observe the browser session, including programmatic control and visual representation of the browser content.</p>"
    },
    "BrowserSessionSummaries":{
      "type":"list",
      "member":{"shape":"BrowserSessionSummary"}
    },
    "BrowserSessionSummary":{
      "type":"structure",
      "required":[
        "browserIdentifier",
        "sessionId",
        "status",
        "createdAt"
      ],
      "members":{
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the browser associated with the session. This identifier specifies which browser environment is used for the session.</p>"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The unique identifier of the browser session. This identifier is used in operations that interact with the session.</p>"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the browser session. This name helps identify and manage the session.</p>"
        },
        "status":{
          "shape":"BrowserSessionStatus",
          "documentation":"<p>The current status of the browser session. Possible values include ACTIVE, STOPPING, and STOPPED.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser session was created. This value is in ISO 8601 format.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser session was last updated. This value is in ISO 8601 format.</p>"
        }
      },
      "documentation":"<p>A condensed representation of a browser session in Amazon Bedrock AgentCore. This structure contains key information about a browser session, including identifiers, status, and timestamps, without the full details of the session configuration and streams.</p>"
    },
    "BrowserSessionTimeout":{
      "type":"integer",
      "box":true,
      "max":28800,
      "min":1
    },
    "BrowserStreamEndpoint":{
      "type":"string",
      "max":512,
      "min":10
    },
    "Certificate":{
      "type":"structure",
      "required":["location"],
      "members":{
        "location":{
          "shape":"CertificateLocation",
          "documentation":"<p>The location of the certificate.</p>"
        }
      },
      "documentation":"<p>A certificate to install in the browser or code interpreter session.</p>"
    },
    "CertificateLocation":{
      "type":"structure",
      "members":{
        "secretsManager":{
          "shape":"SecretsManagerLocation",
          "documentation":"<p>The Amazon Web Services Secrets Manager location of the certificate.</p>"
        }
      },
      "documentation":"<p>The location from which to retrieve a certificate.</p>",
      "union":true
    },
    "Certificates":{
      "type":"list",
      "member":{"shape":"Certificate"},
      "max":200,
      "min":1
    },
    "ClientToken":{
      "type":"string",
      "max":256,
      "min":33,
      "pattern":"[a-zA-Z0-9](-*[a-zA-Z0-9]){0,256}"
    },
    "CloudWatchFilterConfig":{
      "type":"structure",
      "members":{
        "sessionIds":{
          "shape":"CloudWatchFilterConfigSessionIdsList",
          "documentation":"<p>A list of specific session IDs to evaluate. If specified, only these sessions are included in the evaluation.</p>"
        },
        "timeRange":{
          "shape":"SessionFilterConfig",
          "documentation":"<p>The time range filter for selecting sessions to evaluate.</p>"
        }
      },
      "documentation":"<p>Filter configuration for narrowing down CloudWatch Logs sessions for evaluation.</p>"
    },
    "CloudWatchFilterConfigSessionIdsList":{
      "type":"list",
      "member":{"shape":"String"},
      "max":500,
      "min":0
    },
    "CloudWatchLogsFilter":{
      "type":"structure",
      "required":[
        "key",
        "operator",
        "value"
      ],
      "members":{
        "key":{
          "shape":"CloudWatchLogsFilterKeyString",
          "documentation":"<p>The key or field name to filter on within the agent trace data.</p>"
        },
        "operator":{
          "shape":"CloudWatchLogsFilterOperator",
          "documentation":"<p>The comparison operator to use for filtering.</p>"
        },
        "value":{
          "shape":"FilterValue",
          "documentation":"<p>The value to compare against using the specified operator.</p>"
        }
      },
      "documentation":"<p>A filter for narrowing down agent traces from CloudWatch Logs based on key-value comparisons.</p>"
    },
    "CloudWatchLogsFilterKeyString":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9._-]+"
    },
    "CloudWatchLogsFilterList":{
      "type":"list",
      "member":{"shape":"CloudWatchLogsFilter"}
    },
    "CloudWatchLogsFilterOperator":{
      "type":"string",
      "enum":[
        "Equals",
        "NotEquals",
        "GreaterThan",
        "LessThan",
        "GreaterThanOrEqual",
        "LessThanOrEqual",
        "Contains",
        "NotContains"
      ]
    },
    "CloudWatchLogsRule":{
      "type":"structure",
      "members":{
        "filters":{
          "shape":"CloudWatchLogsFilterList",
          "documentation":"<p>The list of filters to apply when reading agent traces.</p>"
        }
      },
      "documentation":"<p>A rule configuration for filtering agent traces from CloudWatch Logs.</p>"
    },
    "CloudWatchLogsSource":{
      "type":"structure",
      "required":[
        "serviceNames",
        "logGroupNames"
      ],
      "members":{
        "serviceNames":{
          "shape":"CloudWatchLogsSourceServiceNamesList",
          "documentation":"<p>The list of agent service names to filter traces within the specified log groups.</p>"
        },
        "logGroupNames":{
          "shape":"CloudWatchLogsSourceLogGroupNamesList",
          "documentation":"<p>The list of CloudWatch log group names to read agent traces from. Maximum of 5 log groups.</p>"
        },
        "filterConfig":{
          "shape":"CloudWatchFilterConfig",
          "documentation":"<p>Optional filter configuration to narrow down which sessions to evaluate.</p>"
        }
      },
      "documentation":"<p>The configuration for reading agent traces from CloudWatch Logs.</p>"
    },
    "CloudWatchLogsSourceLogGroupNamesList":{
      "type":"list",
      "member":{"shape":"String"},
      "max":5,
      "min":1
    },
    "CloudWatchLogsSourceServiceNamesList":{
      "type":"list",
      "member":{"shape":"String"},
      "max":1,
      "min":1
    },
    "CloudWatchLogsTraceConfig":{
      "type":"structure",
      "required":[
        "logGroupArns",
        "serviceNames",
        "startTime",
        "endTime"
      ],
      "members":{
        "logGroupArns":{
          "shape":"CloudWatchLogsTraceConfigLogGroupArnsList",
          "documentation":"<p>The list of CloudWatch log group ARNs to read agent traces from.</p>"
        },
        "serviceNames":{
          "shape":"ServiceNameList",
          "documentation":"<p>The list of service names to filter traces within the specified log groups.</p>"
        },
        "startTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The start time of the time range to read traces from.</p>"
        },
        "endTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The end time of the time range to read traces from.</p>"
        },
        "rule":{
          "shape":"CloudWatchLogsRule",
          "documentation":"<p>Optional rule configuration for filtering traces.</p>"
        }
      },
      "documentation":"<p>Configuration for reading agent traces from CloudWatch Logs for recommendation analysis.</p>"
    },
    "CloudWatchLogsTraceConfigLogGroupArnsList":{
      "type":"list",
      "member":{"shape":"String"},
      "max":5,
      "min":1
    },
    "CloudWatchOutputConfig":{
      "type":"structure",
      "required":[
        "logGroupName",
        "logStreamName"
      ],
      "members":{
        "logGroupName":{
          "shape":"String",
          "documentation":"<p>The name of the CloudWatch log group where evaluation results will be written.</p>"
        },
        "logStreamName":{
          "shape":"String",
          "documentation":"<p>The name of the CloudWatch log stream where evaluation results will be written.</p>"
        }
      },
      "documentation":"<p>CloudWatch Logs destination for batch evaluation results</p>"
    },
    "CodeInterpreterArn":{
      "type":"string",
      "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})"
    },
    "CodeInterpreterResult":{
      "type":"structure",
      "required":["content"],
      "members":{
        "content":{
          "shape":"ContentBlockList",
          "documentation":"<p>The textual content of the execution result. This includes standard output from the code execution, such as print statements, console output, and text representations of results.</p>"
        },
        "structuredContent":{
          "shape":"ToolResultStructuredContent",
          "documentation":"<p>The structured content of the execution result. This includes additional metadata about the execution, such as execution time, memory usage, and structured representations of output data. The format depends on the specific code interpreter and execution context.</p>"
        },
        "isError":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the result represents an error. If true, the content contains error messages or exception information. If false, the content contains successful execution results.</p>"
        }
      },
      "documentation":"<p>The output produced by executing code in a code interpreter session in Amazon Bedrock AgentCore. This structure contains the results of code execution, including textual output, structured data, and error information. Agents use these results to generate responses that incorporate computation, data analysis, and visualization.</p>",
      "event":true
    },
    "CodeInterpreterSessionId":{
      "type":"string",
      "pattern":"[0-9a-zA-Z]{1,40}"
    },
    "CodeInterpreterSessionStatus":{
      "type":"string",
      "enum":[
        "READY",
        "TERMINATED"
      ]
    },
    "CodeInterpreterSessionSummaries":{
      "type":"list",
      "member":{"shape":"CodeInterpreterSessionSummary"}
    },
    "CodeInterpreterSessionSummary":{
      "type":"structure",
      "required":[
        "codeInterpreterIdentifier",
        "sessionId",
        "status",
        "createdAt"
      ],
      "members":{
        "codeInterpreterIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the code interpreter associated with the session. This identifier specifies which code interpreter environment is used for the session.</p>"
        },
        "sessionId":{
          "shape":"CodeInterpreterSessionId",
          "documentation":"<p>The unique identifier of the code interpreter session. This identifier is used in operations that interact with the session.</p>"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the code interpreter session. This name helps identify and manage the session.</p>"
        },
        "status":{
          "shape":"CodeInterpreterSessionStatus",
          "documentation":"<p>The current status of the code interpreter session. Possible values include ACTIVE, STOPPING, and STOPPED.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the code interpreter session was created. This value is in ISO 8601 format.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the code interpreter session was last updated. This value is in ISO 8601 format.</p>"
        }
      },
      "documentation":"<p>A condensed representation of a code interpreter session in Amazon Bedrock AgentCore. This structure contains key information about a code interpreter session, including identifiers, status, and timestamps, without the full details of the session configuration.</p>"
    },
    "CodeInterpreterSessionTimeout":{
      "type":"integer",
      "box":true,
      "max":28800,
      "min":1
    },
    "CodeInterpreterStreamOutput":{
      "type":"structure",
      "members":{
        "result":{"shape":"CodeInterpreterResult"},
        "accessDeniedException":{"shape":"AccessDeniedException"},
        "conflictException":{"shape":"ConflictException"},
        "internalServerException":{"shape":"InternalServerException"},
        "resourceNotFoundException":{"shape":"ResourceNotFoundException"},
        "serviceQuotaExceededException":{"shape":"ServiceQuotaExceededException"},
        "throttlingException":{"shape":"ThrottlingException"},
        "validationException":{"shape":"ValidationException"}
      },
      "documentation":"<p>Contains output from a code interpreter stream.</p>",
      "eventstream":true
    },
    "CommandExecutionStatus":{
      "type":"string",
      "enum":[
        "COMPLETED",
        "TIMED_OUT"
      ]
    },
    "CompleteResourceTokenAuthRequest":{
      "type":"structure",
      "required":[
        "userIdentifier",
        "sessionUri"
      ],
      "members":{
        "userIdentifier":{
          "shape":"UserIdentifier",
          "documentation":"<p>The OAuth2.0 token or user ID that was used to generate the workload access token used for initiating the user authorization flow to retrieve OAuth2.0 tokens.</p>"
        },
        "sessionUri":{
          "shape":"RequestUri",
          "documentation":"<p>Unique identifier for the user's authentication session for retrieving OAuth2 tokens. This ID tracks the authorization flow state across multiple requests and responses during the OAuth2 authentication process.</p>"
        }
      }
    },
    "CompleteResourceTokenAuthResponse":{
      "type":"structure",
      "members":{}
    },
    "ConfidenceInterval":{
      "type":"structure",
      "members":{
        "lower":{
          "shape":"Double",
          "documentation":"<p>The lower bound of the confidence interval.</p>"
        },
        "upper":{
          "shape":"Double",
          "documentation":"<p>The upper bound of the confidence interval.</p>"
        }
      },
      "documentation":"<p>A confidence interval for a statistical measurement.</p>"
    },
    "ConfigurationBundleArn":{
      "type":"string",
      "pattern":"arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:configuration-bundle/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "ConfigurationBundleRef":{
      "type":"structure",
      "required":[
        "bundleArn",
        "bundleVersion"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle.</p>"
        },
        "bundleVersion":{
          "shape":"ConfigurationBundleVersion",
          "documentation":"<p>The version of the configuration bundle.</p>"
        }
      },
      "documentation":"<p>A reference to a specific version of a configuration bundle.</p>"
    },
    "ConfigurationBundleToolEntry":{
      "type":"structure",
      "required":[
        "toolName",
        "toolDescriptionJsonPath"
      ],
      "members":{
        "toolName":{
          "shape":"RecommendationToolName",
          "documentation":"<p>The name of the tool.</p>"
        },
        "toolDescriptionJsonPath":{
          "shape":"String",
          "documentation":"<p>The JSON path within the configuration bundle's components that contains the tool description.</p>"
        }
      },
      "documentation":"<p>Maps a tool name to its JSON path within a configuration bundle.</p>"
    },
    "ConfigurationBundleToolEntryList":{
      "type":"list",
      "member":{"shape":"ConfigurationBundleToolEntry"}
    },
    "ConfigurationBundleVersion":{
      "type":"string",
      "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "ConfigurationBundleVersionId":{"type":"string"},
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The exception that occurs when the request conflicts with the current state of the resource. This can happen when trying to modify a resource that is currently being modified by another request, or when trying to create a resource that already exists.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "Content":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"ContentTextString",
          "documentation":"<p>The text content of the memory item.</p>"
        }
      },
      "documentation":"<p>Contains the content of a memory item.</p>",
      "union":true
    },
    "ContentBlock":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"ContentBlockType",
          "documentation":"<p>The type of content in the block.</p>"
        },
        "text":{
          "shape":"String",
          "documentation":"<p>The text content of the block.</p>"
        },
        "data":{
          "shape":"Blob",
          "documentation":"<p>The binary data content of the block.</p>"
        },
        "mimeType":{
          "shape":"String",
          "documentation":"<p>The MIME type of the content.</p>"
        },
        "uri":{
          "shape":"String",
          "documentation":"<p>The URI of the content.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the content block.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description of the content block.</p>"
        },
        "size":{
          "shape":"Long",
          "documentation":"<p>The size of the content in bytes.</p>"
        },
        "resource":{
          "shape":"ResourceContent",
          "documentation":"<p>The resource associated with the content block.</p>"
        }
      },
      "documentation":"<p>A block of content in a response.</p>"
    },
    "ContentBlockList":{
      "type":"list",
      "member":{"shape":"ContentBlock"}
    },
    "ContentBlockType":{
      "type":"string",
      "enum":[
        "text",
        "image",
        "resource",
        "resource_link"
      ]
    },
    "ContentDeltaEvent":{
      "type":"structure",
      "members":{
        "stdout":{
          "shape":"String",
          "documentation":"<p>The standard output content from the command execution. This field contains the incremental output written to stdout by the executing command.</p>"
        },
        "stderr":{
          "shape":"String",
          "documentation":"<p>The standard error content from the command execution. This field contains the incremental output written to stderr by the executing command.</p>"
        }
      },
      "documentation":"<p>An event that contains incremental output from a command execution. This event streams standard output and standard error content as it becomes available during command execution.</p>"
    },
    "ContentStartEvent":{
      "type":"structure",
      "members":{},
      "documentation":"<p>An event that signals the start of content streaming from a command execution. This event is sent when the command begins producing output.</p>"
    },
    "ContentStopEvent":{
      "type":"structure",
      "required":[
        "exitCode",
        "status"
      ],
      "members":{
        "exitCode":{
          "shape":"Integer",
          "documentation":"<p>The exit code returned by the executed command. An exit code of 0 indicates successful execution, -1 indicates a platform error, and values greater than 0 indicate command-specific errors.</p>"
        },
        "status":{
          "shape":"CommandExecutionStatus",
          "documentation":"<p>The final status of the command execution. Valid values are <code>COMPLETED</code> for successful completion or <code>TIMED_OUT</code> if the command exceeded the specified timeout.</p>"
        }
      },
      "documentation":"<p>An event that signals the completion of a command execution. This event contains the final status and exit code of the executed command.</p>"
    },
    "ContentTextString":{
      "type":"string",
      "max":100000,
      "min":1,
      "sensitive":true
    },
    "Context":{
      "type":"structure",
      "members":{
        "spanContext":{
          "shape":"SpanContext",
          "documentation":"<p> The span context information that uniquely identifies the trace and span being evaluated, including session ID, trace ID, and span ID for precise targeting within the agent's execution flow. </p>"
        }
      },
      "documentation":"<p> The contextual information associated with an evaluation, including span context details that identify the specific traces and sessions being evaluated within the agent's execution flow. </p>",
      "union":true
    },
    "ControlStats":{
      "type":"structure",
      "required":[
        "variantName",
        "sampleSize",
        "mean"
      ],
      "members":{
        "variantName":{
          "shape":"String",
          "documentation":"<p>The name of the control variant.</p>"
        },
        "sampleSize":{
          "shape":"Integer",
          "documentation":"<p>The number of sessions evaluated for the control variant.</p>"
        },
        "mean":{
          "shape":"Double",
          "documentation":"<p>The mean evaluation score for the control variant.</p>"
        }
      },
      "documentation":"<p>Statistics for the control variant in an A/B test.</p>"
    },
    "Conversational":{
      "type":"structure",
      "required":[
        "content",
        "role"
      ],
      "members":{
        "content":{
          "shape":"Content",
          "documentation":"<p>The content of the conversation message.</p>"
        },
        "role":{
          "shape":"Role",
          "documentation":"<p>The role of the participant in the conversation (for example, \"user\" or \"assistant\").</p>"
        }
      },
      "documentation":"<p>Contains conversational content for an event payload.</p>"
    },
    "CreateABTestRequest":{
      "type":"structure",
      "required":[
        "name",
        "gatewayArn",
        "variants",
        "evaluationConfig",
        "roleArn"
      ],
      "members":{
        "name":{
          "shape":"ABTestName",
          "documentation":"<p>The name of the A/B test. Must be unique within your account.</p>"
        },
        "description":{
          "shape":"ABTestDescription",
          "documentation":"<p>The description of the A/B test.</p>"
        },
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway to use for traffic splitting.</p>"
        },
        "variants":{
          "shape":"VariantList",
          "documentation":"<p>The list of variants for the A/B test. Must contain exactly two variants: a control (C) and a treatment (T1), each with a configuration bundle or target reference and a traffic weight.</p>"
        },
        "gatewayFilter":{
          "shape":"GatewayFilter",
          "documentation":"<p>Optional filter to restrict which gateway target paths are included in the A/B test.</p>"
        },
        "evaluationConfig":{
          "shape":"ABTestEvaluationConfig",
          "documentation":"<p>The evaluation configuration specifying which online evaluation configurations to use for measuring variant performance.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM role ARN that grants permissions for the A/B test to access gateway and evaluation resources.</p>"
        },
        "enableOnCreate":{
          "shape":"Boolean",
          "documentation":"<p>Whether to enable the A/B test immediately upon creation. If true, traffic splitting begins automatically.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, the service ignores the request, but does not return an error.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateABTestResponse":{
      "type":"structure",
      "required":[
        "abTestId",
        "abTestArn",
        "status",
        "executionStatus",
        "createdAt"
      ],
      "members":{
        "abTestId":{
          "shape":"ABTestId",
          "documentation":"<p>The unique identifier of the created A/B test.</p>"
        },
        "abTestArn":{
          "shape":"ABTestArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created A/B test.</p>"
        },
        "name":{
          "shape":"ABTestName",
          "documentation":"<p>The name of the A/B test.</p>"
        },
        "status":{
          "shape":"ABTestStatus",
          "documentation":"<p>The status of the A/B test.</p>"
        },
        "executionStatus":{
          "shape":"ABTestExecutionStatus",
          "documentation":"<p>The execution status indicating whether the A/B test is currently running.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the A/B test was created.</p>"
        }
      }
    },
    "CreateEventInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "actorId",
        "eventTimestamp",
        "payload"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource in which to create the event.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "actorId":{
          "shape":"ActorId",
          "documentation":"<p>The identifier of the actor associated with this event. An actor represents an entity that participates in sessions and generates events.</p>"
        },
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The identifier of the session in which this event occurs. A session represents a sequence of related events.</p>"
        },
        "eventTimestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the event occurred. If not specified, the current time is used.</p>"
        },
        "payload":{
          "shape":"PayloadTypeList",
          "documentation":"<p>The content payload of the event. This can include conversational data or binary content.</p>"
        },
        "branch":{
          "shape":"Branch",
          "documentation":"<p>The branch information for this event. Branches allow for organizing events into different conversation threads or paths.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, AgentCore ignores the request, but does not return an error.</p>",
          "idempotencyToken":true
        },
        "metadata":{
          "shape":"MetadataMap",
          "documentation":"<p>The key-value metadata to attach to the event.</p>"
        }
      }
    },
    "CreateEventOutput":{
      "type":"structure",
      "required":["event"],
      "members":{
        "event":{
          "shape":"Event",
          "documentation":"<p>The event that was created.</p>"
        }
      }
    },
    "CredentialProviderName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9\\-_]+"
    },
    "CustomDescriptor":{
      "type":"structure",
      "members":{
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p> The inline content of the custom descriptor.</p>"
        }
      },
      "documentation":"<p> A custom descriptor configuration for a registry record.</p>"
    },
    "CustomRequestKeyType":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9\\-_\\.]+"
    },
    "CustomRequestParametersType":{
      "type":"map",
      "key":{"shape":"CustomRequestKeyType"},
      "value":{"shape":"CustomRequestValueType"}
    },
    "CustomRequestValueType":{
      "type":"string",
      "max":2048,
      "min":1,
      "sensitive":true
    },
    "DataSourceConfig":{
      "type":"structure",
      "members":{
        "cloudWatchLogs":{
          "shape":"CloudWatchLogsSource",
          "documentation":"<p>Pull session spans from CloudWatch</p>"
        }
      },
      "documentation":"<p>Where to pull session spans from</p>",
      "union":true
    },
    "DateTimestamp":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "DeleteABTestRequest":{
      "type":"structure",
      "required":["abTestId"],
      "members":{
        "abTestId":{
          "shape":"ABTestId",
          "documentation":"<p>The unique identifier of the A/B test to delete.</p>",
          "location":"uri",
          "locationName":"abTestId"
        }
      }
    },
    "DeleteABTestResponse":{
      "type":"structure",
      "required":[
        "abTestId",
        "abTestArn",
        "status"
      ],
      "members":{
        "abTestId":{
          "shape":"ABTestId",
          "documentation":"<p>The unique identifier of the deleted A/B test.</p>"
        },
        "abTestArn":{
          "shape":"ABTestArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the deleted A/B test.</p>"
        },
        "status":{
          "shape":"ABTestStatus",
          "documentation":"<p>The status of the A/B test deletion operation.</p>"
        }
      }
    },
    "DeleteBatchEvaluationRequest":{
      "type":"structure",
      "required":["batchEvaluationId"],
      "members":{
        "batchEvaluationId":{
          "shape":"BatchEvaluationId",
          "documentation":"<p>The unique identifier of the batch evaluation to delete.</p>",
          "location":"uri",
          "locationName":"batchEvaluationId"
        }
      }
    },
    "DeleteBatchEvaluationResponse":{
      "type":"structure",
      "required":[
        "batchEvaluationId",
        "batchEvaluationArn",
        "status"
      ],
      "members":{
        "batchEvaluationId":{
          "shape":"BatchEvaluationId",
          "documentation":"<p>The unique identifier of the deleted batch evaluation.</p>"
        },
        "batchEvaluationArn":{
          "shape":"BatchEvaluationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the deleted batch evaluation.</p>"
        },
        "status":{
          "shape":"BatchEvaluationStatus",
          "documentation":"<p>The status of the batch evaluation deletion operation.</p>"
        }
      }
    },
    "DeleteEventInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "sessionId",
        "eventId",
        "actorId"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource from which to delete the event.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The identifier of the session containing the event to delete.</p>",
          "location":"uri",
          "locationName":"sessionId"
        },
        "eventId":{
          "shape":"EventId",
          "documentation":"<p>The identifier of the event to delete.</p>",
          "location":"uri",
          "locationName":"eventId"
        },
        "actorId":{
          "shape":"ActorId",
          "documentation":"<p>The identifier of the actor associated with the event to delete.</p>",
          "location":"uri",
          "locationName":"actorId"
        }
      }
    },
    "DeleteEventOutput":{
      "type":"structure",
      "required":["eventId"],
      "members":{
        "eventId":{
          "shape":"EventId",
          "documentation":"<p>The identifier of the event that was deleted.</p>"
        }
      }
    },
    "DeleteMemoryRecordInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "memoryRecordId"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource from which to delete the memory record.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "memoryRecordId":{
          "shape":"MemoryRecordId",
          "documentation":"<p>The identifier of the memory record to delete.</p>",
          "location":"uri",
          "locationName":"memoryRecordId"
        }
      }
    },
    "DeleteMemoryRecordOutput":{
      "type":"structure",
      "required":["memoryRecordId"],
      "members":{
        "memoryRecordId":{
          "shape":"MemoryRecordId",
          "documentation":"<p>The identifier of the memory record that was deleted.</p>"
        }
      }
    },
    "DeleteRecommendationRequest":{
      "type":"structure",
      "required":["recommendationId"],
      "members":{
        "recommendationId":{
          "shape":"RecommendationId",
          "documentation":"<p>The unique identifier of the recommendation to delete.</p>",
          "location":"uri",
          "locationName":"recommendationId"
        }
      }
    },
    "DeleteRecommendationResponse":{
      "type":"structure",
      "required":[
        "recommendationId",
        "status"
      ],
      "members":{
        "recommendationId":{
          "shape":"RecommendationId",
          "documentation":"<p>The unique identifier of the deleted recommendation.</p>"
        },
        "status":{
          "shape":"RecommendationStatus",
          "documentation":"<p>The status of the recommendation deletion operation.</p>"
        }
      }
    },
    "Description":{
      "type":"string",
      "max":4096,
      "min":1,
      "sensitive":true
    },
    "DescriptorType":{
      "type":"string",
      "documentation":"<p> The type of descriptor associated with a registry record.</p>",
      "enum":[
        "MCP",
        "A2A",
        "CUSTOM",
        "AGENT_SKILLS"
      ]
    },
    "Descriptors":{
      "type":"structure",
      "members":{
        "mcp":{
          "shape":"McpDescriptor",
          "documentation":"<p> The MCP (Model Context Protocol) descriptor configuration. Populated when the record's <code>descriptorType</code> is <code>MCP</code>.</p>"
        },
        "a2a":{
          "shape":"A2aDescriptor",
          "documentation":"<p> The A2A (Agent-to-Agent) descriptor configuration. Populated when the record's <code>descriptorType</code> is <code>A2A</code>.</p>"
        },
        "custom":{
          "shape":"CustomDescriptor",
          "documentation":"<p> The custom descriptor configuration. Populated when the record's <code>descriptorType</code> is <code>CUSTOM</code>.</p>"
        },
        "agentSkills":{
          "shape":"AgentSkillsDescriptor",
          "documentation":"<p> The agent skills descriptor configuration. Populated when the record's <code>descriptorType</code> is <code>AGENT_SKILLS</code>.</p>"
        }
      },
      "documentation":"<p> Contains the descriptor configuration for a registry record. Only the field that matches the record's <code>descriptorType</code> is populated.</p>"
    },
    "Document":{
      "type":"structure",
      "members":{},
      "document":true,
      "sensitive":true
    },
    "DomainPattern":{
      "type":"string",
      "max":253,
      "min":1,
      "pattern":"(\\.)?[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*"
    },
    "DomainPatterns":{
      "type":"list",
      "member":{"shape":"DomainPattern"},
      "max":100,
      "min":1
    },
    "Double":{
      "type":"double",
      "box":true
    },
    "DuplicateIdException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p> An exception thrown when attempting to create a resource with an identifier that already exists.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "ErrorDetailsList":{
      "type":"list",
      "member":{"shape":"ErrorDetailsListMemberString"},
      "max":1,
      "min":0
    },
    "ErrorDetailsListMemberString":{
      "type":"string",
      "max":1000,
      "min":0
    },
    "EvaluateRequest":{
      "type":"structure",
      "required":[
        "evaluatorId",
        "evaluationInput"
      ],
      "members":{
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the evaluator to use for scoring. Can be a built-in evaluator (e.g., <code>Builtin.Helpfulness</code>, <code>Builtin.Correctness</code>) or a custom evaluator Id created through the control plane API. </p>",
          "location":"uri",
          "locationName":"evaluatorId"
        },
        "evaluationInput":{
          "shape":"EvaluationInput",
          "documentation":"<p> The input data containing agent session spans to be evaluated. Includes a list of spans in OpenTelemetry format from supported frameworks like Strands (AgentCore Runtime) or LangGraph with OpenInference instrumentation. </p>"
        },
        "evaluationTarget":{
          "shape":"EvaluationTarget",
          "documentation":"<p> The specific trace or span IDs to evaluate within the provided input. Allows targeting evaluation at different levels: individual tool calls, single request-response interactions (traces), or entire conversation sessions. </p>"
        },
        "evaluationReferenceInputs":{
          "shape":"EvaluationReferenceInputs",
          "documentation":"<p> Ground truth data to compare against agent responses during evaluation. Allows to provide expected responses, assertions, and expected tool trajectories at different evaluation levels. Session-level reference inputs apply to the entire conversation, while trace-level reference inputs target specific request-response interactions identified by trace ID. </p>"
        }
      }
    },
    "EvaluateResponse":{
      "type":"structure",
      "required":["evaluationResults"],
      "members":{
        "evaluationResults":{
          "shape":"EvaluationResults",
          "documentation":"<p> The detailed evaluation results containing scores, explanations, and metadata. Includes the evaluator information, numerical or categorical ratings based on the evaluator's rating scale, and token usage statistics for the evaluation process. </p>"
        }
      }
    },
    "EvaluationContent":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"EvaluationContentTextString",
          "documentation":"<p> The text content of the ground truth data. Used for expected response text and assertion statements. </p>"
        }
      },
      "documentation":"<p> A content block for ground truth data in evaluation reference inputs. Supports text content for expected responses and assertions. </p>",
      "union":true
    },
    "EvaluationContentList":{
      "type":"list",
      "member":{"shape":"EvaluationContent"},
      "max":100,
      "min":1
    },
    "EvaluationContentTextString":{
      "type":"string",
      "max":100000,
      "min":1
    },
    "EvaluationErrorCode":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "EvaluationErrorMessage":{
      "type":"string",
      "max":2048,
      "min":0
    },
    "EvaluationExpectedTrajectory":{
      "type":"structure",
      "members":{
        "toolNames":{
          "shape":"EvaluationToolNames",
          "documentation":"<p> The list of tool names representing the expected tool call sequence. </p>"
        }
      },
      "documentation":"<p> The expected tool call trajectory for trajectory-based evaluation. </p>"
    },
    "EvaluationExplanation":{
      "type":"string",
      "max":2048,
      "min":0,
      "sensitive":true
    },
    "EvaluationInput":{
      "type":"structure",
      "members":{
        "sessionSpans":{
          "shape":"Spans",
          "documentation":"<p> The collection of spans representing agent execution traces within a session. Each span contains detailed information about tool calls, model interactions, and other agent activities that can be evaluated for quality and performance. </p>"
        }
      },
      "documentation":"<p> The input data structure containing agent session spans in OpenTelemetry format. Supports traces from frameworks like Strands (AgentCore Runtime) and LangGraph with OpenInference instrumentation for comprehensive evaluation. </p>",
      "union":true
    },
    "EvaluationJobResults":{
      "type":"structure",
      "members":{
        "numberOfSessionsCompleted":{
          "shape":"Integer",
          "documentation":"<p>The number of sessions that have been successfully evaluated.</p>"
        },
        "numberOfSessionsInProgress":{
          "shape":"Integer",
          "documentation":"<p>The number of sessions currently being evaluated.</p>"
        },
        "numberOfSessionsFailed":{
          "shape":"Integer",
          "documentation":"<p>The number of sessions that failed evaluation.</p>"
        },
        "totalNumberOfSessions":{
          "shape":"Integer",
          "documentation":"<p>The total number of sessions included in the batch evaluation.</p>"
        },
        "numberOfSessionsIgnored":{
          "shape":"Integer",
          "documentation":"<p>The number of sessions that were ignored during evaluation.</p>"
        },
        "evaluatorSummaries":{
          "shape":"EvaluatorSummaryList",
          "documentation":"<p>A list of per-evaluator summary statistics.</p>"
        }
      },
      "documentation":"<p>Aggregated results from a batch evaluation, including session completion counts and evaluator score summaries.</p>"
    },
    "EvaluationMetadata":{
      "type":"structure",
      "members":{
        "sessionMetadata":{
          "shape":"SessionMetadataList",
          "documentation":"<p>A list of session metadata entries containing ground truth data and test scenario identifiers for specific sessions.</p>"
        }
      },
      "documentation":"<p>Metadata for the evaluation, including session-specific ground truth data.</p>",
      "union":true
    },
    "EvaluationReferenceInput":{
      "type":"structure",
      "required":["context"],
      "members":{
        "context":{"shape":"Context"},
        "expectedResponse":{
          "shape":"EvaluationContent",
          "documentation":"<p> The expected response for trace-level evaluation. Built-in evaluators that support this field compare the agent's actual response against this value for assessment. Custom evaluators can access it through the <code>{expected_response}</code> placeholder in their instructions. </p>"
        },
        "assertions":{
          "shape":"EvaluationContentList",
          "documentation":"<p> A list of assertion statements for session-level evaluation. Each assertion describes an expected behavior or outcome the agent should demonstrate during the session. </p>"
        },
        "expectedTrajectory":{
          "shape":"EvaluationExpectedTrajectory",
          "documentation":"<p> The expected tool call sequence for session-level trajectory evaluation. Contains a list of tool names representing the tools the agent is expected to invoke. </p>"
        }
      },
      "documentation":"<p> A reference input containing ground truth data for evaluation, scoped to a specific context level (session or trace) through its span context. </p>"
    },
    "EvaluationReferenceInputs":{
      "type":"list",
      "member":{"shape":"EvaluationReferenceInput"},
      "max":1000,
      "min":1,
      "sensitive":true
    },
    "EvaluationResultContent":{
      "type":"structure",
      "required":[
        "evaluatorArn",
        "evaluatorId",
        "evaluatorName",
        "context"
      ],
      "members":{
        "evaluatorArn":{
          "shape":"EvaluatorArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the evaluator used to generate this result. For custom evaluators, this is the full ARN; for built-in evaluators, this follows the pattern <code>Builtin.{EvaluatorName}</code>. </p>"
        },
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the evaluator that produced this result. This matches the <code>evaluatorId</code> provided in the evaluation request and can be used to identify which evaluator generated specific results. </p>"
        },
        "evaluatorName":{
          "shape":"EvaluatorName",
          "documentation":"<p> The human-readable name of the evaluator used for this evaluation. For built-in evaluators, this is the descriptive name (e.g., \"Helpfulness\", \"Correctness\"); for custom evaluators, this is the user-defined name. </p>"
        },
        "explanation":{
          "shape":"EvaluationExplanation",
          "documentation":"<p> The detailed explanation provided by the evaluator describing the reasoning behind the assigned score. This qualitative feedback helps understand why specific ratings were given and provides actionable insights for improvement. </p>"
        },
        "context":{
          "shape":"Context",
          "documentation":"<p> The contextual information associated with this evaluation result, including span context details that identify the specific traces and sessions that were evaluated. </p>"
        },
        "value":{
          "shape":"Double",
          "documentation":"<p> The numerical score assigned by the evaluator according to its configured rating scale. For numerical scales, this is a decimal value within the defined range. This field is not allowed for categorical scales. </p>"
        },
        "label":{
          "shape":"String",
          "documentation":"<p> The categorical label assigned by the evaluator when using a categorical rating scale. This provides a human-readable description of the evaluation result (e.g., \"Excellent\", \"Good\", \"Poor\") corresponding to the numerical value. For numerical scales, this field is optional and provides a natural language explanation of what the value means (e.g., value 0.5 = \"Somewhat Helpful\"). </p>"
        },
        "tokenUsage":{
          "shape":"TokenUsage",
          "documentation":"<p> The token consumption statistics for this evaluation, including input tokens, output tokens, and total tokens used by the underlying language model during the evaluation process. </p>"
        },
        "errorMessage":{
          "shape":"EvaluationErrorMessage",
          "documentation":"<p> The error message describing what went wrong if the evaluation failed. Provides detailed information about evaluation failures to help diagnose and resolve issues with evaluator configuration or input data. </p>"
        },
        "errorCode":{
          "shape":"EvaluationErrorCode",
          "documentation":"<p> The error code indicating the type of failure that occurred during evaluation. Used to programmatically identify and handle different categories of evaluation errors. </p>"
        },
        "ignoredReferenceInputFields":{
          "shape":"IgnoredReferenceInputFields",
          "documentation":"<p> The list of reference input field names that were provided but not used by the evaluator. Helps identify which ground truth data was not consumed during evaluation. </p>"
        }
      },
      "documentation":"<p> The comprehensive result of an evaluation containing the score, explanation, evaluator metadata, and execution details. Provides both quantitative ratings and qualitative insights about agent performance. </p>"
    },
    "EvaluationResults":{
      "type":"list",
      "member":{"shape":"EvaluationResultContent"}
    },
    "EvaluationTarget":{
      "type":"structure",
      "members":{
        "spanIds":{
          "shape":"SpanIds",
          "documentation":"<p> The list of specific span IDs to evaluate within the provided traces. Used to target evaluation at individual tool calls or specific operations within the agent's execution flow. </p>"
        },
        "traceIds":{
          "shape":"TraceIds",
          "documentation":"<p> The list of trace IDs to evaluate, representing complete request-response interactions. Used to evaluate entire conversation turns or specific agent interactions within a session. </p>"
        }
      },
      "documentation":"<p> The specification of which trace or span IDs to evaluate within the provided input data. Allows precise targeting of evaluation at different levels: tool calls, traces, or sessions. </p>",
      "union":true
    },
    "EvaluationToolName":{
      "type":"string",
      "max":500,
      "min":1
    },
    "EvaluationToolNames":{
      "type":"list",
      "member":{"shape":"EvaluationToolName"},
      "max":1000,
      "min":0
    },
    "Evaluator":{
      "type":"structure",
      "required":["evaluatorId"],
      "members":{
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p>The unique identifier of the evaluator. Can reference built-in evaluators (e.g., <code>Builtin.Helpfulness</code>) or custom evaluators.</p>"
        }
      },
      "documentation":"<p>An evaluator to run against sessions</p>"
    },
    "EvaluatorArn":{
      "type":"string",
      "pattern":"arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:evaluator\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$|^arn:aws:bedrock-agentcore:::evaluator/Builtin.[a-zA-Z0-9_-]+"
    },
    "EvaluatorId":{
      "type":"string",
      "pattern":"(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10})"
    },
    "EvaluatorList":{
      "type":"list",
      "member":{"shape":"Evaluator"}
    },
    "EvaluatorMetric":{
      "type":"structure",
      "required":[
        "evaluatorArn",
        "controlStats",
        "variantResults"
      ],
      "members":{
        "evaluatorArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluator.</p>"
        },
        "controlStats":{
          "shape":"ControlStats",
          "documentation":"<p>The statistics for the control variant.</p>"
        },
        "variantResults":{
          "shape":"VariantResultList",
          "documentation":"<p>The results for each treatment variant compared against the control.</p>"
        }
      },
      "documentation":"<p>Statistical metrics for a single evaluator comparing control and treatment variants.</p>"
    },
    "EvaluatorMetricList":{
      "type":"list",
      "member":{"shape":"EvaluatorMetric"}
    },
    "EvaluatorName":{
      "type":"string",
      "pattern":"(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9_]{0,47})"
    },
    "EvaluatorStatistics":{
      "type":"structure",
      "members":{
        "averageScore":{
          "shape":"Double",
          "documentation":"<p>The average score across all evaluated sessions for this evaluator.</p>"
        }
      },
      "documentation":"<p>Aggregated statistics for an evaluator.</p>"
    },
    "EvaluatorSummary":{
      "type":"structure",
      "members":{
        "evaluatorId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the evaluator.</p>"
        },
        "statistics":{
          "shape":"EvaluatorStatistics",
          "documentation":"<p>The aggregated statistics for this evaluator.</p>"
        },
        "totalEvaluated":{
          "shape":"Integer",
          "documentation":"<p>The total number of sessions evaluated by this evaluator.</p>"
        },
        "totalFailed":{
          "shape":"Integer",
          "documentation":"<p>The total number of sessions that failed evaluation by this evaluator.</p>"
        }
      },
      "documentation":"<p>Summary statistics for a single evaluator within a batch evaluation.</p>"
    },
    "EvaluatorSummaryList":{
      "type":"list",
      "member":{"shape":"EvaluatorSummary"}
    },
    "Event":{
      "type":"structure",
      "required":[
        "memoryId",
        "actorId",
        "sessionId",
        "eventId",
        "eventTimestamp",
        "payload"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource containing the event.</p>"
        },
        "actorId":{
          "shape":"ActorId",
          "documentation":"<p>The identifier of the actor associated with the event.</p>"
        },
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The identifier of the session containing the event.</p>"
        },
        "eventId":{
          "shape":"EventId",
          "documentation":"<p>The unique identifier of the event.</p>"
        },
        "eventTimestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the event occurred.</p>"
        },
        "payload":{
          "shape":"PayloadTypeList",
          "documentation":"<p>The content payload of the event.</p>"
        },
        "branch":{
          "shape":"Branch",
          "documentation":"<p>The branch information for the event.</p>"
        },
        "metadata":{
          "shape":"MetadataMap",
          "documentation":"<p>Metadata associated with an event.</p>"
        }
      },
      "documentation":"<p>Contains information about an event in an AgentCore Memory resource.</p>"
    },
    "EventFilterCondition":{
      "type":"string",
      "documentation":"<p>The condition to use for filtering sessions by events.</p>",
      "enum":["HAS_EVENTS"]
    },
    "EventId":{
      "type":"string",
      "pattern":"[0-9]+#[a-fA-F0-9]+"
    },
    "EventList":{
      "type":"list",
      "member":{"shape":"Event"}
    },
    "EventMetadataFilterExpression":{
      "type":"structure",
      "required":[
        "left",
        "operator"
      ],
      "members":{
        "left":{
          "shape":"LeftExpression",
          "documentation":"<p>Left operand of the event metadata filter expression.</p>"
        },
        "operator":{
          "shape":"OperatorType",
          "documentation":"<p>Operator applied to the event metadata filter expression.</p>"
        },
        "right":{
          "shape":"RightExpression",
          "documentation":"<p>Right operand of the event metadata filter expression.</p>"
        }
      },
      "documentation":"<p>Filter expression for retrieving events based on metadata associated with an event.</p>"
    },
    "EventMetadataFilterList":{
      "type":"list",
      "member":{"shape":"EventMetadataFilterExpression"},
      "max":5,
      "min":1
    },
    "ExternalProxy":{
      "type":"structure",
      "required":[
        "server",
        "port"
      ],
      "members":{
        "server":{
          "shape":"HostName",
          "documentation":"<p>The hostname of the proxy server. Must be a valid DNS hostname (maximum 253 characters).</p>"
        },
        "port":{
          "shape":"ExternalProxyPortInteger",
          "documentation":"<p>The port number of the proxy server. Valid range: 1-65535.</p>"
        },
        "domainPatterns":{
          "shape":"DomainPatterns",
          "documentation":"<p>Optional array of domain patterns that should route through this specific proxy. Supports <code>.example.com</code> for subdomain matching (matches any subdomain of example.com) or <code>example.com</code> for exact domain matching. If omitted, this proxy acts as a catch-all for domains not matched by other proxies. Maximum 100 patterns per proxy, each up to 253 characters.</p>"
        },
        "credentials":{
          "shape":"ProxyCredentials",
          "documentation":"<p>Optional authentication credentials for the proxy server. If omitted, the proxy is accessed without authentication (useful for IP-allowlisted proxies).</p>"
        }
      },
      "documentation":"<p>Configuration for a customer-managed external proxy server. Includes server location, optional domain-based routing patterns, and authentication credentials.</p>"
    },
    "ExternalProxyPortInteger":{
      "type":"integer",
      "box":true,
      "max":65535,
      "min":1
    },
    "ExtractionJob":{
      "type":"structure",
      "required":["jobId"],
      "members":{
        "jobId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the extraction job.</p>"
        }
      },
      "documentation":"<p>Represents the metadata of a memory extraction job such as the message identifiers that compose this job.</p>"
    },
    "ExtractionJobFilterInput":{
      "type":"structure",
      "members":{
        "strategyId":{
          "shape":"String",
          "documentation":"<p>The memory strategy identifier to filter extraction jobs by. If specified, only extraction jobs with this strategy ID are returned.</p>"
        },
        "sessionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the session. If specified, only extraction jobs with this session ID are returned.</p>"
        },
        "actorId":{
          "shape":"String",
          "documentation":"<p>The identifier of the actor. If specified, only extraction jobs with this actor ID are returned.</p>"
        },
        "status":{
          "shape":"ExtractionJobStatus",
          "documentation":"<p>The status of the extraction job. If specified, only extraction jobs with this status are returned.</p>"
        }
      },
      "documentation":"<p>Filters for querying memory extraction jobs based on various criteria.</p>"
    },
    "ExtractionJobMessages":{
      "type":"structure",
      "members":{
        "messagesList":{
          "shape":"MessagesList",
          "documentation":"<p>The list of messages that compose this extraction job.</p>"
        }
      },
      "documentation":"<p>The list of messages that compose this extraction job.</p>",
      "union":true
    },
    "ExtractionJobMetadata":{
      "type":"structure",
      "required":[
        "jobID",
        "messages"
      ],
      "members":{
        "jobID":{
          "shape":"String",
          "documentation":"<p>The unique identifier for the extraction job.</p>"
        },
        "messages":{
          "shape":"ExtractionJobMessages",
          "documentation":"<p>The messages associated with the extraction job.</p>"
        },
        "status":{
          "shape":"ExtractionJobStatus",
          "documentation":"<p>The current status of the extraction job.</p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p>The cause of failure, if the job did not complete successfully.</p>"
        },
        "strategyId":{
          "shape":"String",
          "documentation":"<p>The identifier of the memory strategy for this extraction job.</p>"
        },
        "sessionId":{
          "shape":"String",
          "documentation":"<p>The identifier of the session for this extraction job.</p>"
        },
        "actorId":{
          "shape":"String",
          "documentation":"<p>The identifier of the actor for this extraction job.</p>"
        }
      },
      "documentation":"<p>Metadata information associated with this extraction job.</p>"
    },
    "ExtractionJobMetadataList":{
      "type":"list",
      "member":{"shape":"ExtractionJobMetadata"}
    },
    "ExtractionJobStatus":{
      "type":"string",
      "enum":["FAILED"]
    },
    "FilterInput":{
      "type":"structure",
      "members":{
        "branch":{
          "shape":"BranchFilter",
          "documentation":"<p>The branch filter criteria to apply when listing events.</p>"
        },
        "eventMetadata":{
          "shape":"EventMetadataFilterList",
          "documentation":"<p>Event metadata filter criteria to apply when retrieving events.</p>"
        }
      },
      "documentation":"<p>Contains filter criteria for listing events.</p>"
    },
    "FilterStringValue":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "FilterValue":{
      "type":"structure",
      "members":{
        "stringValue":{
          "shape":"FilterStringValue",
          "documentation":"<p>A string value for text-based filtering.</p>"
        },
        "doubleValue":{
          "shape":"Double",
          "documentation":"<p>A numeric value for numerical filtering and comparisons.</p>"
        },
        "booleanValue":{
          "shape":"Boolean",
          "documentation":"<p>A boolean value for true/false filtering conditions.</p>"
        }
      },
      "documentation":"<p>A value used in filter comparisons, supporting different data types.</p>",
      "union":true
    },
    "GatewayArn":{
      "type":"string",
      "pattern":"arn:aws(|-cn|-us-gov):bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,48}-[a-z0-9]{10}"
    },
    "GatewayFilter":{
      "type":"structure",
      "members":{
        "targetPaths":{
          "shape":"TargetPathList",
          "documentation":"<p>A list of target path patterns to include in the A/B test.</p>"
        }
      },
      "documentation":"<p>A filter to restrict which gateway target paths are included in the A/B test.</p>"
    },
    "GetABTestRequest":{
      "type":"structure",
      "required":["abTestId"],
      "members":{
        "abTestId":{
          "shape":"ABTestId",
          "documentation":"<p>The unique identifier of the A/B test to retrieve.</p>",
          "location":"uri",
          "locationName":"abTestId"
        }
      }
    },
    "GetABTestResponse":{
      "type":"structure",
      "required":[
        "abTestId",
        "abTestArn",
        "name",
        "status",
        "executionStatus",
        "gatewayArn",
        "variants",
        "evaluationConfig",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "abTestId":{
          "shape":"ABTestId",
          "documentation":"<p>The unique identifier of the A/B test.</p>"
        },
        "abTestArn":{
          "shape":"ABTestArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the A/B test.</p>"
        },
        "name":{
          "shape":"ABTestName",
          "documentation":"<p>The name of the A/B test.</p>"
        },
        "description":{
          "shape":"ABTestDescription",
          "documentation":"<p>The description of the A/B test.</p>"
        },
        "status":{
          "shape":"ABTestStatus",
          "documentation":"<p>The current status of the A/B test.</p>"
        },
        "executionStatus":{
          "shape":"ABTestExecutionStatus",
          "documentation":"<p>The execution status indicating whether the A/B test is currently running.</p>"
        },
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway used for traffic splitting.</p>"
        },
        "variants":{
          "shape":"VariantList",
          "documentation":"<p>The list of variants in the A/B test.</p>"
        },
        "gatewayFilter":{
          "shape":"GatewayFilter",
          "documentation":"<p>The gateway filter restricting which target paths are included.</p>"
        },
        "evaluationConfig":{
          "shape":"ABTestEvaluationConfig",
          "documentation":"<p>The evaluation configuration for measuring variant performance.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM role ARN used by the A/B test.</p>"
        },
        "currentRunId":{
          "shape":"String",
          "documentation":"<p>The identifier of the current run of the A/B test.</p>"
        },
        "errorDetails":{
          "shape":"ErrorDetailsList",
          "documentation":"<p>The error details if the A/B test encountered failures.</p>"
        },
        "startedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the A/B test was started.</p>"
        },
        "stoppedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the A/B test was stopped.</p>"
        },
        "maxDurationExpiresAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the A/B test will automatically expire.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the A/B test was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the A/B test was last updated.</p>"
        },
        "results":{
          "shape":"ABTestResults",
          "documentation":"<p>The statistical results of the A/B test, including per-evaluator metrics and significance analysis.</p>"
        }
      }
    },
    "GetAgentCardRequest":{
      "type":"structure",
      "required":["agentRuntimeArn"],
      "members":{
        "runtimeSessionId":{
          "shape":"SessionType",
          "documentation":"<p>The session ID that the AgentCore Runtime agent is using. </p>",
          "idempotencyToken":true,
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
        },
        "agentRuntimeArn":{
          "shape":"String",
          "documentation":"<p>The ARN of the AgentCore Runtime agent for which you want to get the A2A agent card.</p>",
          "location":"uri",
          "locationName":"agentRuntimeArn"
        },
        "qualifier":{
          "shape":"String",
          "documentation":"<p>Optional qualifier to specify an agent alias, such as <code>prod</code>code&gt; or <code>dev</code>. If you don't provide a value, the DEFAULT alias is used. </p>",
          "location":"querystring",
          "locationName":"qualifier"
        }
      }
    },
    "GetAgentCardResponse":{
      "type":"structure",
      "required":["agentCard"],
      "members":{
        "runtimeSessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session associated with the AgentCore Runtime agent.</p>",
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
        },
        "agentCard":{
          "shape":"AgentCard",
          "documentation":"<p>An agent card document that contains metadata and capabilities for an AgentCore Runtime agent.</p>"
        },
        "statusCode":{
          "shape":"HttpResponseCode",
          "documentation":"<p>The status code of the request.</p>",
          "location":"statusCode"
        }
      },
      "payload":"agentCard"
    },
    "GetBatchEvaluationRequest":{
      "type":"structure",
      "required":["batchEvaluationId"],
      "members":{
        "batchEvaluationId":{
          "shape":"BatchEvaluationId",
          "documentation":"<p>The unique identifier of the batch evaluation to retrieve.</p>",
          "location":"uri",
          "locationName":"batchEvaluationId"
        }
      }
    },
    "GetBatchEvaluationResponse":{
      "type":"structure",
      "required":[
        "batchEvaluationId",
        "batchEvaluationArn",
        "batchEvaluationName",
        "status",
        "createdAt"
      ],
      "members":{
        "batchEvaluationId":{
          "shape":"BatchEvaluationId",
          "documentation":"<p>The unique identifier of the batch evaluation.</p>"
        },
        "batchEvaluationArn":{
          "shape":"BatchEvaluationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the batch evaluation.</p>"
        },
        "batchEvaluationName":{
          "shape":"BatchEvaluationName",
          "documentation":"<p>The name of the batch evaluation.</p>"
        },
        "status":{
          "shape":"BatchEvaluationStatus",
          "documentation":"<p>The current status of the batch evaluation.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the batch evaluation was created.</p>"
        },
        "evaluators":{
          "shape":"EvaluatorList",
          "documentation":"<p>The list of evaluators applied during the batch evaluation.</p>"
        },
        "dataSourceConfig":{
          "shape":"DataSourceConfig",
          "documentation":"<p>The data source configuration specifying where agent traces are pulled from.</p>"
        },
        "outputConfig":{
          "shape":"OutputConfig",
          "documentation":"<p>The output configuration specifying where evaluation results are written.</p>"
        },
        "evaluationResults":{
          "shape":"EvaluationJobResults",
          "documentation":"<p>The aggregated evaluation results, including session completion counts and evaluator score summaries.</p>"
        },
        "errorDetails":{
          "shape":"ErrorDetailsList",
          "documentation":"<p>The error details if the batch evaluation encountered failures.</p>"
        },
        "description":{
          "shape":"BatchEvaluationDescription",
          "documentation":"<p>The description of the batch evaluation.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the batch evaluation was last updated.</p>"
        }
      }
    },
    "GetBrowserSessionRequest":{
      "type":"structure",
      "required":[
        "browserIdentifier",
        "sessionId"
      ],
      "members":{
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the browser associated with the session.</p>",
          "location":"uri",
          "locationName":"browserIdentifier"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The unique identifier of the browser session to retrieve.</p>",
          "location":"querystring",
          "locationName":"sessionId"
        }
      }
    },
    "GetBrowserSessionResponse":{
      "type":"structure",
      "required":[
        "browserIdentifier",
        "sessionId",
        "createdAt"
      ],
      "members":{
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the browser.</p>"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The identifier of the browser session.</p>"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the browser session.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The time at which the browser session was created.</p>"
        },
        "viewPort":{"shape":"ViewPort"},
        "extensions":{
          "shape":"BrowserExtensions",
          "documentation":"<p>The list of browser extensions that are configured in the browser session.</p>"
        },
        "enterprisePolicies":{
          "shape":"BrowserEnterprisePolicies",
          "documentation":"<p>A list of files containing enterprise policies for the browser session.</p>"
        },
        "profileConfiguration":{
          "shape":"BrowserProfileConfiguration",
          "documentation":"<p>The browser profile configuration associated with this session. Contains the profile identifier that links to persistent browser data such as cookies and local storage.</p>"
        },
        "sessionTimeoutSeconds":{
          "shape":"BrowserSessionTimeout",
          "documentation":"<p>The timeout period for the browser session in seconds.</p>"
        },
        "status":{
          "shape":"BrowserSessionStatus",
          "documentation":"<p>The current status of the browser session. Possible values include ACTIVE, STOPPING, and STOPPED.</p>"
        },
        "streams":{
          "shape":"BrowserSessionStream",
          "documentation":"<p>The streams associated with this browser session. These include the automation stream and live view stream.</p>"
        },
        "proxyConfiguration":{
          "shape":"ProxyConfiguration",
          "documentation":"<p>The active proxy configuration for this browser session. This field is only present if proxy configuration was provided when the session was started using <code>StartBrowserSession</code>. The configuration includes proxy servers, domain bypass rules and the proxy authentication credentials.</p>"
        },
        "certificates":{
          "shape":"Certificates",
          "documentation":"<p>The list of certificates installed in the browser session.</p>"
        },
        "sessionReplayArtifact":{
          "shape":"String",
          "documentation":"<p>The artifact containing the session replay information.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The time at which the browser session was last updated.</p>"
        }
      }
    },
    "GetCodeInterpreterSessionRequest":{
      "type":"structure",
      "required":[
        "codeInterpreterIdentifier",
        "sessionId"
      ],
      "members":{
        "codeInterpreterIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the code interpreter associated with the session.</p>",
          "location":"uri",
          "locationName":"codeInterpreterIdentifier"
        },
        "sessionId":{
          "shape":"CodeInterpreterSessionId",
          "documentation":"<p>The unique identifier of the code interpreter session to retrieve.</p>",
          "location":"querystring",
          "locationName":"sessionId"
        }
      }
    },
    "GetCodeInterpreterSessionResponse":{
      "type":"structure",
      "required":[
        "codeInterpreterIdentifier",
        "sessionId",
        "createdAt"
      ],
      "members":{
        "codeInterpreterIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the code interpreter.</p>"
        },
        "sessionId":{
          "shape":"CodeInterpreterSessionId",
          "documentation":"<p>The identifier of the code interpreter session.</p>"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the code interpreter session.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The time at which the code interpreter session was created.</p>"
        },
        "sessionTimeoutSeconds":{
          "shape":"CodeInterpreterSessionTimeout",
          "documentation":"<p>The timeout period for the code interpreter session in seconds.</p>"
        },
        "status":{
          "shape":"CodeInterpreterSessionStatus",
          "documentation":"<p>The current status of the code interpreter session. Possible values include ACTIVE, STOPPING, and STOPPED.</p>"
        },
        "certificates":{
          "shape":"Certificates",
          "documentation":"<p>The list of certificates installed in the code interpreter session.</p>"
        }
      }
    },
    "GetEventInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "sessionId",
        "actorId",
        "eventId"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource containing the event.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The identifier of the session containing the event.</p>",
          "location":"uri",
          "locationName":"sessionId"
        },
        "actorId":{
          "shape":"ActorId",
          "documentation":"<p>The identifier of the actor associated with the event.</p>",
          "location":"uri",
          "locationName":"actorId"
        },
        "eventId":{
          "shape":"EventId",
          "documentation":"<p>The identifier of the event to retrieve.</p>",
          "location":"uri",
          "locationName":"eventId"
        }
      }
    },
    "GetEventOutput":{
      "type":"structure",
      "required":["event"],
      "members":{
        "event":{
          "shape":"Event",
          "documentation":"<p>The requested event information.</p>"
        }
      }
    },
    "GetMemoryRecordInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "memoryRecordId"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource containing the memory record.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "memoryRecordId":{
          "shape":"MemoryRecordId",
          "documentation":"<p>The identifier of the memory record to retrieve.</p>",
          "location":"uri",
          "locationName":"memoryRecordId"
        }
      }
    },
    "GetMemoryRecordOutput":{
      "type":"structure",
      "required":["memoryRecord"],
      "members":{
        "memoryRecord":{
          "shape":"MemoryRecord",
          "documentation":"<p>The requested memory record.</p>"
        }
      }
    },
    "GetRecommendationRequest":{
      "type":"structure",
      "required":["recommendationId"],
      "members":{
        "recommendationId":{
          "shape":"RecommendationId",
          "documentation":"<p>The unique identifier of the recommendation to retrieve.</p>",
          "location":"uri",
          "locationName":"recommendationId"
        }
      }
    },
    "GetRecommendationResponse":{
      "type":"structure",
      "required":[
        "recommendationId",
        "recommendationArn",
        "name",
        "type",
        "recommendationConfig",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "recommendationId":{
          "shape":"RecommendationId",
          "documentation":"<p>The unique identifier of the recommendation.</p>"
        },
        "recommendationArn":{
          "shape":"RecommendationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the recommendation.</p>"
        },
        "name":{
          "shape":"RecommendationName",
          "documentation":"<p>The name of the recommendation.</p>"
        },
        "description":{
          "shape":"RecommendationDescription",
          "documentation":"<p>The description of the recommendation.</p>"
        },
        "type":{
          "shape":"RecommendationType",
          "documentation":"<p>The type of recommendation.</p>"
        },
        "recommendationConfig":{
          "shape":"RecommendationConfig",
          "documentation":"<p>The configuration for the recommendation.</p>"
        },
        "status":{
          "shape":"RecommendationStatus",
          "documentation":"<p>The current status of the recommendation.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the recommendation was created.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the recommendation was last updated.</p>"
        },
        "recommendationResult":{
          "shape":"RecommendationResult",
          "documentation":"<p>The result of the recommendation, containing the optimized system prompt or tool descriptions. Only present when the recommendation status is <code>COMPLETED</code>.</p>"
        }
      }
    },
    "GetResourceApiKeyRequest":{
      "type":"structure",
      "required":[
        "workloadIdentityToken",
        "resourceCredentialProviderName"
      ],
      "members":{
        "workloadIdentityToken":{
          "shape":"WorkloadIdentityTokenType",
          "documentation":"<p>The identity token of the workload from which you want to retrieve the API key.</p>"
        },
        "resourceCredentialProviderName":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The credential provider name for the resource from which you are retrieving the API key.</p>"
        }
      }
    },
    "GetResourceApiKeyResponse":{
      "type":"structure",
      "required":["apiKey"],
      "members":{
        "apiKey":{
          "shape":"ApiKeyType",
          "documentation":"<p>The API key associated with the resource requested.</p>"
        }
      }
    },
    "GetResourceOauth2TokenRequest":{
      "type":"structure",
      "required":[
        "workloadIdentityToken",
        "resourceCredentialProviderName",
        "scopes",
        "oauth2Flow"
      ],
      "members":{
        "workloadIdentityToken":{
          "shape":"WorkloadIdentityTokenType",
          "documentation":"<p>The identity token of the workload from which you want to retrieve the OAuth2 token.</p>"
        },
        "resourceCredentialProviderName":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the resource's credential provider.</p>"
        },
        "scopes":{
          "shape":"ScopesListType",
          "documentation":"<p>The OAuth scopes being requested.</p>"
        },
        "oauth2Flow":{
          "shape":"Oauth2FlowType",
          "documentation":"<p>The type of flow to be performed.</p>"
        },
        "sessionUri":{
          "shape":"RequestUri",
          "documentation":"<p>Unique identifier for the user's authentication session for retrieving OAuth2 tokens. This ID tracks the authorization flow state across multiple requests and responses during the OAuth2 authentication process.</p>"
        },
        "resourceOauth2ReturnUrl":{
          "shape":"ResourceOauth2ReturnUrlType",
          "documentation":"<p>The callback URL to redirect to after the OAuth 2.0 token retrieval is complete. This URL must be one of the provided URLs configured for the workload identity.</p>"
        },
        "forceAuthentication":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether to always initiate a new three-legged OAuth (3LO) flow, regardless of any existing session.</p>"
        },
        "customParameters":{
          "shape":"CustomRequestParametersType",
          "documentation":"<p>A map of custom parameters to include in the authorization request to the resource credential provider. These parameters are in addition to the standard OAuth 2.0 flow parameters, and will not override them.</p>"
        },
        "customState":{
          "shape":"State",
          "documentation":"<p>An opaque string that will be sent back to the callback URL provided in resourceOauth2ReturnUrl. This state should be used to protect the callback URL of your application against CSRF attacks by ensuring the response corresponds to the original request.</p>"
        },
        "resources":{
          "shape":"ResourcesListType",
          "documentation":"<p>The resources to include in the token request. These are used to specify the target resources for which the OAuth2 token is being requested.</p>"
        },
        "audiences":{
          "shape":"AudiencesListType",
          "documentation":"<p>The audiences to include in the token request. These are used to specify the intended recipients of the OAuth2 token.</p>"
        }
      }
    },
    "GetResourceOauth2TokenResponse":{
      "type":"structure",
      "members":{
        "authorizationUrl":{
          "shape":"AuthorizationUrlType",
          "documentation":"<p>The URL to initiate the authorization process, provided when the access token requires user authorization.</p>"
        },
        "accessToken":{
          "shape":"AccessTokenType",
          "documentation":"<p>The OAuth 2.0 access token to use.</p>"
        },
        "sessionUri":{
          "shape":"RequestUri",
          "documentation":"<p>Unique identifier for the user's authorization session for retrieving OAuth2 tokens. This matches the sessionId from the request and can be used to track the session state.</p>"
        },
        "sessionStatus":{
          "shape":"SessionStatus",
          "documentation":"<p>Status indicating whether the user's authorization session is in progress or has failed. This helps determine the next steps in the OAuth2 authentication flow.</p>"
        }
      }
    },
    "GetWorkloadAccessTokenForJWTRequest":{
      "type":"structure",
      "required":[
        "workloadName",
        "userToken"
      ],
      "members":{
        "workloadName":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The unique identifier for the registered workload.</p>"
        },
        "userToken":{
          "shape":"UserTokenType",
          "documentation":"<p>The OAuth 2.0 token issued by the user's identity provider.</p>"
        }
      }
    },
    "GetWorkloadAccessTokenForJWTResponse":{
      "type":"structure",
      "required":["workloadAccessToken"],
      "members":{
        "workloadAccessToken":{
          "shape":"WorkloadIdentityTokenType",
          "documentation":"<p>An opaque token representing the identity of both the workload and the user.</p>"
        }
      }
    },
    "GetWorkloadAccessTokenForUserIdRequest":{
      "type":"structure",
      "required":[
        "workloadName",
        "userId"
      ],
      "members":{
        "workloadName":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The name of the workload from which you want to retrieve the access token.</p>"
        },
        "userId":{
          "shape":"UserIdType",
          "documentation":"<p>The ID of the user for whom you are retrieving the access token.</p>"
        }
      }
    },
    "GetWorkloadAccessTokenForUserIdResponse":{
      "type":"structure",
      "required":["workloadAccessToken"],
      "members":{
        "workloadAccessToken":{
          "shape":"WorkloadIdentityTokenType",
          "documentation":"<p>The access token for the specified workload.</p>"
        }
      }
    },
    "GetWorkloadAccessTokenRequest":{
      "type":"structure",
      "required":["workloadName"],
      "members":{
        "workloadName":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The unique identifier for the registered workload.</p>"
        }
      }
    },
    "GetWorkloadAccessTokenResponse":{
      "type":"structure",
      "required":["workloadAccessToken"],
      "members":{
        "workloadAccessToken":{
          "shape":"WorkloadIdentityTokenType",
          "documentation":"<p>An opaque token representing the identity of both the workload and the user.</p>"
        }
      }
    },
    "GroundTruthSource":{
      "type":"structure",
      "members":{
        "inline":{
          "shape":"InlineGroundTruth",
          "documentation":"<p>Provide ground truth inline</p>"
        }
      },
      "documentation":"<p>Where to pull ground truth from</p>",
      "union":true
    },
    "GroundTruthTurn":{
      "type":"structure",
      "members":{
        "input":{
          "shape":"GroundTruthTurnInput",
          "documentation":"<p>The input for this conversation turn.</p>"
        },
        "expectedResponse":{
          "shape":"EvaluationContent",
          "documentation":"<p>The expected response for this conversation turn.</p>"
        }
      },
      "documentation":"<p>Ground truth data for a single conversation turn.</p>"
    },
    "GroundTruthTurnInput":{
      "type":"structure",
      "members":{
        "prompt":{
          "shape":"GroundTruthTurnInputPromptString",
          "documentation":"<p>The text prompt for this conversation turn.</p>"
        }
      },
      "documentation":"<p>The input for a ground truth conversation turn.</p>",
      "union":true
    },
    "GroundTruthTurnInputPromptString":{
      "type":"string",
      "max":4000,
      "min":0
    },
    "HarnessAgentCoreBrowserConfig":{
      "type":"structure",
      "members":{
        "browserArn":{
          "shape":"BrowserArn",
          "documentation":"<p>If not populated, the built-in Browser ARN is used.</p>"
        }
      },
      "documentation":"<p>Configuration for AgentCore Browser.</p>"
    },
    "HarnessAgentCoreCodeInterpreterConfig":{
      "type":"structure",
      "members":{
        "codeInterpreterArn":{
          "shape":"CodeInterpreterArn",
          "documentation":"<p>If not populated, the built-in Code Interpreter ARN is used.</p>"
        }
      },
      "documentation":"<p>Configuration for AgentCore Code Interpreter.</p>"
    },
    "HarnessAgentCoreGatewayConfig":{
      "type":"structure",
      "required":["gatewayArn"],
      "members":{
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The ARN of the desired AgentCore Gateway.</p>"
        },
        "outboundAuth":{
          "shape":"HarnessGatewayOutboundAuth",
          "documentation":"<p>How harness authenticates to this Gateway. Defaults to AWS_IAM (SigV4) if omitted.</p>"
        }
      },
      "documentation":"<p>Configuration for AgentCore Gateway.</p>"
    },
    "HarnessAllowedTool":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"(\\*|@?[^/]+(/[^/]+)?)"
    },
    "HarnessAllowedTools":{
      "type":"list",
      "member":{"shape":"HarnessAllowedTool"}
    },
    "HarnessArn":{
      "type":"string",
      "pattern":"arn:([^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:harness/[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}"
    },
    "HarnessBedrockModelConfig":{
      "type":"structure",
      "required":["modelId"],
      "members":{
        "modelId":{
          "shape":"ModelId",
          "documentation":"<p>The Bedrock model ID.</p>"
        },
        "maxTokens":{
          "shape":"MaxTokens",
          "documentation":"<p>The maximum number of tokens to allow in the generated response per iteration.</p>"
        },
        "temperature":{
          "shape":"Temperature",
          "documentation":"<p>The temperature to set when calling the model.</p>"
        },
        "topP":{
          "shape":"TopP",
          "documentation":"<p>The topP set when calling the model.</p>"
        }
      },
      "documentation":"<p>Configuration for an Amazon Bedrock model provider.</p>"
    },
    "HarnessContentBlock":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"SensitiveText",
          "documentation":"<p>Text content.</p>"
        },
        "toolUse":{
          "shape":"HarnessToolUseBlock",
          "documentation":"<p>A tool use request from the model.</p>"
        },
        "toolResult":{
          "shape":"HarnessToolResultBlock",
          "documentation":"<p>A tool execution result.</p>"
        },
        "reasoningContent":{
          "shape":"HarnessReasoningContentBlock",
          "documentation":"<p>Model reasoning content.</p>"
        }
      },
      "documentation":"<p>A content block within a message.</p>",
      "union":true
    },
    "HarnessContentBlockDelta":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"SensitiveText",
          "documentation":"<p>A text delta.</p>"
        },
        "toolUse":{
          "shape":"HarnessToolUseBlockDelta",
          "documentation":"<p>A tool use input delta.</p>"
        },
        "toolResult":{
          "shape":"HarnessToolResultBlocksDelta",
          "documentation":"<p>A tool result delta.</p>"
        },
        "reasoningContent":{
          "shape":"HarnessReasoningContentBlockDelta",
          "documentation":"<p>A reasoning content delta.</p>"
        }
      },
      "documentation":"<p>A delta update to a content block.</p>",
      "union":true
    },
    "HarnessContentBlockDeltaEvent":{
      "type":"structure",
      "required":[
        "contentBlockIndex",
        "delta"
      ],
      "members":{
        "contentBlockIndex":{
          "shape":"Integer",
          "documentation":"<p>The index of the content block being updated.</p>"
        },
        "delta":{
          "shape":"HarnessContentBlockDelta",
          "documentation":"<p>The delta payload.</p>"
        }
      },
      "documentation":"<p>Event containing a delta update to a content block.</p>",
      "event":true
    },
    "HarnessContentBlockStart":{
      "type":"structure",
      "members":{
        "toolUse":{
          "shape":"HarnessToolUseBlockStart",
          "documentation":"<p>Start of a tool use content block.</p>"
        },
        "toolResult":{
          "shape":"HarnessToolResultBlockStart",
          "documentation":"<p>Start of a tool result content block.</p>"
        }
      },
      "documentation":"<p>The start payload for a content block.</p>",
      "union":true
    },
    "HarnessContentBlockStartEvent":{
      "type":"structure",
      "required":[
        "contentBlockIndex",
        "start"
      ],
      "members":{
        "contentBlockIndex":{
          "shape":"Integer",
          "documentation":"<p>The index of the content block within the message.</p>"
        },
        "start":{
          "shape":"HarnessContentBlockStart",
          "documentation":"<p>The content block start payload.</p>"
        }
      },
      "documentation":"<p>Event indicating the start of a content block.</p>",
      "event":true
    },
    "HarnessContentBlockStopEvent":{
      "type":"structure",
      "required":["contentBlockIndex"],
      "members":{
        "contentBlockIndex":{
          "shape":"Integer",
          "documentation":"<p>The index of the content block that ended.</p>"
        }
      },
      "documentation":"<p>Event indicating the end of a content block.</p>",
      "event":true
    },
    "HarnessContentBlocks":{
      "type":"list",
      "member":{"shape":"HarnessContentBlock"}
    },
    "HarnessConversationRole":{
      "type":"string",
      "enum":[
        "user",
        "assistant"
      ]
    },
    "HarnessGatewayOutboundAuth":{
      "type":"structure",
      "members":{
        "awsIam":{
          "shape":"Unit",
          "documentation":"<p>SigV4-sign requests using the agent's execution role.</p>"
        },
        "none":{
          "shape":"Unit",
          "documentation":"<p>No authentication.</p>"
        },
        "oauth":{
          "shape":"OAuthCredentialProvider",
          "documentation":"<p>OAuth 2.0 authentication via AgentCore Identity.</p>"
        }
      },
      "documentation":"<p>Authentication method for calling a Gateway.</p>",
      "union":true
    },
    "HarnessGeminiModelConfig":{
      "type":"structure",
      "required":[
        "modelId",
        "apiKeyArn"
      ],
      "members":{
        "modelId":{
          "shape":"ModelId",
          "documentation":"<p>The Gemini model ID.</p>"
        },
        "apiKeyArn":{
          "shape":"ApiKeyArn",
          "documentation":"<p>The ARN of your Gemini API key on AgentCore Identity.</p>"
        },
        "maxTokens":{
          "shape":"MaxTokens",
          "documentation":"<p>The maximum number of tokens to allow in the generated response per iteration.</p>"
        },
        "temperature":{
          "shape":"Temperature",
          "documentation":"<p>The temperature to set when calling the model.</p>"
        },
        "topP":{
          "shape":"TopP",
          "documentation":"<p>The topP set when calling the model.</p>"
        },
        "topK":{
          "shape":"TopK",
          "documentation":"<p>The topK set when calling the model.</p>"
        }
      },
      "documentation":"<p>Configuration for a Google Gemini model provider. Requires an API key stored in AgentCore Identity.</p>"
    },
    "HarnessInlineFunctionConfig":{
      "type":"structure",
      "required":[
        "description",
        "inputSchema"
      ],
      "members":{
        "description":{
          "shape":"HarnessInlineFunctionDescription",
          "documentation":"<p>Description of what the tool does, provided to the model.</p>"
        },
        "inputSchema":{
          "shape":"SensitiveJson",
          "documentation":"<p>JSON Schema describing the tool's input parameters.</p>"
        }
      },
      "documentation":"<p>Configuration for an inline function tool. When the agent calls this tool, the tool call is returned to the caller for external execution.</p>"
    },
    "HarnessInlineFunctionDescription":{
      "type":"string",
      "max":4096,
      "min":1,
      "sensitive":true
    },
    "HarnessMessage":{
      "type":"structure",
      "required":[
        "role",
        "content"
      ],
      "members":{
        "role":{
          "shape":"HarnessConversationRole",
          "documentation":"<p>The role of the message sender.</p>"
        },
        "content":{
          "shape":"HarnessContentBlocks",
          "documentation":"<p>The content blocks of the message.</p>"
        }
      },
      "documentation":"<p>A message in the conversation.</p>"
    },
    "HarnessMessageStartEvent":{
      "type":"structure",
      "required":["role"],
      "members":{
        "role":{
          "shape":"HarnessConversationRole",
          "documentation":"<p>The role of the message sender.</p>"
        }
      },
      "documentation":"<p>Event indicating the start of a message.</p>",
      "event":true
    },
    "HarnessMessageStopEvent":{
      "type":"structure",
      "required":["stopReason"],
      "members":{
        "stopReason":{
          "shape":"HarnessStopReason",
          "documentation":"<p>The reason the agent stopped generating.</p>"
        }
      },
      "documentation":"<p>Event indicating the end of a message.</p>",
      "event":true
    },
    "HarnessMessages":{
      "type":"list",
      "member":{"shape":"HarnessMessage"}
    },
    "HarnessMetadataEvent":{
      "type":"structure",
      "required":[
        "usage",
        "metrics"
      ],
      "members":{
        "usage":{
          "shape":"HarnessTokenUsage",
          "documentation":"<p>Token usage counts.</p>"
        },
        "metrics":{
          "shape":"HarnessStreamMetrics",
          "documentation":"<p>Latency metrics.</p>"
        }
      },
      "documentation":"<p>Token usage and latency metrics for the invocation.</p>",
      "event":true
    },
    "HarnessModelConfiguration":{
      "type":"structure",
      "members":{
        "bedrockModelConfig":{
          "shape":"HarnessBedrockModelConfig",
          "documentation":"<p>Configuration for an Amazon Bedrock model.</p>"
        },
        "openAiModelConfig":{
          "shape":"HarnessOpenAiModelConfig",
          "documentation":"<p>Configuration for an OpenAI model.</p>"
        },
        "geminiModelConfig":{
          "shape":"HarnessGeminiModelConfig",
          "documentation":"<p>Configuration for a Google Gemini model.</p>"
        }
      },
      "documentation":"<p>Specification of which model to use.</p>",
      "union":true
    },
    "HarnessOpenAiModelConfig":{
      "type":"structure",
      "required":[
        "modelId",
        "apiKeyArn"
      ],
      "members":{
        "modelId":{
          "shape":"ModelId",
          "documentation":"<p>The OpenAI model ID.</p>"
        },
        "apiKeyArn":{
          "shape":"ApiKeyArn",
          "documentation":"<p>The ARN of your OpenAI API key on AgentCore Identity.</p>"
        },
        "maxTokens":{
          "shape":"MaxTokens",
          "documentation":"<p>The maximum number of tokens to allow in the generated response per iteration.</p>"
        },
        "temperature":{
          "shape":"Temperature",
          "documentation":"<p>The temperature to set when calling the model.</p>"
        },
        "topP":{
          "shape":"TopP",
          "documentation":"<p>The topP set when calling the model.</p>"
        }
      },
      "documentation":"<p>Configuration for an OpenAI model provider. Requires an API key stored in AgentCore Identity.</p>"
    },
    "HarnessReasoningContentBlock":{
      "type":"structure",
      "members":{
        "reasoningText":{
          "shape":"HarnessReasoningTextBlock",
          "documentation":"<p>The reasoning text.</p>"
        },
        "redactedContent":{
          "shape":"Blob",
          "documentation":"<p>Redacted reasoning content.</p>"
        }
      },
      "documentation":"<p>Reasoning content from the model.</p>",
      "sensitive":true,
      "union":true
    },
    "HarnessReasoningContentBlockDelta":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"String",
          "documentation":"<p>Reasoning text delta.</p>"
        },
        "redactedContent":{
          "shape":"Body",
          "documentation":"<p>Redacted reasoning content.</p>"
        },
        "signature":{
          "shape":"String",
          "documentation":"<p>Signature for the reasoning content.</p>"
        }
      },
      "documentation":"<p>A delta update to a reasoning content block.</p>",
      "sensitive":true,
      "union":true
    },
    "HarnessReasoningTextBlock":{
      "type":"structure",
      "required":["text"],
      "members":{
        "text":{
          "shape":"String",
          "documentation":"<p>The reasoning text.</p>"
        },
        "signature":{
          "shape":"String",
          "documentation":"<p>Signature for verifying the reasoning content.</p>"
        }
      },
      "documentation":"<p>A block of reasoning text from the model.</p>",
      "sensitive":true
    },
    "HarnessRemoteMcpConfig":{
      "type":"structure",
      "required":["url"],
      "members":{
        "url":{
          "shape":"HarnessRemoteMcpUrl",
          "documentation":"<p>URL of the MCP endpoint.</p>"
        },
        "headers":{
          "shape":"HttpHeadersMap",
          "documentation":"<p>Custom headers to include when connecting to the remote MCP server.</p>"
        }
      },
      "documentation":"<p>Configuration for connecting to a remote MCP server.</p>"
    },
    "HarnessRemoteMcpUrl":{
      "type":"string",
      "max":16383,
      "min":1,
      "sensitive":true
    },
    "HarnessSkill":{
      "type":"structure",
      "members":{
        "path":{
          "shape":"HarnessSkillPath",
          "documentation":"<p>The filesystem path to the skill definition.</p>"
        }
      },
      "documentation":"<p>A skill available to the agent.</p>",
      "union":true
    },
    "HarnessSkillPath":{
      "type":"string",
      "min":1
    },
    "HarnessSkills":{
      "type":"list",
      "member":{"shape":"HarnessSkill"}
    },
    "HarnessStopReason":{
      "type":"string",
      "enum":[
        "end_turn",
        "tool_use",
        "tool_result",
        "max_tokens",
        "stop_sequence",
        "content_filtered",
        "malformed_model_output",
        "malformed_tool_use",
        "interrupted",
        "partial_turn",
        "model_context_window_exceeded",
        "max_iterations_exceeded",
        "max_output_tokens_exceeded",
        "timeout_exceeded"
      ]
    },
    "HarnessStreamMetrics":{
      "type":"structure",
      "required":["latencyMs"],
      "members":{
        "latencyMs":{
          "shape":"Long",
          "documentation":"<p>The end-to-end latency of the invocation in milliseconds.</p>"
        }
      },
      "documentation":"<p>Latency metrics for the invocation.</p>"
    },
    "HarnessSystemContentBlock":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"SensitiveText",
          "documentation":"<p>The text content of the system prompt block.</p>"
        }
      },
      "documentation":"<p>A content block in the system prompt.</p>",
      "union":true
    },
    "HarnessSystemPrompt":{
      "type":"list",
      "member":{"shape":"HarnessSystemContentBlock"}
    },
    "HarnessTokenUsage":{
      "type":"structure",
      "required":[
        "inputTokens",
        "outputTokens",
        "totalTokens"
      ],
      "members":{
        "inputTokens":{
          "shape":"HarnessTokenUsageInputTokensInteger",
          "documentation":"<p>The number of input tokens consumed.</p>"
        },
        "outputTokens":{
          "shape":"HarnessTokenUsageOutputTokensInteger",
          "documentation":"<p>The number of output tokens generated.</p>"
        },
        "totalTokens":{
          "shape":"HarnessTokenUsageTotalTokensInteger",
          "documentation":"<p>The total number of tokens consumed.</p>"
        },
        "cacheReadInputTokens":{
          "shape":"HarnessTokenUsageCacheReadInputTokensInteger",
          "documentation":"<p>The number of input tokens read from cache.</p>"
        },
        "cacheWriteInputTokens":{
          "shape":"HarnessTokenUsageCacheWriteInputTokensInteger",
          "documentation":"<p>The number of input tokens written to cache.</p>"
        }
      },
      "documentation":"<p>Token usage counts for the invocation.</p>"
    },
    "HarnessTokenUsageCacheReadInputTokensInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "HarnessTokenUsageCacheWriteInputTokensInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "HarnessTokenUsageInputTokensInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "HarnessTokenUsageOutputTokensInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "HarnessTokenUsageTotalTokensInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "HarnessTool":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"HarnessToolType",
          "documentation":"<p>The type of tool.</p>"
        },
        "name":{
          "shape":"HarnessToolName",
          "documentation":"<p>Unique name for the tool. If not provided, a name will be inferred or generated.</p>"
        },
        "config":{
          "shape":"HarnessToolConfiguration",
          "documentation":"<p>Tool-specific configuration.</p>"
        }
      },
      "documentation":"<p>A tool available to the agent loop.</p>"
    },
    "HarnessToolConfiguration":{
      "type":"structure",
      "members":{
        "remoteMcp":{
          "shape":"HarnessRemoteMcpConfig",
          "documentation":"<p>Configuration for remote MCP server.</p>"
        },
        "agentCoreBrowser":{
          "shape":"HarnessAgentCoreBrowserConfig",
          "documentation":"<p>Configuration for AgentCore Browser.</p>"
        },
        "agentCoreGateway":{
          "shape":"HarnessAgentCoreGatewayConfig",
          "documentation":"<p>Configuration for AgentCore Gateway.</p>"
        },
        "inlineFunction":{
          "shape":"HarnessInlineFunctionConfig",
          "documentation":"<p>Configuration for an inline function tool.</p>"
        },
        "agentCoreCodeInterpreter":{
          "shape":"HarnessAgentCoreCodeInterpreterConfig",
          "documentation":"<p>Configuration for AgentCore Code Interpreter.</p>"
        }
      },
      "documentation":"<p>Configuration union for different tool types.</p>",
      "union":true
    },
    "HarnessToolName":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "HarnessToolResultBlock":{
      "type":"structure",
      "required":[
        "toolUseId",
        "content"
      ],
      "members":{
        "toolUseId":{
          "shape":"HarnessToolUseId",
          "documentation":"<p>The tool use ID that this result corresponds to.</p>"
        },
        "content":{
          "shape":"HarnessToolResultContentBlocks",
          "documentation":"<p>The content of the tool result.</p>"
        },
        "status":{
          "shape":"HarnessToolUseStatus",
          "documentation":"<p>The status of the tool execution.</p>"
        },
        "type":{
          "shape":"HarnessToolUseType",
          "documentation":"<p>The type of tool use that produced this result.</p>"
        }
      },
      "documentation":"<p>The result of a tool execution.</p>"
    },
    "HarnessToolResultBlockDelta":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"SensitiveText",
          "documentation":"<p>A text tool result delta.</p>"
        },
        "json":{
          "shape":"SensitiveJson",
          "documentation":"<p>A JSON tool result delta.</p>"
        }
      },
      "documentation":"<p>A delta update to a tool result content block.</p>",
      "union":true
    },
    "HarnessToolResultBlockStart":{
      "type":"structure",
      "required":["toolUseId"],
      "members":{
        "toolUseId":{
          "shape":"HarnessToolUseId",
          "documentation":"<p>The tool use ID that this result corresponds to.</p>"
        },
        "status":{
          "shape":"HarnessToolUseStatus",
          "documentation":"<p>The status of the tool execution.</p>"
        }
      },
      "documentation":"<p>Start payload for a tool result content block.</p>"
    },
    "HarnessToolResultBlocksDelta":{
      "type":"list",
      "member":{"shape":"HarnessToolResultBlockDelta"}
    },
    "HarnessToolResultContentBlock":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"SensitiveText",
          "documentation":"<p>Text content.</p>"
        },
        "json":{
          "shape":"SensitiveJson",
          "documentation":"<p>JSON content.</p>"
        }
      },
      "documentation":"<p>A content block within a tool result.</p>",
      "union":true
    },
    "HarnessToolResultContentBlocks":{
      "type":"list",
      "member":{"shape":"HarnessToolResultContentBlock"}
    },
    "HarnessToolType":{
      "type":"string",
      "enum":[
        "remote_mcp",
        "agentcore_browser",
        "agentcore_gateway",
        "inline_function",
        "agentcore_code_interpreter"
      ]
    },
    "HarnessToolUseBlock":{
      "type":"structure",
      "required":[
        "name",
        "toolUseId",
        "input"
      ],
      "members":{
        "name":{
          "shape":"HarnessToolName",
          "documentation":"<p>The name of the tool to call.</p>"
        },
        "toolUseId":{
          "shape":"HarnessToolUseId",
          "documentation":"<p>The unique ID of this tool use.</p>"
        },
        "input":{
          "shape":"SensitiveJson",
          "documentation":"<p>The JSON input to pass to the tool.</p>"
        },
        "type":{
          "shape":"HarnessToolUseType",
          "documentation":"<p>The type of tool use.</p>"
        },
        "serverName":{
          "shape":"String",
          "documentation":"<p>The name of the MCP server providing this tool.</p>"
        }
      },
      "documentation":"<p>A tool use request from the model.</p>"
    },
    "HarnessToolUseBlockDelta":{
      "type":"structure",
      "required":["input"],
      "members":{
        "input":{
          "shape":"SensitiveText",
          "documentation":"<p>The partial JSON input for the tool call.</p>"
        }
      },
      "documentation":"<p>Delta payload for tool use input.</p>"
    },
    "HarnessToolUseBlockStart":{
      "type":"structure",
      "required":[
        "toolUseId",
        "name"
      ],
      "members":{
        "toolUseId":{
          "shape":"HarnessToolUseId",
          "documentation":"<p>The unique ID of this tool use.</p>"
        },
        "name":{
          "shape":"HarnessToolName",
          "documentation":"<p>The name of the tool being called.</p>"
        },
        "type":{
          "shape":"HarnessToolUseType",
          "documentation":"<p>The type of tool use.</p>"
        },
        "serverName":{
          "shape":"String",
          "documentation":"<p>The name of the MCP server providing this tool.</p>"
        }
      },
      "documentation":"<p>Start payload for a tool use content block.</p>"
    },
    "HarnessToolUseId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "HarnessToolUseStatus":{
      "type":"string",
      "enum":[
        "success",
        "error"
      ]
    },
    "HarnessToolUseType":{
      "type":"string",
      "enum":[
        "tool_use",
        "server_tool_use",
        "mcp_tool_use"
      ]
    },
    "HarnessTools":{
      "type":"list",
      "member":{"shape":"HarnessTool"}
    },
    "HostName":{
      "type":"string",
      "max":253,
      "min":1,
      "pattern":"[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*"
    },
    "HttpHeaderKey":{
      "type":"string",
      "documentation":"<p>The key of an HTTP header.</p>",
      "max":16383,
      "min":1
    },
    "HttpHeaderValue":{
      "type":"string",
      "documentation":"<p>The value of an HTTP header.</p>",
      "max":16383,
      "min":1
    },
    "HttpHeadersMap":{
      "type":"map",
      "key":{"shape":"HttpHeaderKey"},
      "value":{"shape":"HttpHeaderValue"},
      "documentation":"<p>Map of key/value pairs for HTTP headers.</p>",
      "sensitive":true
    },
    "HttpResponseCode":{
      "type":"integer",
      "box":true
    },
    "IgnoredReferenceInputField":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "IgnoredReferenceInputFields":{
      "type":"list",
      "member":{"shape":"IgnoredReferenceInputField"},
      "max":100,
      "min":0
    },
    "InlineContent":{
      "type":"string",
      "max":409600,
      "min":1
    },
    "InlineGroundTruth":{
      "type":"structure",
      "members":{
        "assertions":{
          "shape":"EvaluationContentList",
          "documentation":"<p>assertions for evaluation, reuses common model EvaluationContentList</p>"
        },
        "expectedTrajectory":{
          "shape":"EvaluationExpectedTrajectory",
          "documentation":"<p>expectedTrajectory for evaluation, reuses common model EvaluationExpectedTrajectory</p>"
        },
        "turns":{
          "shape":"InlineGroundTruthTurnsList",
          "documentation":"<p>A list of per-turn ground truth data, each containing an input prompt and expected response.</p>"
        }
      },
      "documentation":"<p>Inline ground truth data containing assertions, expected trajectories, and per-turn expected responses.</p>"
    },
    "InlineGroundTruthTurnsList":{
      "type":"list",
      "member":{"shape":"GroundTruthTurn"},
      "min":1
    },
    "InputContentBlock":{
      "type":"structure",
      "required":["path"],
      "members":{
        "path":{
          "shape":"MaxLenString",
          "documentation":"<p>The path to the input content.</p>"
        },
        "text":{
          "shape":"MaxLenString",
          "documentation":"<p>The text input content.</p>"
        },
        "blob":{
          "shape":"Body",
          "documentation":"<p>The binary input content.</p>"
        }
      },
      "documentation":"<p>A block of input content.</p>"
    },
    "InputContentBlockList":{
      "type":"list",
      "member":{"shape":"InputContentBlock"}
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The exception that occurs when the service encounters an unexpected internal error. This is a temporary condition that will resolve itself with retries. We recommend implementing exponential backoff retry logic in your application.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "InvalidInputException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The input fails to satisfy the constraints specified by AgentCore. Check your input values and try again.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "InvokeAgentRuntimeCommandRequest":{
      "type":"structure",
      "required":[
        "agentRuntimeArn",
        "body"
      ],
      "members":{
        "contentType":{
          "shape":"MimeType",
          "documentation":"<p>The MIME type of the input data in the request payload. This tells the agent runtime how to interpret the payload data. Common values include application/json for JSON data.</p>",
          "location":"header",
          "locationName":"Content-Type"
        },
        "accept":{
          "shape":"MimeType",
          "documentation":"<p>The desired MIME type for the response from the agent runtime command. This tells the agent runtime what format to use for the response data. Common values include application/json for JSON data.</p>",
          "location":"header",
          "locationName":"Accept"
        },
        "runtimeSessionId":{
          "shape":"SessionType",
          "documentation":"<p>The unique identifier of the runtime session in which to execute the command. This session ID is used to maintain state and context across multiple command invocations.</p>",
          "idempotencyToken":true,
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
        },
        "traceId":{
          "shape":"InvokeAgentRuntimeCommandRequestTraceIdString",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"InvokeAgentRuntimeCommandRequestTraceParentString",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "traceState":{
          "shape":"InvokeAgentRuntimeCommandRequestTraceStateString",
          "documentation":"<p>The trace state information for distributed tracing.</p>",
          "location":"header",
          "locationName":"tracestate"
        },
        "baggage":{
          "shape":"InvokeAgentRuntimeCommandRequestBaggageString",
          "documentation":"<p>Additional context information for distributed tracing.</p>",
          "location":"header",
          "locationName":"baggage"
        },
        "agentRuntimeArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the agent runtime on which to execute the command. This identifies the specific agent runtime environment where the command will run.</p>",
          "location":"uri",
          "locationName":"agentRuntimeArn"
        },
        "qualifier":{
          "shape":"String",
          "documentation":"<p>The qualifier to use for the agent runtime. This is an endpoint name that points to a specific version. If not specified, Amazon Bedrock AgentCore uses the default endpoint of the agent runtime.</p>",
          "location":"querystring",
          "locationName":"qualifier"
        },
        "accountId":{
          "shape":"InvokeAgentRuntimeCommandRequestAccountIdString",
          "documentation":"<p>The identifier of the Amazon Web Services account for the agent runtime resource. This parameter is required when you specify an agent ID instead of the full ARN for <code>agentRuntimeArn</code>.</p>",
          "location":"querystring",
          "locationName":"accountId"
        },
        "body":{
          "shape":"InvokeAgentRuntimeCommandRequestBody",
          "documentation":"<p>The request body containing the command to execute and optional configuration parameters such as timeout settings.</p>"
        }
      },
      "documentation":"<p>Request for InvokeAgentRuntimeCommand operation.</p>",
      "payload":"body"
    },
    "InvokeAgentRuntimeCommandRequestAccountIdString":{
      "type":"string",
      "pattern":"[0-9]{12}"
    },
    "InvokeAgentRuntimeCommandRequestBaggageString":{
      "type":"string",
      "max":8192,
      "min":0
    },
    "InvokeAgentRuntimeCommandRequestBody":{
      "type":"structure",
      "required":["command"],
      "members":{
        "command":{
          "shape":"InvokeAgentRuntimeCommandRequestBodyCommandString",
          "documentation":"<p>The shell command to execute on the agent runtime. This command is executed in the runtime environment and its output is streamed back to the caller.</p>"
        },
        "timeout":{
          "shape":"Integer",
          "documentation":"<p>The maximum duration in seconds to wait for the command to complete. If the command execution exceeds this timeout, it will be terminated. Default is 300 seconds. Minimum is 1 second. Maximum is 3600 seconds.</p>"
        }
      },
      "documentation":"<p>The request body structure for the <code>InvokeAgentRuntimeCommand</code> operation, containing the command to execute and optional configuration parameters.</p>"
    },
    "InvokeAgentRuntimeCommandRequestBodyCommandString":{
      "type":"string",
      "max":65536,
      "min":1
    },
    "InvokeAgentRuntimeCommandRequestTraceIdString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "InvokeAgentRuntimeCommandRequestTraceParentString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "InvokeAgentRuntimeCommandRequestTraceStateString":{
      "type":"string",
      "max":512,
      "min":0
    },
    "InvokeAgentRuntimeCommandResponse":{
      "type":"structure",
      "required":[
        "contentType",
        "stream"
      ],
      "members":{
        "runtimeSessionId":{
          "shape":"SessionId",
          "documentation":"<p>The unique identifier of the runtime session in which the command was executed.</p>",
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
        },
        "traceId":{
          "shape":"String",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"String",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "traceState":{
          "shape":"String",
          "documentation":"<p>The trace state information for distributed tracing.</p>",
          "location":"header",
          "locationName":"tracestate"
        },
        "baggage":{
          "shape":"String",
          "documentation":"<p>Additional context information for distributed tracing.</p>",
          "location":"header",
          "locationName":"baggage"
        },
        "contentType":{
          "shape":"String",
          "documentation":"<p>The MIME type of the response data. This indicates how to interpret the response data. Common values include application/json for JSON data.</p>",
          "location":"header",
          "locationName":"Content-Type"
        },
        "statusCode":{
          "shape":"HttpResponseCode",
          "documentation":"<p>The HTTP status code of the response. A status code of 200 indicates a successful operation. Other status codes indicate various error conditions.</p>",
          "location":"statusCode"
        },
        "stream":{
          "shape":"InvokeAgentRuntimeCommandStreamOutput",
          "documentation":"<p>The streaming output from the command execution. This stream contains events that provide real-time updates including standard output, standard error, and completion status.</p>"
        }
      },
      "documentation":"<p>Response for InvokeAgentRuntimeCommand operation.</p>",
      "payload":"stream"
    },
    "InvokeAgentRuntimeCommandStreamOutput":{
      "type":"structure",
      "members":{
        "chunk":{
          "shape":"ResponseChunk",
          "documentation":"<p>A response chunk containing command execution events such as content start, content delta, or content stop events.</p>"
        },
        "accessDeniedException":{
          "shape":"AccessDeniedException",
          "documentation":"<p>Exception events for error streaming.</p>"
        },
        "internalServerException":{"shape":"InternalServerException"},
        "resourceNotFoundException":{"shape":"ResourceNotFoundException"},
        "serviceQuotaExceededException":{"shape":"ServiceQuotaExceededException"},
        "throttlingException":{"shape":"ThrottlingException"},
        "validationException":{"shape":"ValidationException"},
        "runtimeClientError":{"shape":"RuntimeClientError"}
      },
      "documentation":"<p>The streaming output union for the <code>InvokeAgentRuntimeCommand</code> operation. This union delivers typed events: <code>contentStart</code> (first), <code>contentDelta</code> (middle), and <code>contentStop</code> (last).</p>",
      "eventstream":true
    },
    "InvokeAgentRuntimeRequest":{
      "type":"structure",
      "required":[
        "agentRuntimeArn",
        "payload"
      ],
      "members":{
        "contentType":{
          "shape":"MimeType",
          "documentation":"<p>The MIME type of the input data in the payload. This tells the agent runtime how to interpret the payload data. Common values include application/json for JSON data.</p>",
          "location":"header",
          "locationName":"Content-Type"
        },
        "accept":{
          "shape":"MimeType",
          "documentation":"<p>The desired MIME type for the response from the agent runtime. This tells the agent runtime what format to use for the response data. Common values include application/json for JSON data.</p>",
          "location":"header",
          "locationName":"Accept"
        },
        "mcpSessionId":{
          "shape":"StringType",
          "documentation":"<p>The identifier of the MCP session.</p>",
          "location":"header",
          "locationName":"Mcp-Session-Id"
        },
        "runtimeSessionId":{
          "shape":"SessionType",
          "documentation":"<p>The identifier of the runtime session.</p>",
          "idempotencyToken":true,
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
        },
        "mcpProtocolVersion":{
          "shape":"StringType",
          "documentation":"<p>The version of the MCP protocol being used.</p>",
          "location":"header",
          "locationName":"Mcp-Protocol-Version"
        },
        "runtimeUserId":{
          "shape":"StringType",
          "documentation":"<p>The identifier of the runtime user.</p>",
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-User-Id"
        },
        "traceId":{
          "shape":"InvokeAgentRuntimeRequestTraceIdString",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"InvokeAgentRuntimeRequestTraceParentString",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "traceState":{
          "shape":"InvokeAgentRuntimeRequestTraceStateString",
          "documentation":"<p>The trace state information for distributed tracing.</p>",
          "location":"header",
          "locationName":"tracestate"
        },
        "baggage":{
          "shape":"InvokeAgentRuntimeRequestBaggageString",
          "documentation":"<p>Additional context information for distributed tracing.</p>",
          "location":"header",
          "locationName":"baggage"
        },
        "agentRuntimeArn":{
          "shape":"String",
          "documentation":"<p>The identifier of the agent runtime to invoke. You can specify either the full Amazon Web Services Resource Name (ARN) or the agent ID. If you use the agent ID, you must also provide the <code>accountId</code> query parameter.</p>",
          "location":"uri",
          "locationName":"agentRuntimeArn"
        },
        "qualifier":{
          "shape":"String",
          "documentation":"<p>The qualifier to use for the agent runtime. This is an endpoint name that points to a specific version. If not specified, Amazon Bedrock AgentCore uses the default endpoint of the agent runtime.</p>",
          "location":"querystring",
          "locationName":"qualifier"
        },
        "accountId":{
          "shape":"InvokeAgentRuntimeRequestAccountIdString",
          "documentation":"<p>The identifier of the Amazon Web Services account for the agent runtime resource. This parameter is required when you specify an agent ID instead of the full ARN for <code>agentRuntimeArn</code>.</p>",
          "location":"querystring",
          "locationName":"accountId"
        },
        "payload":{
          "shape":"Body",
          "documentation":"<p>The input data to send to the agent runtime. The format of this data depends on the specific agent configuration and must match the specified content type. For most agents, this is a JSON object containing the user's request.</p>"
        }
      },
      "payload":"payload"
    },
    "InvokeAgentRuntimeRequestAccountIdString":{
      "type":"string",
      "pattern":"[0-9]{12}"
    },
    "InvokeAgentRuntimeRequestBaggageString":{
      "type":"string",
      "max":8192,
      "min":0
    },
    "InvokeAgentRuntimeRequestTraceIdString":{
      "type":"string",
      "max":128,
      "min":0
    },
    "InvokeAgentRuntimeRequestTraceParentString":{
      "type":"string",
      "max":128,
      "min":0
    },
    "InvokeAgentRuntimeRequestTraceStateString":{
      "type":"string",
      "max":512,
      "min":0
    },
    "InvokeAgentRuntimeResponse":{
      "type":"structure",
      "required":["contentType"],
      "members":{
        "runtimeSessionId":{
          "shape":"SessionId",
          "documentation":"<p>The identifier of the runtime session.</p>",
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
        },
        "mcpSessionId":{
          "shape":"SessionId",
          "documentation":"<p>The identifier of the MCP session.</p>",
          "location":"header",
          "locationName":"Mcp-Session-Id"
        },
        "mcpProtocolVersion":{
          "shape":"String",
          "documentation":"<p>The version of the MCP protocol being used.</p>",
          "location":"header",
          "locationName":"Mcp-Protocol-Version"
        },
        "traceId":{
          "shape":"String",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"String",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "traceState":{
          "shape":"String",
          "documentation":"<p>The trace state information for distributed tracing.</p>",
          "location":"header",
          "locationName":"tracestate"
        },
        "baggage":{
          "shape":"String",
          "documentation":"<p>Additional context information for distributed tracing.</p>",
          "location":"header",
          "locationName":"baggage"
        },
        "contentType":{
          "shape":"String",
          "documentation":"<p>The MIME type of the response data. This indicates how to interpret the response data. Common values include application/json for JSON data.</p>",
          "location":"header",
          "locationName":"Content-Type"
        },
        "response":{
          "shape":"ResponseStream",
          "documentation":"<p>The response data from the agent runtime. The format of this data depends on the specific agent configuration and the requested accept type. For most agents, this is a JSON object containing the agent's response to the user's request.</p>"
        },
        "statusCode":{
          "shape":"HttpResponseCode",
          "documentation":"<p>The HTTP status code of the response. A status code of 200 indicates a successful operation. Other status codes indicate various error conditions.</p>",
          "location":"statusCode"
        }
      },
      "payload":"response"
    },
    "InvokeBrowserRequest":{
      "type":"structure",
      "required":[
        "browserIdentifier",
        "sessionId",
        "action"
      ],
      "members":{
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the browser associated with the session. This must match the identifier used when creating the session with <code>StartBrowserSession</code>.</p>",
          "location":"uri",
          "locationName":"browserIdentifier"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The unique identifier of the browser session on which to perform the action. This must be an active session created with <code>StartBrowserSession</code>.</p>",
          "location":"header",
          "locationName":"x-amzn-browser-session-id"
        },
        "action":{
          "shape":"BrowserAction",
          "documentation":"<p>The browser action to perform. Exactly one member of the <code>BrowserAction</code> union must be set per request.</p>"
        }
      },
      "documentation":"<p>Request for the InvokeBrowser operation.</p>"
    },
    "InvokeBrowserResponse":{
      "type":"structure",
      "required":[
        "result",
        "sessionId"
      ],
      "members":{
        "result":{
          "shape":"BrowserActionResult",
          "documentation":"<p>The result of the browser action. The member set in the result corresponds to the action that was performed.</p>"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The unique identifier of the browser session on which the action was performed.</p>",
          "location":"header",
          "locationName":"x-amzn-browser-session-id"
        }
      },
      "documentation":"<p>Response for the InvokeBrowser operation.</p>"
    },
    "InvokeCodeInterpreterRequest":{
      "type":"structure",
      "required":[
        "codeInterpreterIdentifier",
        "name"
      ],
      "members":{
        "codeInterpreterIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the code interpreter associated with the session. This must match the identifier used when creating the session with <code>StartCodeInterpreterSession</code>.</p>",
          "location":"uri",
          "locationName":"codeInterpreterIdentifier"
        },
        "sessionId":{
          "shape":"CodeInterpreterSessionId",
          "documentation":"<p>The unique identifier of the code interpreter session to use. This must be an active session created with <code>StartCodeInterpreterSession</code>. If the session has expired or been stopped, the request will fail.</p>",
          "location":"header",
          "locationName":"x-amzn-code-interpreter-session-id"
        },
        "traceId":{
          "shape":"InvokeCodeInterpreterRequestTraceIdString",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"InvokeCodeInterpreterRequestTraceParentString",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "name":{
          "shape":"ToolName",
          "documentation":"<p>The name of the code interpreter to invoke.</p>"
        },
        "arguments":{
          "shape":"ToolArguments",
          "documentation":"<p>The arguments for the code interpreter. This includes the code to execute and any additional parameters such as the programming language, whether to clear the execution context, and other execution options. The structure of this parameter depends on the specific code interpreter being used.</p>"
        }
      }
    },
    "InvokeCodeInterpreterRequestTraceIdString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "InvokeCodeInterpreterRequestTraceParentString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "InvokeCodeInterpreterResponse":{
      "type":"structure",
      "required":["stream"],
      "members":{
        "sessionId":{
          "shape":"CodeInterpreterSessionId",
          "documentation":"<p>The identifier of the code interpreter session.</p>",
          "location":"header",
          "locationName":"x-amzn-code-interpreter-session-id"
        },
        "stream":{
          "shape":"CodeInterpreterStreamOutput",
          "documentation":"<p>The stream containing the results of the code execution. This includes output, errors, and execution status.</p>"
        }
      },
      "payload":"stream"
    },
    "InvokeHarnessRequest":{
      "type":"structure",
      "required":[
        "harnessArn",
        "runtimeSessionId",
        "messages"
      ],
      "members":{
        "harnessArn":{
          "shape":"HarnessArn",
          "documentation":"<p>The ARN of the harness to invoke.</p>",
          "location":"querystring",
          "locationName":"harnessArn"
        },
        "runtimeSessionId":{
          "shape":"SessionId",
          "documentation":"<p>The session ID for the invocation. Use the same session ID across requests to continue a conversation.</p>",
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
        },
        "messages":{
          "shape":"HarnessMessages",
          "documentation":"<p>The messages to send to the agent.</p>"
        },
        "model":{
          "shape":"HarnessModelConfiguration",
          "documentation":"<p>The model configuration to use for this invocation. If specified, overrides the harness default.</p>"
        },
        "systemPrompt":{
          "shape":"HarnessSystemPrompt",
          "documentation":"<p>The system prompt to use for this invocation. If specified, overrides the harness default.</p>"
        },
        "tools":{
          "shape":"HarnessTools",
          "documentation":"<p>The tools available to the agent for this invocation. If specified, overrides the harness default.</p>"
        },
        "skills":{
          "shape":"HarnessSkills",
          "documentation":"<p>The skills available to the agent for this invocation. If specified, overrides the harness default.</p>"
        },
        "allowedTools":{
          "shape":"HarnessAllowedTools",
          "documentation":"<p>The tools that the agent is allowed to use for this invocation. If specified, overrides the harness default.</p>"
        },
        "maxIterations":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of iterations the agent loop can execute. If specified, overrides the harness default.</p>"
        },
        "maxTokens":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of tokens the agent can generate per iteration. If specified, overrides the harness default.</p>"
        },
        "timeoutSeconds":{
          "shape":"Integer",
          "documentation":"<p>The maximum duration in seconds for the agent loop execution. If specified, overrides the harness default.</p>"
        },
        "actorId":{
          "shape":"String",
          "documentation":"<p>The actor ID for memory operations. Overrides the actor ID configured on the harness.</p>"
        }
      }
    },
    "InvokeHarnessResponse":{
      "type":"structure",
      "required":["stream"],
      "members":{
        "stream":{
          "shape":"InvokeHarnessStreamOutput",
          "documentation":"<p>The streaming output from the harness invocation.</p>"
        }
      },
      "payload":"stream"
    },
    "InvokeHarnessStreamOutput":{
      "type":"structure",
      "members":{
        "messageStart":{
          "shape":"HarnessMessageStartEvent",
          "documentation":"<p>Indicates the start of a new message from the agent.</p>"
        },
        "contentBlockStart":{
          "shape":"HarnessContentBlockStartEvent",
          "documentation":"<p>Indicates the start of a new content block.</p>"
        },
        "contentBlockDelta":{
          "shape":"HarnessContentBlockDeltaEvent",
          "documentation":"<p>A delta update to the current content block.</p>"
        },
        "contentBlockStop":{
          "shape":"HarnessContentBlockStopEvent",
          "documentation":"<p>Indicates the end of the current content block.</p>"
        },
        "messageStop":{
          "shape":"HarnessMessageStopEvent",
          "documentation":"<p>Indicates the end of the current message.</p>"
        },
        "metadata":{
          "shape":"HarnessMetadataEvent",
          "documentation":"<p>Token usage and latency metrics for the invocation.</p>"
        },
        "internalServerException":{"shape":"InternalServerException"},
        "validationException":{"shape":"ValidationException"},
        "runtimeClientError":{"shape":"RuntimeClientError"}
      },
      "documentation":"<p>The streaming events returned by a harness invocation.</p>",
      "eventstream":true
    },
    "KeyList":{
      "type":"list",
      "member":{"shape":"String"},
      "documentation":"<p>A list of key names for keyboard shortcuts.</p>",
      "max":5,
      "min":1
    },
    "KeyPressArguments":{
      "type":"structure",
      "required":["key"],
      "members":{
        "key":{
          "shape":"String",
          "documentation":"<p>The key name to press (for example, <code>enter</code>, <code>tab</code>, <code>escape</code>).</p>"
        },
        "presses":{
          "shape":"KeyPressArgumentsPressesInteger",
          "documentation":"<p>The number of times to press the key. Valid range: 1–100. Defaults to 1.</p>"
        }
      },
      "documentation":"<p>Arguments for a key press action.</p>"
    },
    "KeyPressArgumentsPressesInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "KeyPressResult":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"BrowserActionStatus",
          "documentation":"<p>The status of the action execution.</p>"
        },
        "error":{
          "shape":"String",
          "documentation":"<p>The error message. Present only when the action failed.</p>"
        }
      },
      "documentation":"<p>The result of a key press action.</p>"
    },
    "KeyShortcutArguments":{
      "type":"structure",
      "required":["keys"],
      "members":{
        "keys":{
          "shape":"KeyList",
          "documentation":"<p>The key combination to press (for example, <code>[\"ctrl\", \"s\"]</code>). Maximum 5 keys.</p>"
        }
      },
      "documentation":"<p>Arguments for a key shortcut action.</p>"
    },
    "KeyShortcutResult":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"BrowserActionStatus",
          "documentation":"<p>The status of the action execution.</p>"
        },
        "error":{
          "shape":"String",
          "documentation":"<p>The error message. Present only when the action failed.</p>"
        }
      },
      "documentation":"<p>The result of a key shortcut action.</p>"
    },
    "KeyTypeArguments":{
      "type":"structure",
      "required":["text"],
      "members":{
        "text":{
          "shape":"KeyTypeArgumentsTextString",
          "documentation":"<p>The text string to type. Maximum length: 10,000 characters.</p>"
        }
      },
      "documentation":"<p>Arguments for a key type action.</p>"
    },
    "KeyTypeArgumentsTextString":{
      "type":"string",
      "max":10000,
      "min":0
    },
    "KeyTypeResult":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"BrowserActionStatus",
          "documentation":"<p>The status of the action execution.</p>"
        },
        "error":{
          "shape":"String",
          "documentation":"<p>The error message. Present only when the action failed.</p>"
        }
      },
      "documentation":"<p>The result of a key type action.</p>"
    },
    "LanguageRuntime":{
      "type":"string",
      "enum":[
        "nodejs",
        "deno",
        "python"
      ]
    },
    "LeftExpression":{
      "type":"structure",
      "members":{
        "metadataKey":{
          "shape":"MetadataKey",
          "documentation":"<p>Key associated with the metadata in an event.</p>"
        }
      },
      "documentation":"<p>Left expression of the event metadata filter.</p>",
      "union":true
    },
    "ListABTestsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"ListABTestsRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in the response. If the total number of results is greater than this value, use the token returned in the response in the <code>nextToken</code> field when making another request to return the next batch of results.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If the total number of results is greater than the <code>maxResults</code> value provided in the request, enter the token returned in the <code>nextToken</code> field in the response in this field to return the next batch of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListABTestsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListABTestsResponse":{
      "type":"structure",
      "required":["abTests"],
      "members":{
        "abTests":{
          "shape":"ABTestSummaryList",
          "documentation":"<p>The list of A/B test summaries.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If the total number of results is greater than the <code>maxResults</code> value provided in the request, use this token when making another request in the <code>nextToken</code> field to return the next batch of results.</p>"
        }
      }
    },
    "ListActorsInput":{
      "type":"structure",
      "required":["memoryId"],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource for which to list actors.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 20.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>"
        }
      }
    },
    "ListActorsOutput":{
      "type":"structure",
      "required":["actorSummaries"],
      "members":{
        "actorSummaries":{
          "shape":"ActorSummaryList",
          "documentation":"<p>The list of actor summaries.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token to use in a subsequent request to get the next set of results. This value is null when there are no more results to return.</p>"
        }
      }
    },
    "ListBatchEvaluationsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"ListBatchEvaluationsRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in the response. If the total number of results is greater than this value, use the token returned in the response in the <code>nextToken</code> field when making another request to return the next batch of results.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If the total number of results is greater than the <code>maxResults</code> value provided in the request, enter the token returned in the <code>nextToken</code> field in the response in this field to return the next batch of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListBatchEvaluationsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListBatchEvaluationsResponse":{
      "type":"structure",
      "required":["batchEvaluations"],
      "members":{
        "batchEvaluations":{
          "shape":"BatchEvaluationSummaryList",
          "documentation":"<p>The list of batch evaluation summaries.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If the total number of results is greater than the <code>maxResults</code> value provided in the request, use this token when making another request in the <code>nextToken</code> field to return the next batch of results.</p>"
        }
      }
    },
    "ListBrowserSessionsRequest":{
      "type":"structure",
      "required":["browserIdentifier"],
      "members":{
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the browser to list sessions for. If specified, only sessions for this browser are returned. If not specified, sessions for all browsers are returned.</p>",
          "location":"uri",
          "locationName":"browserIdentifier"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 10. Valid values range from 1 to 100. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. If not specified, Amazon Bedrock AgentCore returns the first page of results.</p>"
        },
        "status":{
          "shape":"BrowserSessionStatus",
          "documentation":"<p>The status of the browser sessions to list. Valid values include ACTIVE, STOPPING, and STOPPED. If not specified, sessions with any status are returned.</p>"
        }
      }
    },
    "ListBrowserSessionsResponse":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"BrowserSessionSummaries",
          "documentation":"<p>The list of browser sessions that match the specified criteria.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use in a subsequent <code>ListBrowserSessions</code> request to get the next set of results.</p>"
        }
      }
    },
    "ListCodeInterpreterSessionsRequest":{
      "type":"structure",
      "required":["codeInterpreterIdentifier"],
      "members":{
        "codeInterpreterIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the code interpreter to list sessions for. If specified, only sessions for this code interpreter are returned. If not specified, sessions for all code interpreters are returned.</p>",
          "location":"uri",
          "locationName":"codeInterpreterIdentifier"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 10. Valid values range from 1 to 100. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. If not specified, Amazon Bedrock AgentCore returns the first page of results.</p>"
        },
        "status":{
          "shape":"CodeInterpreterSessionStatus",
          "documentation":"<p>The status of the code interpreter sessions to list. Valid values include ACTIVE, STOPPING, and STOPPED. If not specified, sessions with any status are returned.</p>"
        }
      }
    },
    "ListCodeInterpreterSessionsResponse":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"CodeInterpreterSessionSummaries",
          "documentation":"<p>The list of code interpreter sessions that match the specified criteria.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use in a subsequent <code>ListCodeInterpreterSessions</code> request to get the next set of results.</p>"
        }
      }
    },
    "ListEventsInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "sessionId",
        "actorId"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource for which to list events.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The identifier of the session for which to list events.</p>",
          "location":"uri",
          "locationName":"sessionId"
        },
        "actorId":{
          "shape":"ActorId",
          "documentation":"<p>The identifier of the actor for which to list events.</p>",
          "location":"uri",
          "locationName":"actorId"
        },
        "includePayloads":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to include event payloads in the response. Set to true to include payloads, or false to exclude them.</p>"
        },
        "filter":{
          "shape":"FilterInput",
          "documentation":"<p>Filter criteria to apply when listing events.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 20.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>"
        }
      }
    },
    "ListEventsOutput":{
      "type":"structure",
      "required":["events"],
      "members":{
        "events":{
          "shape":"EventList",
          "documentation":"<p>The list of events that match the specified criteria.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token to use in a subsequent request to get the next set of results. This value is null when there are no more results to return.</p>"
        }
      }
    },
    "ListMemoryExtractionJobsInput":{
      "type":"structure",
      "required":["memoryId"],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The unique identifier of the memory to list extraction jobs for.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "maxResults":{
          "shape":"ListMemoryExtractionJobsInputMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 20.</p>"
        },
        "filter":{
          "shape":"ExtractionJobFilterInput",
          "documentation":"<p>Filter criteria to apply when listing extraction jobs.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>"
        }
      }
    },
    "ListMemoryExtractionJobsInputMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":50,
      "min":1
    },
    "ListMemoryExtractionJobsOutput":{
      "type":"structure",
      "required":["jobs"],
      "members":{
        "jobs":{
          "shape":"ExtractionJobMetadataList",
          "documentation":"<p>List of extraction job metadata matching the specified criteria.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Token to retrieve the next page of results, if available.</p>"
        }
      }
    },
    "ListMemoryRecordsInput":{
      "type":"structure",
      "required":["memoryId"],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource for which to list memory records.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "namespace":{
          "shape":"Namespace",
          "documentation":"<p>The namespace prefix to filter memory records by. Returns all memory records in namespaces that start with the provided prefix.</p>"
        },
        "namespacePath":{
          "shape":"Namespace",
          "documentation":"<p>Use namespacePath for hierarchical retrievals. Return all memory records where namespace falls under the same parent hierarchy.</p>"
        },
        "memoryStrategyId":{
          "shape":"MemoryStrategyId",
          "documentation":"<p>The memory strategy identifier to filter memory records by. If specified, only memory records with this strategy ID are returned.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 20.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>"
        },
        "metadataFilters":{
          "shape":"MemoryMetadataFilterList",
          "documentation":"<p>A list of metadata filter expressions to scope the returned memory records.</p>"
        }
      }
    },
    "ListMemoryRecordsOutput":{
      "type":"structure",
      "required":["memoryRecordSummaries"],
      "members":{
        "memoryRecordSummaries":{
          "shape":"MemoryRecordSummaryList",
          "documentation":"<p>The list of memory record summaries that match the specified criteria.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token to use in a subsequent request to get the next set of results. This value is null when there are no more results to return.</p>"
        }
      }
    },
    "ListRecommendationsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"ListRecommendationsRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in the response. If the total number of results is greater than this value, use the token returned in the response in the <code>nextToken</code> field when making another request to return the next batch of results.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the total number of results is greater than the <code>maxResults</code> value provided in the request, enter the token returned in the <code>nextToken</code> field in the response in this field to return the next batch of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "statusFilter":{
          "shape":"RecommendationStatus",
          "documentation":"<p>Optional filter to return only recommendations with the specified status.</p>",
          "location":"querystring",
          "locationName":"status"
        }
      }
    },
    "ListRecommendationsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListRecommendationsResponse":{
      "type":"structure",
      "required":["recommendationSummaries"],
      "members":{
        "recommendationSummaries":{
          "shape":"RecommendationSummaryList",
          "documentation":"<p>The list of recommendation summaries.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the total number of results is greater than the <code>maxResults</code> value provided in the request, use this token when making another request in the <code>nextToken</code> field to return the next batch of results.</p>"
        }
      }
    },
    "ListSessionsInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "actorId"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource for which to list sessions.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "actorId":{
          "shape":"ActorId",
          "documentation":"<p>The identifier of the actor for which to list sessions. </p>",
          "location":"uri",
          "locationName":"actorId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 20.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>"
        },
        "filter":{
          "shape":"SessionFilter",
          "documentation":"<p>Filter criteria to apply when listing sessions.</p>"
        }
      }
    },
    "ListSessionsOutput":{
      "type":"structure",
      "required":["sessionSummaries"],
      "members":{
        "sessionSummaries":{
          "shape":"SessionSummaryList",
          "documentation":"<p>The list of session summaries that match the specified criteria.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token to use in a subsequent request to get the next set of results. This value is null when there are no more results to return.</p>"
        }
      }
    },
    "LiveViewStream":{
      "type":"structure",
      "members":{
        "streamEndpoint":{
          "shape":"BrowserStreamEndpoint",
          "documentation":"<p>The endpoint URL for the live view stream. This URL is used to establish a connection to receive visual updates from the browser session.</p>"
        }
      },
      "documentation":"<p>The configuration for a stream that provides a visual representation of a browser session in Amazon Bedrock AgentCore. This stream enables agents to observe the current state of the browser, including rendered web pages, visual elements, and the results of interactions.</p>"
    },
    "Long":{
      "type":"long",
      "box":true
    },
    "MaxLenString":{
      "type":"string",
      "max":100000000,
      "min":0
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "MaxTokens":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "McpDescriptor":{
      "type":"structure",
      "required":[
        "server",
        "tools"
      ],
      "members":{
        "server":{
          "shape":"ServerDefinition",
          "documentation":"<p> The MCP server definition that describes the server configuration.</p>"
        },
        "tools":{
          "shape":"ToolsDefinition",
          "documentation":"<p> The MCP tools definition that describes the available tools.</p>"
        }
      },
      "documentation":"<p> The MCP (Model Context Protocol) descriptor configuration for a registry record. Contains the server definition and tools definition.</p>"
    },
    "MemoryContent":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"MemoryContentTextString",
          "documentation":"<p>The text content of the memory record.</p>"
        }
      },
      "documentation":"<p>Contains the content of a memory record.</p>",
      "union":true
    },
    "MemoryContentTextString":{
      "type":"string",
      "max":16000,
      "min":1,
      "sensitive":true
    },
    "MemoryId":{
      "type":"string",
      "min":12,
      "pattern":"[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "MemoryMetadataFilterExpression":{
      "type":"structure",
      "required":[
        "left",
        "operator"
      ],
      "members":{
        "left":{
          "shape":"MemoryRecordLeftExpression",
          "documentation":"<p>The metadata key to evaluate.</p>"
        },
        "operator":{
          "shape":"MemoryRecordOperatorType",
          "documentation":"<p>The relationship between the metadata key and value to match when applying the metadata filter.</p>"
        },
        "right":{
          "shape":"MemoryRecordRightExpression",
          "documentation":"<p>The value to compare against. Required for all operators except EXISTS and NOT_EXISTS.</p>"
        }
      },
      "documentation":"<p>Filters to apply to metadata associated with a memory. Specify the metadata key and value in the <code>left</code> and <code>right</code> fields and use the <code>operator</code> field to define the relationship to match.</p>"
    },
    "MemoryMetadataFilterList":{
      "type":"list",
      "member":{"shape":"MemoryMetadataFilterExpression"},
      "max":5,
      "min":1
    },
    "MemoryRecord":{
      "type":"structure",
      "required":[
        "memoryRecordId",
        "content",
        "memoryStrategyId",
        "namespaces",
        "createdAt"
      ],
      "members":{
        "memoryRecordId":{
          "shape":"MemoryRecordId",
          "documentation":"<p>The unique identifier of the memory record.</p>"
        },
        "content":{
          "shape":"MemoryContent",
          "documentation":"<p>The content of the memory record.</p>"
        },
        "memoryStrategyId":{
          "shape":"MemoryStrategyId",
          "documentation":"<p>The identifier of the memory strategy associated with this record.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces associated with this memory record. Namespaces help organize and categorize memory records.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the memory record was created.</p>"
        },
        "metadata":{
          "shape":"MemoryRecordMetadataMap",
          "documentation":"<p>A map of metadata key-value pairs associated with a memory record.</p>"
        }
      },
      "documentation":"<p>Contains information about a memory record in an AgentCore Memory resource.</p>"
    },
    "MemoryRecordCreateInput":{
      "type":"structure",
      "required":[
        "requestIdentifier",
        "namespaces",
        "content",
        "timestamp"
      ],
      "members":{
        "requestIdentifier":{
          "shape":"RequestIdentifier",
          "documentation":"<p>A client-provided identifier for tracking this specific record creation request.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>A list of namespace identifiers that categorize or group the memory record.</p>"
        },
        "content":{
          "shape":"MemoryContent",
          "documentation":"<p>The content to be stored within the memory record.</p>"
        },
        "timestamp":{
          "shape":"Timestamp",
          "documentation":"<p>Time at which the memory record was created.</p>"
        },
        "memoryStrategyId":{
          "shape":"MemoryStrategyId",
          "documentation":"<p>The ID of the memory strategy that defines how this memory record is grouped.</p>"
        },
        "metadata":{
          "shape":"MemoryRecordMetadataMap",
          "documentation":"<p>Metadata key-value pairs to be stored with the memory record.</p>"
        }
      },
      "documentation":"<p>Input structure to create a new memory record.</p>"
    },
    "MemoryRecordDeleteInput":{
      "type":"structure",
      "required":["memoryRecordId"],
      "members":{
        "memoryRecordId":{
          "shape":"MemoryRecordId",
          "documentation":"<p>The unique ID of the memory record to be deleted.</p>"
        }
      },
      "documentation":"<p>Input structure to delete an existing memory record.</p>"
    },
    "MemoryRecordId":{
      "type":"string",
      "max":50,
      "min":40,
      "pattern":"mem-[a-zA-Z0-9-_]*"
    },
    "MemoryRecordLeftExpression":{
      "type":"structure",
      "members":{
        "metadataKey":{
          "shape":"MetadataKey",
          "documentation":"<p>The metadata key to filter on.</p>"
        }
      },
      "documentation":"<p>The left-hand side of a memory record metadata filter expression.</p>",
      "union":true
    },
    "MemoryRecordMetadataMap":{
      "type":"map",
      "key":{"shape":"MetadataKey"},
      "value":{"shape":"MemoryRecordMetadataValue"},
      "max":20,
      "min":1
    },
    "MemoryRecordMetadataValue":{
      "type":"structure",
      "members":{
        "stringValue":{
          "shape":"StringValue",
          "documentation":"<p>A string value.</p>"
        },
        "stringListValue":{
          "shape":"StringValueList",
          "documentation":"<p>A list of string values.</p>"
        },
        "numberValue":{
          "shape":"Double",
          "documentation":"<p>A numeric value.</p>"
        },
        "dateTimeValue":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp value in ISO 8601 UTC format.</p>"
        }
      },
      "documentation":"<p>The value of a memory record metadata entry.</p>",
      "union":true
    },
    "MemoryRecordOperatorType":{
      "type":"string",
      "enum":[
        "EQUALS_TO",
        "EXISTS",
        "NOT_EXISTS",
        "BEFORE",
        "AFTER",
        "CONTAINS",
        "GREATER_THAN",
        "GREATER_THAN_OR_EQUALS",
        "LESS_THAN",
        "LESS_THAN_OR_EQUALS"
      ]
    },
    "MemoryRecordOutput":{
      "type":"structure",
      "required":[
        "memoryRecordId",
        "status"
      ],
      "members":{
        "memoryRecordId":{
          "shape":"MemoryRecordId",
          "documentation":"<p>The unique ID associated to the memory record.</p>"
        },
        "status":{
          "shape":"MemoryRecordStatus",
          "documentation":"<p>The status of the memory record operation (e.g., SUCCEEDED, FAILED).</p>"
        },
        "requestIdentifier":{
          "shape":"RequestIdentifier",
          "documentation":"<p>The client-provided identifier that was used to track this record operation.</p>"
        },
        "errorCode":{
          "shape":"Integer",
          "documentation":"<p>The error code returned when the memory record operation fails.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>A human-readable error message describing why the memory record operation failed.</p>"
        }
      },
      "documentation":"<p>Output information returned after processing a memory record operation.</p>"
    },
    "MemoryRecordRightExpression":{
      "type":"structure",
      "members":{
        "metadataValue":{
          "shape":"MemoryRecordMetadataValue",
          "documentation":"<p>The metadata value to compare against.</p>"
        }
      },
      "documentation":"<p>The right-hand side of a memory record metadata filter expression.</p>",
      "union":true
    },
    "MemoryRecordStatus":{
      "type":"string",
      "enum":[
        "SUCCEEDED",
        "FAILED"
      ]
    },
    "MemoryRecordSummary":{
      "type":"structure",
      "required":[
        "memoryRecordId",
        "content",
        "memoryStrategyId",
        "namespaces",
        "createdAt"
      ],
      "members":{
        "memoryRecordId":{
          "shape":"MemoryRecordId",
          "documentation":"<p>The unique identifier of the memory record.</p>"
        },
        "content":{
          "shape":"MemoryContent",
          "documentation":"<p>The content of the memory record.</p>"
        },
        "memoryStrategyId":{
          "shape":"MemoryStrategyId",
          "documentation":"<p>The identifier of the memory strategy associated with this record.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces associated with this memory record.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the memory record was created.</p>"
        },
        "score":{
          "shape":"Double",
          "documentation":"<p>The relevance score of the memory record when returned as part of a search result. Higher values indicate greater relevance to the search query.</p>"
        },
        "metadata":{
          "shape":"MemoryRecordMetadataMap",
          "documentation":"<p>A map of metadata key-value pairs associated with a memory record.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a memory record.</p>"
    },
    "MemoryRecordSummaryList":{
      "type":"list",
      "member":{"shape":"MemoryRecordSummary"}
    },
    "MemoryRecordUpdateInput":{
      "type":"structure",
      "required":[
        "memoryRecordId",
        "timestamp"
      ],
      "members":{
        "memoryRecordId":{
          "shape":"MemoryRecordId",
          "documentation":"<p>The unique ID of the memory record to be updated.</p>"
        },
        "timestamp":{
          "shape":"Timestamp",
          "documentation":"<p>Time at which the memory record was updated</p>"
        },
        "content":{
          "shape":"MemoryContent",
          "documentation":"<p>The content to be stored within the memory record.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The updated list of namespace identifiers for categorizing the memory record.</p>"
        },
        "memoryStrategyId":{
          "shape":"MemoryStrategyId",
          "documentation":"<p>The updated ID of the memory strategy that defines how this memory record is grouped.</p>"
        },
        "metadata":{
          "shape":"MemoryRecordMetadataMap",
          "documentation":"<p>Metadata key-value pairs to be stored with the memory record.</p>"
        }
      },
      "documentation":"<p>Input structure to update an existing memory record.</p>"
    },
    "MemoryRecordsCreateInputList":{
      "type":"list",
      "member":{"shape":"MemoryRecordCreateInput"},
      "max":100,
      "min":0
    },
    "MemoryRecordsDeleteInputList":{
      "type":"list",
      "member":{"shape":"MemoryRecordDeleteInput"},
      "max":100,
      "min":0
    },
    "MemoryRecordsOutputList":{
      "type":"list",
      "member":{"shape":"MemoryRecordOutput"}
    },
    "MemoryRecordsUpdateInputList":{
      "type":"list",
      "member":{"shape":"MemoryRecordUpdateInput"},
      "max":100,
      "min":0
    },
    "MemoryStrategyId":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[a-zA-Z0-9][a-zA-Z0-9-_]*"
    },
    "MessageMetadata":{
      "type":"structure",
      "required":[
        "eventId",
        "messageIndex"
      ],
      "members":{
        "eventId":{
          "shape":"String",
          "documentation":"<p>The identifier of the event associated with this message.</p>"
        },
        "messageIndex":{
          "shape":"Integer",
          "documentation":"<p>The position of this message within that event’s ordered list of messages.</p>"
        }
      },
      "documentation":"<p>Metadata information associated with this message.</p>"
    },
    "MessagesList":{
      "type":"list",
      "member":{"shape":"MessageMetadata"}
    },
    "MetadataFilterExpression":{
      "type":"structure",
      "members":{},
      "documentation":"<p> A JSON document that represents a structured metadata filter expression. Supports field-level operators (<code>$eq</code>, <code>$ne</code>, <code>$in</code>) and logical operators (<code>$and</code>, <code>$or</code>) on filterable fields (<code>name</code>, <code>descriptorType</code>, <code>version</code>).</p>",
      "document":true
    },
    "MetadataKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "MetadataMap":{
      "type":"map",
      "key":{"shape":"MetadataKey"},
      "value":{"shape":"MetadataValue"},
      "max":15,
      "min":0
    },
    "MetadataValue":{
      "type":"structure",
      "members":{
        "stringValue":{
          "shape":"MetadataValueStringValueString",
          "documentation":"<p>Value associated with the <code>eventMetadata</code> key.</p>"
        }
      },
      "documentation":"<p>Value associated with the <code>eventMetadata</code> key.</p>",
      "union":true
    },
    "MetadataValueStringValueString":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "MimeType":{
      "type":"string",
      "max":256,
      "min":1
    },
    "ModelId":{"type":"string"},
    "MouseButton":{
      "type":"string",
      "documentation":"<p>The mouse button to use for a browser mouse action.</p>",
      "enum":[
        "LEFT",
        "RIGHT",
        "MIDDLE"
      ]
    },
    "MouseClickArguments":{
      "type":"structure",
      "required":[
        "x",
        "y"
      ],
      "members":{
        "x":{
          "shape":"Integer",
          "documentation":"<p>The X coordinate on screen where the click occurs.</p>"
        },
        "y":{
          "shape":"Integer",
          "documentation":"<p>The Y coordinate on screen where the click occurs.</p>"
        },
        "button":{
          "shape":"MouseButton",
          "documentation":"<p>The mouse button to use. Defaults to <code>LEFT</code>.</p>"
        },
        "clickCount":{
          "shape":"MouseClickArgumentsClickCountInteger",
          "documentation":"<p>The number of clicks to perform. Valid range: 1–10. Defaults to 1.</p>"
        }
      },
      "documentation":"<p>Arguments for a mouse click action.</p>"
    },
    "MouseClickArgumentsClickCountInteger":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":1
    },
    "MouseClickResult":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"BrowserActionStatus",
          "documentation":"<p>The status of the action execution.</p>"
        },
        "error":{
          "shape":"String",
          "documentation":"<p>The error message. Present only when the action failed.</p>"
        }
      },
      "documentation":"<p>The result of a mouse click action.</p>"
    },
    "MouseDragArguments":{
      "type":"structure",
      "required":[
        "endX",
        "endY",
        "startX",
        "startY"
      ],
      "members":{
        "endX":{
          "shape":"Integer",
          "documentation":"<p>The ending X coordinate for the drag.</p>"
        },
        "endY":{
          "shape":"Integer",
          "documentation":"<p>The ending Y coordinate for the drag.</p>"
        },
        "startX":{
          "shape":"Integer",
          "documentation":"<p>The starting X coordinate for the drag.</p>"
        },
        "startY":{
          "shape":"Integer",
          "documentation":"<p>The starting Y coordinate for the drag.</p>"
        },
        "button":{
          "shape":"MouseButton",
          "documentation":"<p>The mouse button to use for the drag. Defaults to <code>LEFT</code>.</p>"
        }
      },
      "documentation":"<p>Arguments for a mouse drag action.</p>"
    },
    "MouseDragResult":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"BrowserActionStatus",
          "documentation":"<p>The status of the action execution.</p>"
        },
        "error":{
          "shape":"String",
          "documentation":"<p>The error message. Present only when the action failed.</p>"
        }
      },
      "documentation":"<p>The result of a mouse drag action.</p>"
    },
    "MouseMoveArguments":{
      "type":"structure",
      "required":[
        "x",
        "y"
      ],
      "members":{
        "x":{
          "shape":"Integer",
          "documentation":"<p>The target X coordinate on screen.</p>"
        },
        "y":{
          "shape":"Integer",
          "documentation":"<p>The target Y coordinate on screen.</p>"
        }
      },
      "documentation":"<p>Arguments for a mouse move action.</p>"
    },
    "MouseMoveResult":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"BrowserActionStatus",
          "documentation":"<p>The status of the action execution.</p>"
        },
        "error":{
          "shape":"String",
          "documentation":"<p>The error message. Present only when the action failed.</p>"
        }
      },
      "documentation":"<p>The result of a mouse move action.</p>"
    },
    "MouseScrollArguments":{
      "type":"structure",
      "required":[
        "x",
        "y"
      ],
      "members":{
        "x":{
          "shape":"Integer",
          "documentation":"<p>The X coordinate on screen where the scroll occurs.</p>"
        },
        "y":{
          "shape":"Integer",
          "documentation":"<p>The Y coordinate on screen where the scroll occurs.</p>"
        },
        "deltaX":{
          "shape":"MouseScrollArgumentsDeltaXInteger",
          "documentation":"<p>The horizontal scroll delta. Valid range: -1000 to 1000.</p>"
        },
        "deltaY":{
          "shape":"MouseScrollArgumentsDeltaYInteger",
          "documentation":"<p>The vertical scroll delta. Valid range: -1000 to 1000. Negative values scroll down.</p>"
        }
      },
      "documentation":"<p>Arguments for a mouse scroll action.</p>"
    },
    "MouseScrollArgumentsDeltaXInteger":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":-1000
    },
    "MouseScrollArgumentsDeltaYInteger":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":-1000
    },
    "MouseScrollResult":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"BrowserActionStatus",
          "documentation":"<p>The status of the action execution.</p>"
        },
        "error":{
          "shape":"String",
          "documentation":"<p>The error message. Present only when the action failed.</p>"
        }
      },
      "documentation":"<p>The result of a mouse scroll action.</p>"
    },
    "Name":{
      "type":"string",
      "max":100,
      "min":1
    },
    "Namespace":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"[a-zA-Z0-9/*][a-zA-Z0-9-_/*]*(?::[a-zA-Z0-9-_/*]+)*[a-zA-Z0-9-_/*]*"
    },
    "NamespacesList":{
      "type":"list",
      "member":{"shape":"Namespace"},
      "max":1,
      "min":0
    },
    "NextToken":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\S*"
    },
    "NonBlankString":{
      "type":"string",
      "pattern":"[\\s\\S]+"
    },
    "OAuthCredentialProvider":{
      "type":"structure",
      "required":[
        "providerArn",
        "scopes"
      ],
      "members":{
        "providerArn":{
          "shape":"OAuthCredentialProviderArn",
          "documentation":"<p>The ARN of the OAuth 2.0 credential provider in AgentCore Identity.</p>"
        },
        "scopes":{
          "shape":"OAuthScopes",
          "documentation":"<p>The OAuth 2.0 scopes to request when obtaining an access token.</p>"
        },
        "customParameters":{
          "shape":"OAuthCustomParameters",
          "documentation":"<p>Additional custom parameters to include in the OAuth 2.0 token request.</p>"
        },
        "grantType":{
          "shape":"OAuthGrantType",
          "documentation":"<p>The OAuth 2.0 grant type to use for authentication.</p>"
        },
        "defaultReturnUrl":{
          "shape":"OAuthDefaultReturnUrl",
          "documentation":"<p>The default return URL for the OAuth 2.0 authorization flow.</p>"
        }
      },
      "documentation":"<p>Configuration for an OAuth 2.0 credential provider used to authenticate tool calls.</p>"
    },
    "OAuthCredentialProviderArn":{
      "type":"string",
      "pattern":"arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)"
    },
    "OAuthCustomParameters":{
      "type":"map",
      "key":{"shape":"OAuthCustomParametersKey"},
      "value":{"shape":"OAuthCustomParametersValue"},
      "max":10,
      "min":1
    },
    "OAuthCustomParametersKey":{
      "type":"string",
      "max":256,
      "min":1
    },
    "OAuthCustomParametersValue":{
      "type":"string",
      "max":2048,
      "min":1,
      "sensitive":true
    },
    "OAuthDefaultReturnUrl":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\w+:(\\/?\\/?)[^\\s]+"
    },
    "OAuthGrantType":{
      "type":"string",
      "enum":[
        "CLIENT_CREDENTIALS",
        "AUTHORIZATION_CODE"
      ]
    },
    "OAuthScope":{
      "type":"string",
      "max":64,
      "min":1
    },
    "OAuthScopes":{
      "type":"list",
      "member":{"shape":"OAuthScope"},
      "max":100,
      "min":0
    },
    "Oauth2FlowType":{
      "type":"string",
      "enum":[
        "USER_FEDERATION",
        "M2M",
        "ON_BEHALF_OF_TOKEN_EXCHANGE"
      ]
    },
    "OnlineEvaluationConfigArn":{
      "type":"string",
      "pattern":"arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:online-evaluation-config\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "OperatorType":{
      "type":"string",
      "enum":[
        "EQUALS_TO",
        "EXISTS",
        "NOT_EXISTS"
      ]
    },
    "OutputConfig":{
      "type":"structure",
      "members":{
        "cloudWatchConfig":{
          "shape":"CloudWatchOutputConfig",
          "documentation":"<p>The CloudWatch Logs configuration for writing evaluation results.</p>"
        }
      },
      "documentation":"<p>Output destination configuration</p>",
      "union":true
    },
    "PaginationToken":{"type":"string"},
    "PathPattern":{
      "type":"string",
      "max":500,
      "min":1
    },
    "PayloadType":{
      "type":"structure",
      "members":{
        "conversational":{
          "shape":"Conversational",
          "documentation":"<p>The conversational content of the payload.</p>"
        },
        "blob":{
          "shape":"Document",
          "documentation":"<p>The binary content of the payload.</p>"
        }
      },
      "documentation":"<p>Contains the payload content for an event.</p>",
      "union":true
    },
    "PayloadTypeList":{
      "type":"list",
      "member":{"shape":"PayloadType"},
      "max":100,
      "min":0
    },
    "PerVariantOnlineEvaluationConfig":{
      "type":"structure",
      "required":[
        "name",
        "onlineEvaluationConfigArn"
      ],
      "members":{
        "name":{
          "shape":"VariantName",
          "documentation":"<p>The name of the variant this evaluation configuration applies to.</p>"
        },
        "onlineEvaluationConfigArn":{
          "shape":"OnlineEvaluationConfigArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the online evaluation configuration for this variant.</p>"
        }
      },
      "documentation":"<p>An online evaluation configuration associated with a specific A/B test variant.</p>"
    },
    "PerVariantOnlineEvaluationConfigList":{
      "type":"list",
      "member":{"shape":"PerVariantOnlineEvaluationConfig"},
      "max":2,
      "min":2
    },
    "ProgrammingLanguage":{
      "type":"string",
      "enum":[
        "python",
        "javascript",
        "typescript"
      ]
    },
    "Proxy":{
      "type":"structure",
      "members":{
        "externalProxy":{
          "shape":"ExternalProxy",
          "documentation":"<p>Configuration for an external customer-managed proxy server.</p>"
        }
      },
      "documentation":"<p>Union type representing different proxy configurations. Currently supports external customer-managed proxies.</p>",
      "union":true
    },
    "ProxyBypass":{
      "type":"structure",
      "members":{
        "domainPatterns":{
          "shape":"DomainPatterns",
          "documentation":"<p>Array of domain patterns that should bypass the proxy. Supports <code>.amazonaws.com</code> for subdomain matching or <code>amazonaws.com</code> for exact domain matching. Requests to these domains connect directly without using any proxy. Maximum 253 characters per pattern.</p>"
        }
      },
      "documentation":"<p>Configuration for domains that should bypass all proxies and connect directly to the internet. These bypass rules take precedence over all proxy routing rules.</p>"
    },
    "ProxyConfiguration":{
      "type":"structure",
      "required":["proxies"],
      "members":{
        "proxies":{
          "shape":"ProxyConfigurationProxiesList",
          "documentation":"<p>An array of 1-5 proxy server configurations for domain-based routing. Each proxy can specify which domains it handles via <code>domainPatterns</code>, enabling flexible routing of different traffic through different proxies based on destination domain.</p>"
        },
        "bypass":{
          "shape":"ProxyBypass",
          "documentation":"<p>Optional configuration for domains that should bypass all proxies and connect directly to their destination, like the internet. Takes precedence over all proxy routing rules.</p>"
        }
      },
      "documentation":"<p>Configuration for routing browser traffic through customer-managed proxy servers. Supports 1-5 proxy servers for domain-based routing and proxy bypass rules.</p>"
    },
    "ProxyConfigurationProxiesList":{
      "type":"list",
      "member":{"shape":"Proxy"},
      "max":5,
      "min":1
    },
    "ProxyCredentials":{
      "type":"structure",
      "members":{
        "basicAuth":{
          "shape":"BasicAuth",
          "documentation":"<p>HTTP Basic Authentication credentials (username and password) stored in Amazon Web Services Secrets Manager.</p>"
        }
      },
      "documentation":"<p>Union type representing different proxy authentication methods. Currently supports HTTP Basic Authentication (username and password).</p>",
      "union":true
    },
    "RecommendationArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:recommendation/[0-9a-zA-Z_-]{1,48}-[0-9A-Z]{10}"
    },
    "RecommendationConfig":{
      "type":"structure",
      "members":{
        "systemPromptRecommendationConfig":{
          "shape":"SystemPromptRecommendationConfig",
          "documentation":"<p>The configuration for a system prompt recommendation.</p>"
        },
        "toolDescriptionRecommendationConfig":{
          "shape":"ToolDescriptionRecommendationConfig",
          "documentation":"<p>The configuration for a tool description recommendation.</p>"
        }
      },
      "documentation":"<p>The configuration for a recommendation, varying by recommendation type.</p>",
      "union":true
    },
    "RecommendationDescription":{
      "type":"string",
      "max":4096,
      "min":0
    },
    "RecommendationErrorCode":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "RecommendationErrorMessage":{
      "type":"string",
      "max":2048,
      "min":0
    },
    "RecommendationEvaluationConfig":{
      "type":"structure",
      "required":["evaluators"],
      "members":{
        "evaluators":{
          "shape":"RecommendationEvaluationConfigEvaluatorsList",
          "documentation":"<p>The list of evaluators to use for assessing recommendation quality.</p>"
        }
      },
      "documentation":"<p>The evaluation configuration for assessing recommendation quality.</p>"
    },
    "RecommendationEvaluationConfigEvaluatorsList":{
      "type":"list",
      "member":{"shape":"RecommendationEvaluatorReference"},
      "max":1,
      "min":1
    },
    "RecommendationEvaluatorReference":{
      "type":"structure",
      "required":["evaluatorArn"],
      "members":{
        "evaluatorArn":{
          "shape":"EvaluatorArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluator.</p>"
        }
      },
      "documentation":"<p>A reference to an evaluator used for recommendation assessment.</p>"
    },
    "RecommendationId":{
      "type":"string",
      "pattern":"[0-9a-zA-Z_-]{1,48}-[0-9A-Z]{10}"
    },
    "RecommendationName":{
      "type":"string",
      "max":100,
      "min":0,
      "pattern":"[a-zA-Z][a-zA-Z0-9_-]{0,47}"
    },
    "RecommendationResult":{
      "type":"structure",
      "members":{
        "systemPromptRecommendationResult":{
          "shape":"SystemPromptRecommendationResult",
          "documentation":"<p>The result of a system prompt recommendation.</p>"
        },
        "toolDescriptionRecommendationResult":{
          "shape":"ToolDescriptionRecommendationResult",
          "documentation":"<p>The result of a tool description recommendation.</p>"
        }
      },
      "documentation":"<p>The result of a recommendation, containing the optimized output.</p>",
      "union":true
    },
    "RecommendationResultConfigurationBundle":{
      "type":"structure",
      "required":[
        "bundleArn",
        "versionId"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle.</p>"
        },
        "versionId":{
          "shape":"ConfigurationBundleVersionId",
          "documentation":"<p>The version identifier of the configuration bundle containing the recommendation.</p>"
        }
      },
      "documentation":"<p>A configuration bundle reference in a recommendation result.</p>"
    },
    "RecommendationStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "IN_PROGRESS",
        "COMPLETED",
        "FAILED",
        "DELETING"
      ]
    },
    "RecommendationSummary":{
      "type":"structure",
      "required":[
        "recommendationId",
        "recommendationArn",
        "name",
        "type",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "recommendationId":{
          "shape":"RecommendationId",
          "documentation":"<p>The unique identifier of the recommendation.</p>"
        },
        "recommendationArn":{
          "shape":"RecommendationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the recommendation.</p>"
        },
        "name":{
          "shape":"RecommendationName",
          "documentation":"<p>The name of the recommendation.</p>"
        },
        "description":{
          "shape":"RecommendationDescription",
          "documentation":"<p>The description of the recommendation.</p>"
        },
        "type":{
          "shape":"RecommendationType",
          "documentation":"<p>The type of recommendation.</p>"
        },
        "status":{
          "shape":"RecommendationStatus",
          "documentation":"<p>The current status of the recommendation.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the recommendation was created.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the recommendation was last updated.</p>"
        }
      },
      "documentation":"<p>Summary information about a recommendation.</p>"
    },
    "RecommendationSummaryList":{
      "type":"list",
      "member":{"shape":"RecommendationSummary"}
    },
    "RecommendationToolName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9_\\-\\.]+"
    },
    "RecommendationType":{
      "type":"string",
      "enum":[
        "SYSTEM_PROMPT_RECOMMENDATION",
        "TOOL_DESCRIPTION_RECOMMENDATION"
      ]
    },
    "RegistryArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}"
    },
    "RegistryIdentifier":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/)?[a-zA-Z0-9]{12,16}"
    },
    "RegistryRecordArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}/record/[a-zA-Z0-9]{12}"
    },
    "RegistryRecordId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"[a-zA-Z0-9]{12}"
    },
    "RegistryRecordName":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[a-zA-Z0-9][a-zA-Z0-9_\\-\\.\\/]*"
    },
    "RegistryRecordStatus":{
      "type":"string",
      "documentation":"<p> The status of a registry record in its lifecycle.</p>",
      "enum":[
        "DRAFT",
        "PENDING_APPROVAL",
        "APPROVED",
        "REJECTED",
        "DEPRECATED"
      ]
    },
    "RegistryRecordSummary":{
      "type":"structure",
      "required":[
        "registryArn",
        "recordArn",
        "recordId",
        "name",
        "descriptorType",
        "descriptors",
        "version",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the registry that this record belongs to.</p>"
        },
        "recordArn":{
          "shape":"RegistryRecordArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the registry record.</p>"
        },
        "recordId":{
          "shape":"RegistryRecordId",
          "documentation":"<p> The unique identifier of the registry record.</p>"
        },
        "name":{
          "shape":"RegistryRecordName",
          "documentation":"<p> The name of the registry record.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p> A description of the registry record.</p>"
        },
        "descriptorType":{
          "shape":"DescriptorType",
          "documentation":"<p> The type of descriptor associated with this registry record.</p>"
        },
        "descriptors":{
          "shape":"Descriptors",
          "documentation":"<p> The descriptor configurations for this registry record.</p>"
        },
        "version":{
          "shape":"RegistryRecordVersion",
          "documentation":"<p> The version of the registry record.</p>"
        },
        "status":{
          "shape":"RegistryRecordStatus",
          "documentation":"<p> The current status of the registry record.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p> The date and time when the registry record was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p> The date and time when the registry record was last updated.</p>"
        }
      },
      "documentation":"<p> Summary information about a registry record.</p>"
    },
    "RegistryRecordSummaryList":{
      "type":"list",
      "member":{"shape":"RegistryRecordSummary"}
    },
    "RegistryRecordVersion":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[a-zA-Z0-9.-]+"
    },
    "RequestIdentifier":{
      "type":"string",
      "max":80,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "RequestUri":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"urn:ietf:params:oauth:request_uri:[a-zA-Z0-9-._~]+"
    },
    "ResourceContent":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"ResourceContentType",
          "documentation":"<p>The type of resource content.</p>"
        },
        "uri":{
          "shape":"String",
          "documentation":"<p>The URI of the resource content.</p>"
        },
        "mimeType":{
          "shape":"String",
          "documentation":"<p>The MIME type of the resource content.</p>"
        },
        "text":{
          "shape":"String",
          "documentation":"<p>The text resource content.</p>"
        },
        "blob":{
          "shape":"Blob",
          "documentation":"<p>The binary resource content.</p>"
        }
      },
      "documentation":"<p>Contains information about resource content.</p>"
    },
    "ResourceContentType":{
      "type":"string",
      "enum":[
        "text",
        "blob"
      ]
    },
    "ResourceLocation":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"S3Location",
          "documentation":"<p>The Amazon S3 location of the resource. Use this when the resource is stored in an Amazon S3 bucket.</p>"
        }
      },
      "documentation":"<p>The location of the browser extension.</p>",
      "union":true
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The exception that occurs when the specified resource does not exist. This can happen when using an invalid identifier or when trying to access a resource that has been deleted.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceOauth2ReturnUrlType":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\w+:(\\/?\\/?)[^\\s]+"
    },
    "ResourceType":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "ResourcesListType":{
      "type":"list",
      "member":{"shape":"ResourceType"}
    },
    "ResponseChunk":{
      "type":"structure",
      "members":{
        "contentStart":{
          "shape":"ContentStartEvent",
          "documentation":"<p>An event indicating the start of content streaming from the command execution. This is the first chunk received.</p>"
        },
        "contentDelta":{
          "shape":"ContentDeltaEvent",
          "documentation":"<p>An event containing incremental output (stdout or stderr) from the command execution. These are the middle chunks.</p>"
        },
        "contentStop":{
          "shape":"ContentStopEvent",
          "documentation":"<p>An event indicating the completion of the command execution, including the exit code and final status. This is the last chunk received.</p>"
        }
      },
      "documentation":"<p>A structure representing a response chunk that contains exactly one of the possible event types: <code>contentStart</code>, <code>contentDelta</code>, or <code>contentStop</code>.</p>",
      "event":true
    },
    "ResponseStream":{
      "type":"blob",
      "sensitive":true,
      "streaming":true
    },
    "RetrieveMemoryRecordsInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "searchCriteria"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The identifier of the AgentCore Memory resource from which to retrieve memory records.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "namespace":{
          "shape":"Namespace",
          "documentation":"<p>The namespace prefix to filter memory records by. Searches for memory records in namespaces that start with the provided prefix.</p>"
        },
        "namespacePath":{
          "shape":"Namespace",
          "documentation":"<p>Use namespacePath for hierarchical retrievals. Return all memory records where namespace falls under the same parent hierarchy.</p>"
        },
        "searchCriteria":{
          "shape":"SearchCriteria",
          "documentation":"<p>The search criteria to use for finding relevant memory records. This includes the search query, memory strategy ID, and other search parameters.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 20.</p>"
        }
      }
    },
    "RetrieveMemoryRecordsOutput":{
      "type":"structure",
      "required":["memoryRecordSummaries"],
      "members":{
        "memoryRecordSummaries":{
          "shape":"MemoryRecordSummaryList",
          "documentation":"<p>The list of memory record summaries that match the search criteria, ordered by relevance.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token to use in a subsequent request to get the next set of results. This value is null when there are no more results to return.</p>"
        }
      }
    },
    "RetryableConflictException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The exception that occurs when there is a retryable conflict performing an operation. This is a temporary condition that may resolve itself with retries. We recommend implementing exponential backoff retry logic in your application.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":false}
    },
    "RightExpression":{
      "type":"structure",
      "members":{
        "metadataValue":{
          "shape":"MetadataValue",
          "documentation":"<p>Value associated with the key in <code>eventMetadata</code>.</p>"
        }
      },
      "documentation":"<p>Right expression of the <code>eventMetadata</code>filter.</p>",
      "union":true
    },
    "Role":{
      "type":"string",
      "enum":[
        "ASSISTANT",
        "USER",
        "TOOL",
        "OTHER"
      ]
    },
    "RoleArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+"
    },
    "RuntimeClientError":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The exception that occurs when there is an error in the runtime client. This can happen due to network issues, invalid configuration, or other client-side problems. Check the error message for specific details about the error.</p>",
      "error":{
        "httpStatusCode":424,
        "senderFault":true
      },
      "exception":true
    },
    "S3Location":{
      "type":"structure",
      "required":[
        "bucket",
        "prefix"
      ],
      "members":{
        "bucket":{
          "shape":"S3LocationBucketString",
          "documentation":"<p>The name of the Amazon S3 bucket where the resource is stored.</p>"
        },
        "prefix":{
          "shape":"S3LocationPrefixString",
          "documentation":"<p>The name of the Amazon S3 prefix/key where the resource is stored.</p>"
        },
        "versionId":{
          "shape":"S3LocationVersionIdString",
          "documentation":"<p>The name of the Amazon S3 version ID where the resource is stored (Optional).</p>"
        }
      },
      "documentation":"<p>The Amazon S3 location configuration of a resource.</p>"
    },
    "S3LocationBucketString":{
      "type":"string",
      "max":63,
      "min":3,
      "pattern":"[a-z0-9][a-z0-9.-]*[a-z0-9]"
    },
    "S3LocationPrefixString":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "S3LocationVersionIdString":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "SaveBrowserSessionProfileRequest":{
      "type":"structure",
      "required":[
        "profileIdentifier",
        "browserIdentifier",
        "sessionId"
      ],
      "members":{
        "traceId":{
          "shape":"SaveBrowserSessionProfileRequestTraceIdString",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"SaveBrowserSessionProfileRequestTraceParentString",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "profileIdentifier":{
          "shape":"BrowserProfileId",
          "documentation":"<p>The unique identifier for the browser profile. This identifier is used to reference the profile when starting new browser sessions. The identifier must follow the pattern of an alphanumeric name (up to 48 characters) followed by a hyphen and a 10-character alphanumeric suffix.</p>",
          "location":"uri",
          "locationName":"profileIdentifier"
        },
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the browser associated with the session from which to save the profile.</p>"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The unique identifier of the browser session from which to save the profile. The session must be active when saving the profile.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock AgentCore ignores the request, but does not return an error.</p>",
          "idempotencyToken":true
        }
      }
    },
    "SaveBrowserSessionProfileRequestTraceIdString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "SaveBrowserSessionProfileRequestTraceParentString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "SaveBrowserSessionProfileResponse":{
      "type":"structure",
      "required":[
        "profileIdentifier",
        "browserIdentifier",
        "sessionId",
        "lastUpdatedAt"
      ],
      "members":{
        "profileIdentifier":{
          "shape":"BrowserProfileId",
          "documentation":"<p>The unique identifier of the saved browser profile.</p>"
        },
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the browser associated with the session from which the profile was saved.</p>"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The unique identifier of the browser session from which the profile was saved.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser profile was last updated. This value is in ISO 8601 format.</p>"
        }
      }
    },
    "SchemaVersion":{
      "type":"string",
      "max":255,
      "min":1
    },
    "ScopeType":{
      "type":"string",
      "max":128,
      "min":1
    },
    "ScopesListType":{
      "type":"list",
      "member":{"shape":"ScopeType"}
    },
    "ScreenshotArguments":{
      "type":"structure",
      "members":{
        "format":{
          "shape":"ScreenshotFormat",
          "documentation":"<p>The image format for the screenshot. Defaults to <code>PNG</code>.</p>"
        }
      },
      "documentation":"<p>Arguments for a screenshot action.</p>"
    },
    "ScreenshotFormat":{
      "type":"string",
      "documentation":"<p>The image format for a browser screenshot.</p>",
      "enum":["PNG"]
    },
    "ScreenshotResult":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"BrowserActionStatus",
          "documentation":"<p>The status of the action execution.</p>"
        },
        "error":{
          "shape":"String",
          "documentation":"<p>The error message. Present only when the action failed.</p>"
        },
        "data":{
          "shape":"Blob",
          "documentation":"<p>The base64-encoded image data. Present only when the action succeeded.</p>"
        }
      },
      "documentation":"<p>The result of a screenshot action.</p>"
    },
    "SearchCriteria":{
      "type":"structure",
      "required":["searchQuery"],
      "members":{
        "searchQuery":{
          "shape":"SearchCriteriaSearchQueryString",
          "documentation":"<p>The search query to use for finding relevant memory records.</p>"
        },
        "memoryStrategyId":{
          "shape":"MemoryStrategyId",
          "documentation":"<p>The memory strategy identifier to filter memory records by.</p>"
        },
        "topK":{
          "shape":"SearchCriteriaTopKInteger",
          "documentation":"<p>The maximum number of top-scoring memory records to return. This value is used for semantic search ranking.</p>"
        },
        "metadataFilters":{
          "shape":"MemoryMetadataFilterList",
          "documentation":"<p>Filters to apply to metadata associated with a memory.</p>"
        }
      },
      "documentation":"<p>Contains search criteria for retrieving memory records.</p>"
    },
    "SearchCriteriaSearchQueryString":{
      "type":"string",
      "max":10000,
      "min":1,
      "sensitive":true
    },
    "SearchCriteriaTopKInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "SearchRegistryRecordsRequest":{
      "type":"structure",
      "required":[
        "searchQuery",
        "registryIds"
      ],
      "members":{
        "searchQuery":{
          "shape":"SearchRegistryRecordsRequestSearchQueryString",
          "documentation":"<p> The search query to find matching registry records.</p>"
        },
        "registryIds":{
          "shape":"SearchRegistryRecordsRequestRegistryIdsList",
          "documentation":"<p> The list of registry identifiers to search within. Currently, you can specify exactly one registry identifier. You can provide either the full Amazon Web Services Resource Name (ARN) or the 12-character alphanumeric registry ID.</p>"
        },
        "maxResults":{
          "shape":"SearchRegistryRecordsRequestMaxResultsInteger",
          "documentation":"<p> The maximum number of records to return in a single call. Valid values are 1 through 20. The default value is 10.</p>"
        },
        "filters":{
          "shape":"MetadataFilterExpression",
          "documentation":"<p> A metadata filter expression to narrow search results. Uses structured JSON operators including field-level operators (<code>$eq</code>, <code>$ne</code>, <code>$in</code>) and logical operators (<code>$and</code>, <code>$or</code>) on filterable fields (<code>name</code>, <code>descriptorType</code>, <code>version</code>). For example, to filter by descriptor type: <code>{\"descriptorType\": {\"$eq\": \"MCP\"}}</code>. To combine filters: <code>{\"$and\": [{\"descriptorType\": {\"$eq\": \"MCP\"}}, {\"name\": {\"$eq\": \"my-tool\"}}]}</code>.</p>"
        }
      }
    },
    "SearchRegistryRecordsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":20,
      "min":1
    },
    "SearchRegistryRecordsRequestRegistryIdsList":{
      "type":"list",
      "member":{"shape":"RegistryIdentifier"},
      "max":1,
      "min":1
    },
    "SearchRegistryRecordsRequestSearchQueryString":{
      "type":"string",
      "max":256,
      "min":1
    },
    "SearchRegistryRecordsResponse":{
      "type":"structure",
      "required":["registryRecords"],
      "members":{
        "registryRecords":{
          "shape":"RegistryRecordSummaryList",
          "documentation":"<p> The list of registry records that match the search query, ordered by relevance.</p>"
        }
      }
    },
    "SecretArn":{
      "type":"string",
      "pattern":"arn:aws(-[a-z-]+)?:secretsmanager:[a-z0-9-]+:[0-9]{12}:secret:[a-zA-Z0-9/_+=.@-]+"
    },
    "SecretsManagerLocation":{
      "type":"structure",
      "required":["secretArn"],
      "members":{
        "secretArn":{
          "shape":"SecretArn",
          "documentation":"<p>The ARN of the Amazon Web Services Secrets Manager secret containing the certificate.</p>"
        }
      },
      "documentation":"<p>The Amazon Web Services Secrets Manager location configuration.</p>"
    },
    "SensitiveJson":{
      "type":"structure",
      "members":{},
      "document":true,
      "sensitive":true
    },
    "SensitiveText":{
      "type":"string",
      "min":1,
      "sensitive":true
    },
    "ServerDefinition":{
      "type":"structure",
      "members":{
        "schemaVersion":{
          "shape":"SchemaVersion",
          "documentation":"<p> The schema version of the MCP server configuration. The schema version identifies the format of the server definition content.</p>"
        },
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p> The inline content of the server definition.</p>"
        }
      },
      "documentation":"<p> The MCP server definition with a schema version and inline content. The <code>schemaVersion</code> identifies the version of the MCP server configuration schema.</p>"
    },
    "ServiceException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The service encountered an internal error. Try your request again later.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "ServiceName":{
      "type":"string",
      "pattern":"[a-zA-Z0-9._-]+"
    },
    "ServiceNameList":{
      "type":"list",
      "member":{"shape":"ServiceName"},
      "max":1,
      "min":1
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The exception that occurs when the request would cause a service quota to be exceeded. Review your service quotas and either reduce your request rate or request a quota increase.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "SessionFilter":{
      "type":"structure",
      "members":{
        "eventFilter":{
          "shape":"EventFilterCondition",
          "documentation":"<p>The event filter condition to apply. Use this to filter sessions based on event presence.</p>"
        }
      },
      "documentation":"<p>Contains filter criteria for listing sessions.</p>"
    },
    "SessionFilterConfig":{
      "type":"structure",
      "members":{
        "startTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The start time of the time range. Only sessions with activity at or after this timestamp are included.</p>"
        },
        "endTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The end time of the time range. Only sessions with activity before this timestamp are included.</p>"
        }
      },
      "documentation":"<p>A time range filter for selecting sessions. Specifies the start and end times to narrow down which sessions are included.</p>"
    },
    "SessionId":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[a-zA-Z0-9][a-zA-Z0-9-_]*"
    },
    "SessionMetadataList":{
      "type":"list",
      "member":{"shape":"SessionMetadataShape"},
      "max":500,
      "min":0
    },
    "SessionMetadataShape":{
      "type":"structure",
      "required":["sessionId"],
      "members":{
        "sessionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the session this metadata applies to.</p>"
        },
        "testScenarioId":{
          "shape":"String",
          "documentation":"<p>An optional test scenario identifier for categorizing and tracking evaluation results.</p>"
        },
        "groundTruth":{
          "shape":"GroundTruthSource",
          "documentation":"<p>The ground truth data for this session, including expected responses and assertions.</p>"
        },
        "metadata":{
          "shape":"StringMap",
          "documentation":"<p>Additional key-value metadata associated with this session.</p>"
        }
      },
      "documentation":"<p>Metadata for a specific session in a batch evaluation, including ground truth data and test scenario identifiers.</p>"
    },
    "SessionStatus":{
      "type":"string",
      "enum":[
        "IN_PROGRESS",
        "FAILED"
      ]
    },
    "SessionSummary":{
      "type":"structure",
      "required":[
        "sessionId",
        "actorId",
        "createdAt"
      ],
      "members":{
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The unique identifier of the session.</p>"
        },
        "actorId":{
          "shape":"ActorId",
          "documentation":"<p>The identifier of the actor associated with the session.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the session was created.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a session in an AgentCore Memory resource.</p>"
    },
    "SessionSummaryList":{
      "type":"list",
      "member":{"shape":"SessionSummary"}
    },
    "SessionType":{
      "type":"string",
      "max":256,
      "min":33
    },
    "SkillDefinition":{
      "type":"structure",
      "members":{
        "schemaVersion":{
          "shape":"SchemaVersion",
          "documentation":"<p> The schema version of the skill definition. If you don't specify a version, the service detects it automatically.</p>"
        },
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p> The inline content of the skill definition.</p>"
        }
      },
      "documentation":"<p> The structured skill definition with a schema version and inline content.</p>"
    },
    "SkillMdDefinition":{
      "type":"structure",
      "members":{
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p> The inline markdown content of the skill definition.</p>"
        }
      },
      "documentation":"<p> The skill markdown definition for agent skills descriptors.</p>"
    },
    "Span":{
      "type":"structure",
      "members":{},
      "document":true
    },
    "SpanContext":{
      "type":"structure",
      "required":["sessionId"],
      "members":{
        "sessionId":{
          "shape":"String",
          "documentation":"<p> The unique identifier of the session containing this span. Sessions represent complete conversation flows and are detected using configurable <code>SessionTimeoutMinutes</code> (default 15 minutes). </p>"
        },
        "traceId":{
          "shape":"String",
          "documentation":"<p> The unique identifier of the trace containing this span. Traces represent individual request-response interactions within a session and group related spans together. </p>"
        },
        "spanId":{
          "shape":"String",
          "documentation":"<p> The unique identifier of the specific span being referenced. Spans represent individual operations like tool calls, model invocations, or other discrete actions within the agent's execution. </p>"
        }
      },
      "documentation":"<p> The contextual information that uniquely identifies a span within the distributed tracing system. Contains session, trace, and span identifiers used to correlate evaluation results with specific agent execution points. </p>"
    },
    "SpanId":{
      "type":"string",
      "max":16,
      "min":16
    },
    "SpanIds":{
      "type":"list",
      "member":{"shape":"SpanId"},
      "max":10,
      "min":1
    },
    "Spans":{
      "type":"list",
      "member":{"shape":"Span"},
      "max":1000,
      "min":1,
      "sensitive":true
    },
    "StartBatchEvaluationRequest":{
      "type":"structure",
      "required":[
        "batchEvaluationName",
        "dataSourceConfig"
      ],
      "members":{
        "batchEvaluationName":{
          "shape":"BatchEvaluationName",
          "documentation":"<p>The name of the batch evaluation. Must be unique within your account.</p>"
        },
        "evaluators":{
          "shape":"StartBatchEvaluationRequestEvaluatorsList",
          "documentation":"<p>The list of evaluators to apply during the batch evaluation. Can include both built-in evaluators and custom evaluators. Maximum of 10 evaluators.</p>"
        },
        "dataSourceConfig":{
          "shape":"DataSourceConfig",
          "documentation":"<p>The data source configuration that specifies where to pull agent session traces from for evaluation.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, the service ignores the request, but does not return an error.</p>",
          "idempotencyToken":true
        },
        "evaluationMetadata":{
          "shape":"EvaluationMetadata",
          "documentation":"<p>Optional metadata for the evaluation, including session-specific ground truth data and test scenario identifiers.</p>"
        },
        "description":{
          "shape":"BatchEvaluationDescription",
          "documentation":"<p>The description of the batch evaluation.</p>"
        }
      }
    },
    "StartBatchEvaluationRequestEvaluatorsList":{
      "type":"list",
      "member":{"shape":"Evaluator"},
      "max":10,
      "min":0
    },
    "StartBatchEvaluationResponse":{
      "type":"structure",
      "required":[
        "batchEvaluationId",
        "batchEvaluationArn",
        "batchEvaluationName",
        "status",
        "createdAt"
      ],
      "members":{
        "batchEvaluationId":{
          "shape":"BatchEvaluationId",
          "documentation":"<p>The unique identifier of the created batch evaluation.</p>"
        },
        "batchEvaluationArn":{
          "shape":"BatchEvaluationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created batch evaluation.</p>"
        },
        "batchEvaluationName":{
          "shape":"BatchEvaluationName",
          "documentation":"<p>The name of the batch evaluation.</p>"
        },
        "evaluators":{
          "shape":"EvaluatorList",
          "documentation":"<p>The list of evaluators applied during the batch evaluation.</p>"
        },
        "status":{
          "shape":"BatchEvaluationStatus",
          "documentation":"<p>The status of the batch evaluation.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the batch evaluation was created.</p>"
        },
        "outputConfig":{
          "shape":"OutputConfig",
          "documentation":"<p>The output configuration specifying where evaluation results are written.</p>"
        },
        "description":{
          "shape":"BatchEvaluationDescription",
          "documentation":"<p>The description of the batch evaluation.</p>"
        }
      }
    },
    "StartBrowserSessionRequest":{
      "type":"structure",
      "required":["browserIdentifier"],
      "members":{
        "traceId":{
          "shape":"StartBrowserSessionRequestTraceIdString",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"StartBrowserSessionRequestTraceParentString",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the browser to use for this session. This identifier specifies which browser environment to initialize for the session.</p>",
          "location":"uri",
          "locationName":"browserIdentifier"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the browser session. This name helps you identify and manage the session. The name does not need to be unique.</p>"
        },
        "sessionTimeoutSeconds":{
          "shape":"BrowserSessionTimeout",
          "documentation":"<p>The duration in seconds (time-to-live) after which the session automatically terminates, regardless of ongoing activity. Defaults to 3600 seconds (1 hour). Recommended minimum: 60 seconds. Maximum allowed: 28,800 seconds (8 hours).</p>"
        },
        "viewPort":{
          "shape":"ViewPort",
          "documentation":"<p>The dimensions of the browser viewport for this session. This determines the visible area of the web content and affects how web pages are rendered. If not specified, Amazon Bedrock AgentCore uses a default viewport size.</p>"
        },
        "extensions":{
          "shape":"BrowserExtensions",
          "documentation":"<p>A list of browser extensions to load into the browser session.</p>"
        },
        "profileConfiguration":{
          "shape":"BrowserProfileConfiguration",
          "documentation":"<p>The browser profile configuration to use for this session. A browser profile contains persistent data such as cookies and local storage that can be reused across multiple browser sessions. If specified, the session initializes with the profile's stored data, enabling continuity for tasks that require authentication or personalized settings.</p>"
        },
        "proxyConfiguration":{
          "shape":"ProxyConfiguration",
          "documentation":"<p>Optional proxy configuration for routing browser traffic through customer-specified proxy servers. When provided, enables HTTP Basic authentication via Amazon Web Services Secrets Manager and domain-based routing rules. Requires <code>secretsmanager:GetSecretValue</code> IAM permission for the specified secret ARNs.</p>"
        },
        "enterprisePolicies":{
          "shape":"BrowserEnterprisePolicies",
          "documentation":"<p>A list of files containing enterprise policies for the browser.</p>"
        },
        "certificates":{
          "shape":"Certificates",
          "documentation":"<p>A list of certificates to install in the browser session.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock AgentCore ignores the request, but does not return an error. This parameter helps prevent the creation of duplicate sessions if there are temporary network issues.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StartBrowserSessionRequestTraceIdString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "StartBrowserSessionRequestTraceParentString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "StartBrowserSessionResponse":{
      "type":"structure",
      "required":[
        "browserIdentifier",
        "sessionId",
        "createdAt"
      ],
      "members":{
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the browser.</p>"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The unique identifier of the created browser session.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser session was created.</p>"
        },
        "streams":{
          "shape":"BrowserSessionStream",
          "documentation":"<p>The streams associated with this browser session. These include the automation stream and live view stream.</p>"
        }
      }
    },
    "StartCodeInterpreterSessionRequest":{
      "type":"structure",
      "required":["codeInterpreterIdentifier"],
      "members":{
        "traceId":{
          "shape":"StartCodeInterpreterSessionRequestTraceIdString",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"StartCodeInterpreterSessionRequestTraceParentString",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "codeInterpreterIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the code interpreter to use for this session. This identifier specifies which code interpreter environment to initialize for the session.</p>",
          "location":"uri",
          "locationName":"codeInterpreterIdentifier"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the code interpreter session. This name helps you identify and manage the session. The name does not need to be unique.</p>"
        },
        "sessionTimeoutSeconds":{
          "shape":"CodeInterpreterSessionTimeout",
          "documentation":"<p>The duration in seconds (time-to-live) after which the session automatically terminates, regardless of ongoing activity. Defaults to 900 seconds (15 minutes). Recommended minimum: 60 seconds. Maximum allowed: 28,800 seconds (8 hours).</p>"
        },
        "certificates":{
          "shape":"Certificates",
          "documentation":"<p>A list of certificates to install in the code interpreter session.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock AgentCore ignores the request, but does not return an error. This parameter helps prevent the creation of duplicate sessions if there are temporary network issues.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StartCodeInterpreterSessionRequestTraceIdString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "StartCodeInterpreterSessionRequestTraceParentString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "StartCodeInterpreterSessionResponse":{
      "type":"structure",
      "required":[
        "codeInterpreterIdentifier",
        "sessionId",
        "createdAt"
      ],
      "members":{
        "codeInterpreterIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the code interpreter.</p>"
        },
        "sessionId":{
          "shape":"CodeInterpreterSessionId",
          "documentation":"<p>The unique identifier of the created code interpreter session.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The time at which the code interpreter session was created.</p>"
        }
      }
    },
    "StartMemoryExtractionJobInput":{
      "type":"structure",
      "required":[
        "memoryId",
        "extractionJob"
      ],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The unique identifier of the memory for which to start extraction jobs.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "extractionJob":{
          "shape":"ExtractionJob",
          "documentation":"<p>Extraction job to start in this operation.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotent processing of the request.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StartMemoryExtractionJobOutput":{
      "type":"structure",
      "required":["jobId"],
      "members":{
        "jobId":{
          "shape":"String",
          "documentation":"<p>Extraction Job ID that was attempted to start.</p>"
        }
      }
    },
    "StartRecommendationRequest":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "recommendationConfig"
      ],
      "members":{
        "name":{
          "shape":"RecommendationName",
          "documentation":"<p>The name of the recommendation. Must be unique within your account.</p>"
        },
        "description":{
          "shape":"RecommendationDescription",
          "documentation":"<p>The description of the recommendation.</p>"
        },
        "type":{
          "shape":"RecommendationType",
          "documentation":"<p>The type of recommendation to generate. Valid values are <code>SYSTEM_PROMPT_RECOMMENDATION</code> for system prompt optimization or <code>TOOL_DESCRIPTION_RECOMMENDATION</code> for tool description optimization.</p>"
        },
        "recommendationConfig":{
          "shape":"RecommendationConfig",
          "documentation":"<p>The configuration for the recommendation, including the input to optimize, agent traces to analyze, and evaluation settings.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, the service ignores the request, but does not return an error.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StartRecommendationResponse":{
      "type":"structure",
      "required":[
        "recommendationId",
        "recommendationArn",
        "name",
        "type",
        "recommendationConfig",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "recommendationId":{
          "shape":"RecommendationId",
          "documentation":"<p>The unique identifier of the created recommendation.</p>"
        },
        "recommendationArn":{
          "shape":"RecommendationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created recommendation.</p>"
        },
        "name":{
          "shape":"RecommendationName",
          "documentation":"<p>The name of the recommendation.</p>"
        },
        "description":{
          "shape":"RecommendationDescription",
          "documentation":"<p>The description of the recommendation.</p>"
        },
        "type":{
          "shape":"RecommendationType",
          "documentation":"<p>The type of recommendation.</p>"
        },
        "recommendationConfig":{
          "shape":"RecommendationConfig",
          "documentation":"<p>The configuration for the recommendation.</p>"
        },
        "status":{
          "shape":"RecommendationStatus",
          "documentation":"<p>The status of the recommendation.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the recommendation was created.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the recommendation was last updated.</p>"
        }
      }
    },
    "State":{
      "type":"string",
      "max":4096,
      "min":1,
      "sensitive":true
    },
    "StopBatchEvaluationRequest":{
      "type":"structure",
      "required":["batchEvaluationId"],
      "members":{
        "batchEvaluationId":{
          "shape":"BatchEvaluationId",
          "documentation":"<p>The unique identifier of the batch evaluation to stop.</p>",
          "location":"uri",
          "locationName":"batchEvaluationId"
        }
      }
    },
    "StopBatchEvaluationResponse":{
      "type":"structure",
      "required":[
        "batchEvaluationId",
        "batchEvaluationArn",
        "status"
      ],
      "members":{
        "batchEvaluationId":{
          "shape":"BatchEvaluationId",
          "documentation":"<p>The unique identifier of the stopped batch evaluation.</p>"
        },
        "batchEvaluationArn":{
          "shape":"BatchEvaluationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the stopped batch evaluation.</p>"
        },
        "status":{
          "shape":"BatchEvaluationStatus",
          "documentation":"<p>The status of the batch evaluation after the stop request.</p>"
        },
        "description":{
          "shape":"BatchEvaluationDescription",
          "documentation":"<p>The description of the batch evaluation.</p>"
        }
      }
    },
    "StopBrowserSessionRequest":{
      "type":"structure",
      "required":[
        "browserIdentifier",
        "sessionId"
      ],
      "members":{
        "traceId":{
          "shape":"StopBrowserSessionRequestTraceIdString",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"StopBrowserSessionRequestTraceParentString",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the browser associated with the session.</p>",
          "location":"uri",
          "locationName":"browserIdentifier"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The unique identifier of the browser session to stop.</p>",
          "location":"querystring",
          "locationName":"sessionId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock AgentCore ignores the request, but does not return an error.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StopBrowserSessionRequestTraceIdString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "StopBrowserSessionRequestTraceParentString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "StopBrowserSessionResponse":{
      "type":"structure",
      "required":[
        "browserIdentifier",
        "sessionId",
        "lastUpdatedAt"
      ],
      "members":{
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the browser.</p>"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The identifier of the browser session.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The time at which the browser session was last updated.</p>"
        }
      }
    },
    "StopCodeInterpreterSessionRequest":{
      "type":"structure",
      "required":[
        "codeInterpreterIdentifier",
        "sessionId"
      ],
      "members":{
        "traceId":{
          "shape":"StopCodeInterpreterSessionRequestTraceIdString",
          "documentation":"<p>The trace identifier for request tracking.</p>",
          "location":"header",
          "locationName":"X-Amzn-Trace-Id"
        },
        "traceParent":{
          "shape":"StopCodeInterpreterSessionRequestTraceParentString",
          "documentation":"<p>The parent trace information for distributed tracing.</p>",
          "location":"header",
          "locationName":"traceparent"
        },
        "codeInterpreterIdentifier":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the code interpreter associated with the session.</p>",
          "location":"uri",
          "locationName":"codeInterpreterIdentifier"
        },
        "sessionId":{
          "shape":"CodeInterpreterSessionId",
          "documentation":"<p>The unique identifier of the code interpreter session to stop.</p>",
          "location":"querystring",
          "locationName":"sessionId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock AgentCore ignores the request, but does not return an error.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StopCodeInterpreterSessionRequestTraceIdString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "StopCodeInterpreterSessionRequestTraceParentString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "StopCodeInterpreterSessionResponse":{
      "type":"structure",
      "required":[
        "codeInterpreterIdentifier",
        "sessionId",
        "lastUpdatedAt"
      ],
      "members":{
        "codeInterpreterIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the code interpreter.</p>"
        },
        "sessionId":{
          "shape":"CodeInterpreterSessionId",
          "documentation":"<p>The identifier of the code interpreter session.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the code interpreter session was last updated.</p>"
        }
      }
    },
    "StopRuntimeSessionRequest":{
      "type":"structure",
      "required":[
        "runtimeSessionId",
        "agentRuntimeArn"
      ],
      "members":{
        "runtimeSessionId":{
          "shape":"SessionType",
          "documentation":"<p>The ID of the session that you want to stop.</p>",
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
        },
        "agentRuntimeArn":{
          "shape":"String",
          "documentation":"<p>The ARN of the agent that contains the session that you want to stop.</p>",
          "location":"uri",
          "locationName":"agentRuntimeArn"
        },
        "qualifier":{
          "shape":"String",
          "documentation":"<p>Optional qualifier to specify an agent alias, such as <code>prod</code>code&gt; or <code>dev</code>. If you don't provide a value, the DEFAULT alias is used. </p>",
          "location":"querystring",
          "locationName":"qualifier"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>Idempotent token used to identify the request. If you use the same token with multiple requests, the same response is returned. Use ClientToken to prevent the same request from being processed more than once.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StopRuntimeSessionResponse":{
      "type":"structure",
      "members":{
        "runtimeSessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session that you requested to stop.</p>",
          "location":"header",
          "locationName":"X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
        },
        "statusCode":{
          "shape":"HttpResponseCode",
          "documentation":"<p>The status code of the request to stop the session.</p>",
          "location":"statusCode"
        }
      }
    },
    "StreamUpdate":{
      "type":"structure",
      "members":{
        "automationStreamUpdate":{
          "shape":"AutomationStreamUpdate",
          "documentation":"<p>The update to an automation stream.</p>"
        }
      },
      "documentation":"<p>Contains information about an update to a stream.</p>",
      "union":true
    },
    "String":{"type":"string"},
    "StringList":{
      "type":"list",
      "member":{"shape":"MaxLenString"}
    },
    "StringListMemberValue":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "StringMap":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"String"}
    },
    "StringType":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "StringValue":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "StringValueList":{
      "type":"list",
      "member":{"shape":"StringListMemberValue"},
      "max":5,
      "min":1
    },
    "SyntheticTimestamp_date_time":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "SystemPromptConfig":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"SystemPromptText",
          "documentation":"<p>The system prompt text provided inline.</p>"
        },
        "configurationBundle":{
          "shape":"SystemPromptConfigurationBundle",
          "documentation":"<p>The system prompt sourced from a configuration bundle version.</p>"
        }
      },
      "documentation":"<p>The system prompt input, either as inline text or from a configuration bundle.</p>",
      "union":true
    },
    "SystemPromptConfigurationBundle":{
      "type":"structure",
      "required":[
        "bundleArn",
        "versionId",
        "systemPromptJsonPath"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle.</p>"
        },
        "versionId":{
          "shape":"ConfigurationBundleVersionId",
          "documentation":"<p>The version identifier of the configuration bundle.</p>"
        },
        "systemPromptJsonPath":{
          "shape":"String",
          "documentation":"<p>The JSON path within the configuration bundle that contains the system prompt.</p>"
        }
      },
      "documentation":"<p>A system prompt sourced from a configuration bundle version.</p>"
    },
    "SystemPromptRecommendationConfig":{
      "type":"structure",
      "required":[
        "systemPrompt",
        "agentTraces",
        "evaluationConfig"
      ],
      "members":{
        "systemPrompt":{
          "shape":"SystemPromptConfig",
          "documentation":"<p>The current system prompt to optimize.</p>"
        },
        "agentTraces":{
          "shape":"AgentTracesConfig",
          "documentation":"<p>The agent traces to analyze for generating recommendations.</p>"
        },
        "evaluationConfig":{
          "shape":"RecommendationEvaluationConfig",
          "documentation":"<p>The evaluation configuration specifying which evaluator to use for assessing recommendation quality.</p>"
        }
      },
      "documentation":"<p>Configuration for generating system prompt optimization recommendations.</p>"
    },
    "SystemPromptRecommendationResult":{
      "type":"structure",
      "members":{
        "recommendedSystemPrompt":{
          "shape":"SystemPromptText",
          "documentation":"<p>The optimized system prompt text generated by the recommendation.</p>"
        },
        "configurationBundle":{
          "shape":"RecommendationResultConfigurationBundle",
          "documentation":"<p>The configuration bundle containing the recommended system prompt, if the input was sourced from a configuration bundle.</p>"
        },
        "errorCode":{
          "shape":"RecommendationErrorCode",
          "documentation":"<p>The error code if the recommendation failed.</p>"
        },
        "errorMessage":{
          "shape":"RecommendationErrorMessage",
          "documentation":"<p>The error message if the recommendation failed.</p>"
        }
      },
      "documentation":"<p>The result of a system prompt recommendation, containing the optimized prompt.</p>"
    },
    "SystemPromptText":{
      "type":"string",
      "max":20000,
      "min":1,
      "sensitive":true
    },
    "TargetName":{
      "type":"string",
      "max":100,
      "min":1
    },
    "TargetPathList":{
      "type":"list",
      "member":{"shape":"PathPattern"},
      "max":1,
      "min":1
    },
    "TargetRef":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"TargetName",
          "documentation":"<p>The name of the gateway target.</p>"
        }
      },
      "documentation":"<p>A reference to a gateway target.</p>"
    },
    "TaskStatus":{
      "type":"string",
      "enum":[
        "submitted",
        "working",
        "completed",
        "canceled",
        "failed"
      ]
    },
    "Temperature":{
      "type":"float",
      "box":true,
      "max":2.0,
      "min":0.0
    },
    "ThrottledException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request was denied due to request throttling. Reduce the frequency of requests and try again.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The exception that occurs when the request was denied due to request throttling. This happens when you exceed the allowed request rate for an operation. Reduce the frequency of requests or implement exponential backoff retry logic in your application.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "Timestamp":{"type":"timestamp"},
    "TokenUsage":{
      "type":"structure",
      "members":{
        "inputTokens":{
          "shape":"Integer",
          "documentation":"<p> The number of tokens consumed for input processing during the evaluation. Includes tokens from the evaluation prompt, agent traces, and any additional context provided to the evaluator model. </p>"
        },
        "outputTokens":{
          "shape":"Integer",
          "documentation":"<p> The number of tokens generated by the evaluator model in its response. Includes tokens for the score, explanation, and any additional output produced during the evaluation process. </p>"
        },
        "totalTokens":{
          "shape":"Integer",
          "documentation":"<p> The total number of tokens consumed during the evaluation, calculated as the sum of input and output tokens. Used for cost calculation and rate limiting within the service limits. </p>"
        }
      },
      "documentation":"<p> The token consumption statistics for language model operations during evaluation. Provides detailed breakdown of input, output, and total tokens used for cost tracking and performance monitoring. </p>"
    },
    "ToolArguments":{
      "type":"structure",
      "members":{
        "code":{
          "shape":"MaxLenString",
          "documentation":"<p>The code to execute in a code interpreter session. This is the source code in the specified programming language that will be executed by the code interpreter.</p>"
        },
        "language":{
          "shape":"ProgrammingLanguage",
          "documentation":"<p>The programming language of the code to execute. This tells the code interpreter which language runtime to use for execution.</p>"
        },
        "clearContext":{
          "shape":"Boolean",
          "documentation":"<p>Whether to clear the context for the tool.</p>"
        },
        "command":{
          "shape":"MaxLenString",
          "documentation":"<p>The command to execute with the tool.</p>"
        },
        "path":{
          "shape":"MaxLenString",
          "documentation":"<p>The path for the tool operation.</p>"
        },
        "paths":{
          "shape":"StringList",
          "documentation":"<p>The paths for the tool operation.</p>"
        },
        "content":{
          "shape":"InputContentBlockList",
          "documentation":"<p>The content for the tool operation.</p>"
        },
        "directoryPath":{
          "shape":"MaxLenString",
          "documentation":"<p>The directory path for the tool operation.</p>"
        },
        "taskId":{
          "shape":"MaxLenString",
          "documentation":"<p>The identifier of the task for the tool operation.</p>"
        },
        "runtime":{
          "shape":"LanguageRuntime",
          "documentation":"<p>The runtime environment to use for code execution. If not specified, defaults to <code>deno</code> for JavaScript and TypeScript.</p>"
        }
      },
      "documentation":"<p>The collection of arguments that specify the operation to perform and its parameters when invoking a tool in Amazon Bedrock AgentCore. Different tools require different arguments, and this structure provides a flexible way to pass the appropriate arguments to each tool type.</p>"
    },
    "ToolDescriptionConfig":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"ToolDescriptionText",
          "documentation":"<p>The tool description as inline text.</p>"
        }
      },
      "documentation":"<p>The tool description content.</p>",
      "union":true
    },
    "ToolDescriptionConfigurationBundle":{
      "type":"structure",
      "required":[
        "bundleArn",
        "versionId",
        "tools"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle.</p>"
        },
        "versionId":{
          "shape":"ConfigurationBundleVersionId",
          "documentation":"<p>The version identifier of the configuration bundle.</p>"
        },
        "tools":{
          "shape":"ConfigurationBundleToolEntryList",
          "documentation":"<p>The list of tool entries mapping tool names to their JSON paths within the bundle.</p>"
        }
      },
      "documentation":"<p>Tool descriptions sourced from a configuration bundle version.</p>"
    },
    "ToolDescriptionInput":{
      "type":"structure",
      "required":[
        "toolName",
        "toolDescription"
      ],
      "members":{
        "toolName":{
          "shape":"RecommendationToolName",
          "documentation":"<p>The name of the tool.</p>"
        },
        "toolDescription":{
          "shape":"ToolDescriptionConfig",
          "documentation":"<p>The current description of the tool to optimize.</p>"
        }
      },
      "documentation":"<p>A tool description input containing the tool name and its current description.</p>"
    },
    "ToolDescriptionList":{
      "type":"list",
      "member":{"shape":"ToolDescriptionInput"}
    },
    "ToolDescriptionOutput":{
      "type":"structure",
      "required":["toolName"],
      "members":{
        "toolName":{
          "shape":"RecommendationToolName",
          "documentation":"<p>The name of the tool.</p>"
        },
        "recommendedToolDescription":{
          "shape":"ToolDescriptionText",
          "documentation":"<p>The optimized tool description text generated by the recommendation.</p>"
        }
      },
      "documentation":"<p>The output for a single tool description recommendation.</p>"
    },
    "ToolDescriptionRecommendationConfig":{
      "type":"structure",
      "required":[
        "toolDescription",
        "agentTraces"
      ],
      "members":{
        "toolDescription":{
          "shape":"ToolDescriptionSource",
          "documentation":"<p>The current tool descriptions to optimize.</p>"
        },
        "agentTraces":{
          "shape":"AgentTracesConfig",
          "documentation":"<p>The agent traces to analyze for generating tool description recommendations.</p>"
        }
      },
      "documentation":"<p>Configuration for generating tool description optimization recommendations.</p>"
    },
    "ToolDescriptionRecommendationResult":{
      "type":"structure",
      "members":{
        "tools":{
          "shape":"ToolDescriptionResultList",
          "documentation":"<p>The list of tools with their recommended descriptions.</p>"
        },
        "configurationBundle":{
          "shape":"RecommendationResultConfigurationBundle",
          "documentation":"<p>The configuration bundle containing the recommended tool descriptions, if the input was sourced from a configuration bundle.</p>"
        },
        "errorCode":{
          "shape":"RecommendationErrorCode",
          "documentation":"<p>The error code if the recommendation failed.</p>"
        },
        "errorMessage":{
          "shape":"RecommendationErrorMessage",
          "documentation":"<p>The error message if the recommendation failed.</p>"
        }
      },
      "documentation":"<p>The result of a tool description recommendation, containing optimized descriptions.</p>"
    },
    "ToolDescriptionResultList":{
      "type":"list",
      "member":{"shape":"ToolDescriptionOutput"}
    },
    "ToolDescriptionSource":{
      "type":"structure",
      "members":{
        "toolDescriptionText":{
          "shape":"ToolDescriptionTextInput",
          "documentation":"<p>Tool descriptions provided as inline text.</p>"
        },
        "configurationBundle":{
          "shape":"ToolDescriptionConfigurationBundle",
          "documentation":"<p>Tool descriptions sourced from a configuration bundle version.</p>"
        }
      },
      "documentation":"<p>The source of tool descriptions, either inline text or from a configuration bundle.</p>",
      "union":true
    },
    "ToolDescriptionText":{
      "type":"string",
      "max":20000,
      "min":1,
      "sensitive":true
    },
    "ToolDescriptionTextInput":{
      "type":"structure",
      "required":["tools"],
      "members":{
        "tools":{
          "shape":"ToolDescriptionList",
          "documentation":"<p>The list of tool descriptions to optimize.</p>"
        }
      },
      "documentation":"<p>Inline tool description input containing a list of tools.</p>"
    },
    "ToolName":{
      "type":"string",
      "enum":[
        "executeCode",
        "executeCommand",
        "readFiles",
        "listFiles",
        "removeFiles",
        "writeFiles",
        "startCommandExecution",
        "getTask",
        "stopTask"
      ]
    },
    "ToolResultStructuredContent":{
      "type":"structure",
      "members":{
        "taskId":{
          "shape":"String",
          "documentation":"<p>The identifier of the task that produced the result.</p>"
        },
        "taskStatus":{
          "shape":"TaskStatus",
          "documentation":"<p>The status of the task that produced the result.</p>"
        },
        "stdout":{
          "shape":"String",
          "documentation":"<p>The standard output from the tool execution.</p>"
        },
        "stderr":{
          "shape":"String",
          "documentation":"<p>The standard error output from the tool execution.</p>"
        },
        "exitCode":{
          "shape":"Integer",
          "documentation":"<p>The exit code from the tool execution.</p>"
        },
        "executionTime":{
          "shape":"Double",
          "documentation":"<p>The execution time of the tool operation in milliseconds.</p>"
        }
      },
      "documentation":"<p>Contains structured content from a tool result.</p>"
    },
    "ToolsDefinition":{
      "type":"structure",
      "members":{
        "protocolVersion":{
          "shape":"SchemaVersion",
          "documentation":"<p> The MCP protocol version that the tools conform to. This differs from the <code>schemaVersion</code> field in the server definition, which identifies the server configuration schema format.</p>"
        },
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p> The inline content of the tools definition.</p>"
        }
      },
      "documentation":"<p> The MCP tools definition with a protocol version and inline content. The <code>protocolVersion</code> identifies the MCP protocol version that the tools conform to. This differs from <code>schemaVersion</code> in the server definition, which identifies the server configuration schema format.</p>"
    },
    "TopK":{
      "type":"integer",
      "box":true,
      "max":500,
      "min":0
    },
    "TopP":{
      "type":"float",
      "box":true,
      "max":1.0,
      "min":0.0
    },
    "TraceId":{
      "type":"string",
      "max":32,
      "min":32
    },
    "TraceIds":{
      "type":"list",
      "member":{"shape":"TraceId"},
      "max":10,
      "min":1
    },
    "UnauthorizedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>This exception is thrown when the JWT bearer token is invalid or not found for OAuth bearer token based access</p>",
      "error":{
        "httpStatusCode":401,
        "senderFault":true
      },
      "exception":true
    },
    "Unit":{
      "type":"structure",
      "members":{}
    },
    "UpdateABTestRequest":{
      "type":"structure",
      "required":["abTestId"],
      "members":{
        "abTestId":{
          "shape":"ABTestId",
          "documentation":"<p>The unique identifier of the A/B test to update.</p>",
          "location":"uri",
          "locationName":"abTestId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, the service ignores the request, but does not return an error.</p>",
          "idempotencyToken":true
        },
        "name":{
          "shape":"ABTestName",
          "documentation":"<p>The updated name of the A/B test.</p>"
        },
        "description":{
          "shape":"ABTestDescription",
          "documentation":"<p>The updated description of the A/B test.</p>"
        },
        "variants":{
          "shape":"VariantList",
          "documentation":"<p>The updated list of variants.</p>"
        },
        "gatewayFilter":{
          "shape":"GatewayFilter",
          "documentation":"<p>The updated gateway filter.</p>"
        },
        "evaluationConfig":{
          "shape":"ABTestEvaluationConfig",
          "documentation":"<p>The updated evaluation configuration.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The updated IAM role ARN.</p>"
        },
        "executionStatus":{
          "shape":"ABTestExecutionStatus",
          "documentation":"<p>The updated execution status to enable or disable the A/B test.</p>"
        }
      }
    },
    "UpdateABTestResponse":{
      "type":"structure",
      "required":[
        "abTestId",
        "abTestArn",
        "status",
        "executionStatus",
        "updatedAt"
      ],
      "members":{
        "abTestId":{
          "shape":"ABTestId",
          "documentation":"<p>The unique identifier of the updated A/B test.</p>"
        },
        "abTestArn":{
          "shape":"ABTestArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated A/B test.</p>"
        },
        "status":{
          "shape":"ABTestStatus",
          "documentation":"<p>The status of the A/B test.</p>"
        },
        "executionStatus":{
          "shape":"ABTestExecutionStatus",
          "documentation":"<p>The execution status of the A/B test.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the A/B test was updated.</p>"
        }
      }
    },
    "UpdateBrowserStreamRequest":{
      "type":"structure",
      "required":[
        "browserIdentifier",
        "sessionId",
        "streamUpdate"
      ],
      "members":{
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the browser.</p>",
          "location":"uri",
          "locationName":"browserIdentifier"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The identifier of the browser session.</p>",
          "location":"querystring",
          "locationName":"sessionId"
        },
        "streamUpdate":{
          "shape":"StreamUpdate",
          "documentation":"<p>The update to apply to the browser stream.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateBrowserStreamResponse":{
      "type":"structure",
      "required":[
        "browserIdentifier",
        "sessionId",
        "streams",
        "updatedAt"
      ],
      "members":{
        "browserIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the browser.</p>"
        },
        "sessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The identifier of the browser session.</p>"
        },
        "streams":{"shape":"BrowserSessionStream"},
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The time at which the browser stream was updated.</p>"
        }
      }
    },
    "UserIdType":{
      "type":"string",
      "max":128,
      "min":1
    },
    "UserIdentifier":{
      "type":"structure",
      "members":{
        "userToken":{
          "shape":"UserTokenType",
          "documentation":"<p>The OAuth2.0 token issued by the user’s identity provider that was used to generate the workload access token</p>"
        },
        "userId":{
          "shape":"UserIdType",
          "documentation":"<p>The ID of the user for whom you have retrieved a workload access token for</p>"
        }
      },
      "documentation":"<p>The OAuth2.0 token or user ID that was used to generate the workload access token used for initiating the user authorization flow to retrieve OAuth2.0 tokens.</p>",
      "union":true
    },
    "UserTokenType":{
      "type":"string",
      "max":131072,
      "min":1,
      "pattern":"[A-Za-z0-9-_=]+.[A-Za-z0-9-_=]+.[A-Za-z0-9-_=]+",
      "sensitive":true
    },
    "ValidationException":{
      "type":"structure",
      "required":[
        "message",
        "reason"
      ],
      "members":{
        "message":{"shape":"String"},
        "reason":{"shape":"ValidationExceptionReason"},
        "fieldList":{"shape":"ValidationExceptionFieldList"}
      },
      "documentation":"<p>The exception that occurs when the input fails to satisfy the constraints specified by the service. Check the error message for details about which input parameter is invalid and correct your request.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "name",
        "message"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the field.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing why this field failed validation.</p>"
        }
      },
      "documentation":"<p>Stores information about a field passed inside a request that resulted in an exception.</p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"}
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":[
        "CannotParse",
        "FieldValidationFailed",
        "IdempotentParameterMismatchException",
        "EventInOtherSession",
        "ResourceConflict"
      ]
    },
    "Variant":{
      "type":"structure",
      "required":[
        "name",
        "weight",
        "variantConfiguration"
      ],
      "members":{
        "name":{
          "shape":"VariantName",
          "documentation":"<p>The name of the variant. Must be <code>C</code> for control or <code>T1</code> for treatment.</p>"
        },
        "weight":{
          "shape":"VariantWeightInteger",
          "documentation":"<p>The percentage of traffic to route to this variant. Weights across all variants must sum to 100.</p>"
        },
        "variantConfiguration":{
          "shape":"VariantConfiguration",
          "documentation":"<p>The configuration for this variant, including the configuration bundle or target reference.</p>"
        }
      },
      "documentation":"<p>A variant in an A/B test, representing either the control (C) or treatment (T1) configuration.</p>"
    },
    "VariantConfiguration":{
      "type":"structure",
      "members":{
        "configurationBundle":{
          "shape":"ConfigurationBundleRef",
          "documentation":"<p>A reference to a configuration bundle version to use for this variant.</p>"
        },
        "target":{
          "shape":"TargetRef",
          "documentation":"<p>A reference to a gateway target to route traffic to for this variant.</p>"
        }
      },
      "documentation":"<p>The configuration for an A/B test variant.</p>"
    },
    "VariantList":{
      "type":"list",
      "member":{"shape":"Variant"},
      "max":2,
      "min":2
    },
    "VariantName":{
      "type":"string",
      "max":2,
      "min":1,
      "pattern":"(C|T1)"
    },
    "VariantResult":{
      "type":"structure",
      "required":[
        "variantName",
        "sampleSize",
        "mean",
        "isSignificant"
      ],
      "members":{
        "variantName":{
          "shape":"String",
          "documentation":"<p>The name of the treatment variant.</p>"
        },
        "sampleSize":{
          "shape":"Integer",
          "documentation":"<p>The number of sessions evaluated for this variant.</p>"
        },
        "mean":{
          "shape":"Double",
          "documentation":"<p>The mean evaluation score for this variant.</p>"
        },
        "absoluteChange":{
          "shape":"Double",
          "documentation":"<p>The absolute change in mean score compared to the control variant.</p>"
        },
        "percentChange":{
          "shape":"Double",
          "documentation":"<p>The percentage change in mean score compared to the control variant.</p>"
        },
        "pValue":{
          "shape":"Double",
          "documentation":"<p>The p-value indicating the statistical significance of the observed difference.</p>"
        },
        "confidenceInterval":{
          "shape":"ConfidenceInterval",
          "documentation":"<p>The confidence interval for the observed difference.</p>"
        },
        "isSignificant":{
          "shape":"Boolean",
          "documentation":"<p>Whether the observed difference is statistically significant.</p>"
        }
      },
      "documentation":"<p>Statistical results for a treatment variant compared against the control.</p>"
    },
    "VariantResultList":{
      "type":"list",
      "member":{"shape":"VariantResult"}
    },
    "VariantWeightInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ViewPort":{
      "type":"structure",
      "required":[
        "width",
        "height"
      ],
      "members":{
        "width":{
          "shape":"ViewPortWidth",
          "documentation":"<p>The width of the viewport in pixels. This value determines the horizontal dimension of the visible area. Valid values range from 800 to 1920 pixels.</p>"
        },
        "height":{
          "shape":"ViewPortHeight",
          "documentation":"<p>The height of the viewport in pixels. This value determines the vertical dimension of the visible area. Valid values range from 600 to 1080 pixels.</p>"
        }
      },
      "documentation":"<p>The configuration that defines the dimensions of a browser viewport in a browser session. The viewport determines the visible area of web content and affects how web pages are rendered and displayed. Proper viewport configuration ensures that web content is displayed correctly for the agent's browsing tasks.</p>"
    },
    "ViewPortHeight":{
      "type":"integer",
      "box":true,
      "max":2160,
      "min":240
    },
    "ViewPortWidth":{
      "type":"integer",
      "box":true,
      "max":3840,
      "min":320
    },
    "WorkloadIdentityNameType":{
      "type":"string",
      "max":255,
      "min":3,
      "pattern":"[A-Za-z0-9_.-]+"
    },
    "WorkloadIdentityTokenType":{
      "type":"string",
      "max":131072,
      "min":1,
      "sensitive":true
    }
  },
  "documentation":"<p>Welcome to the Amazon Bedrock AgentCore Data Plane API reference. Data Plane actions process and handle data or workloads within Amazon Web Services services. </p>"
}
