{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2023-06-05",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"bedrock-agentcore-control",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Amazon Bedrock AgentCore Control",
    "serviceId":"Bedrock AgentCore Control",
    "signatureVersion":"v4",
    "signingName":"bedrock-agentcore",
    "uid":"bedrock-agentcore-control-2023-06-05"
  },
  "operations":{
    "CreateAgentRuntime":{
      "name":"CreateAgentRuntime",
      "http":{
        "method":"PUT",
        "requestUri":"/runtimes/",
        "responseCode":202
      },
      "input":{"shape":"CreateAgentRuntimeRequest"},
      "output":{"shape":"CreateAgentRuntimeResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates an Amazon Bedrock AgentCore Runtime.</p>",
      "idempotent":true
    },
    "CreateAgentRuntimeEndpoint":{
      "name":"CreateAgentRuntimeEndpoint",
      "http":{
        "method":"PUT",
        "requestUri":"/runtimes/{agentRuntimeId}/runtime-endpoints/",
        "responseCode":202
      },
      "input":{"shape":"CreateAgentRuntimeEndpointRequest"},
      "output":{"shape":"CreateAgentRuntimeEndpointResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates an AgentCore Runtime endpoint.</p>",
      "idempotent":true
    },
    "CreateApiKeyCredentialProvider":{
      "name":"CreateApiKeyCredentialProvider",
      "http":{
        "method":"POST",
        "requestUri":"/identities/CreateApiKeyCredentialProvider",
        "responseCode":201
      },
      "input":{"shape":"CreateApiKeyCredentialProviderRequest"},
      "output":{"shape":"CreateApiKeyCredentialProviderResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"},
        {"shape":"DecryptionFailure"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"EncryptionFailure"}
      ],
      "documentation":"<p>Creates a new API key credential provider.</p>",
      "idempotent":true
    },
    "CreateBrowser":{
      "name":"CreateBrowser",
      "http":{
        "method":"PUT",
        "requestUri":"/browsers",
        "responseCode":202
      },
      "input":{"shape":"CreateBrowserRequest"},
      "output":{"shape":"CreateBrowserResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a custom browser.</p>",
      "idempotent":true
    },
    "CreateBrowserProfile":{
      "name":"CreateBrowserProfile",
      "http":{
        "method":"PUT",
        "requestUri":"/browser-profiles",
        "responseCode":200
      },
      "input":{"shape":"CreateBrowserProfileRequest"},
      "output":{"shape":"CreateBrowserProfileResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a browser profile in Amazon Bedrock AgentCore. A browser profile stores persistent browser data such as cookies, local storage, session storage, and browsing history that can be saved from browser sessions and reused in subsequent sessions.</p>",
      "idempotent":true
    },
    "CreateCodeInterpreter":{
      "name":"CreateCodeInterpreter",
      "http":{
        "method":"PUT",
        "requestUri":"/code-interpreters",
        "responseCode":202
      },
      "input":{"shape":"CreateCodeInterpreterRequest"},
      "output":{"shape":"CreateCodeInterpreterResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a custom code interpreter.</p>",
      "idempotent":true
    },
    "CreateConfigurationBundle":{
      "name":"CreateConfigurationBundle",
      "http":{
        "method":"POST",
        "requestUri":"/configuration-bundles/create",
        "responseCode":201
      },
      "input":{"shape":"CreateConfigurationBundleRequest"},
      "output":{"shape":"CreateConfigurationBundleResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a new configuration bundle resource. A configuration bundle stores versioned component configurations for agent evaluation workflows.</p>"
    },
    "CreateEvaluator":{
      "name":"CreateEvaluator",
      "http":{
        "method":"POST",
        "requestUri":"/evaluators/create",
        "responseCode":202
      },
      "input":{"shape":"CreateEvaluatorRequest"},
      "output":{"shape":"CreateEvaluatorResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Creates a custom evaluator for agent quality assessment. Custom evaluators can use either LLM-as-a-Judge configurations with user-defined prompts, rating scales, and model settings, or code-based configurations with customer-managed Lambda functions to evaluate agent performance at tool call, trace, or session levels. </p>"
    },
    "CreateGateway":{
      "name":"CreateGateway",
      "http":{
        "method":"POST",
        "requestUri":"/gateways/",
        "responseCode":202
      },
      "input":{"shape":"CreateGatewayRequest"},
      "output":{"shape":"CreateGatewayResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a gateway for Amazon Bedrock Agent. A gateway serves as an integration point between your agent and external services.</p> <p>If you specify <code>CUSTOM_JWT</code> as the <code>authorizerType</code>, you must provide an <code>authorizerConfiguration</code>.</p>",
      "idempotent":true
    },
    "CreateGatewayRule":{
      "name":"CreateGatewayRule",
      "http":{
        "method":"POST",
        "requestUri":"/gateways/{gatewayIdentifier}/rules",
        "responseCode":202
      },
      "input":{"shape":"CreateGatewayRuleRequest"},
      "output":{"shape":"CreateGatewayRuleResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a rule for a gateway. Rules define conditions and actions that control how requests are routed and processed through the gateway, including principal-based access control and path-based routing.</p>",
      "idempotent":true
    },
    "CreateGatewayTarget":{
      "name":"CreateGatewayTarget",
      "http":{
        "method":"POST",
        "requestUri":"/gateways/{gatewayIdentifier}/targets/",
        "responseCode":202
      },
      "input":{"shape":"CreateGatewayTargetRequest"},
      "output":{"shape":"CreateGatewayTargetResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a target for a gateway. A target defines an endpoint that the gateway can connect to.</p>",
      "idempotent":true
    },
    "CreateHarness":{
      "name":"CreateHarness",
      "http":{
        "method":"POST",
        "requestUri":"/harnesses",
        "responseCode":201
      },
      "input":{"shape":"CreateHarnessRequest"},
      "output":{"shape":"CreateHarnessResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Operation to create a Harness.</p>",
      "idempotent":true
    },
    "CreateMemory":{
      "name":"CreateMemory",
      "http":{
        "method":"POST",
        "requestUri":"/memories/create",
        "responseCode":202
      },
      "input":{"shape":"CreateMemoryInput"},
      "output":{"shape":"CreateMemoryOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ServiceException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottledException"}
      ],
      "documentation":"<p>Creates a new Amazon Bedrock AgentCore Memory resource.</p>",
      "idempotent":true
    },
    "CreateOauth2CredentialProvider":{
      "name":"CreateOauth2CredentialProvider",
      "http":{
        "method":"POST",
        "requestUri":"/identities/CreateOauth2CredentialProvider",
        "responseCode":201
      },
      "input":{"shape":"CreateOauth2CredentialProviderRequest"},
      "output":{"shape":"CreateOauth2CredentialProviderResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"},
        {"shape":"DecryptionFailure"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"EncryptionFailure"}
      ],
      "documentation":"<p>Creates a new OAuth2 credential provider.</p>",
      "idempotent":true
    },
    "CreateOnlineEvaluationConfig":{
      "name":"CreateOnlineEvaluationConfig",
      "http":{
        "method":"POST",
        "requestUri":"/online-evaluation-configs/create",
        "responseCode":202
      },
      "input":{"shape":"CreateOnlineEvaluationConfigRequest"},
      "output":{"shape":"CreateOnlineEvaluationConfigResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Creates an online evaluation configuration for continuous monitoring of agent performance. Online evaluation automatically samples live traffic from CloudWatch logs at specified rates and applies evaluators to assess agent quality in production. </p>"
    },
    "CreatePolicy":{
      "name":"CreatePolicy",
      "http":{
        "method":"POST",
        "requestUri":"/policy-engines/{policyEngineId}/policies",
        "responseCode":202
      },
      "input":{"shape":"CreatePolicyRequest"},
      "output":{"shape":"CreatePolicyResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a policy within the AgentCore Policy system. Policies provide real-time, deterministic control over agentic interactions with AgentCore Gateway. Using the Cedar policy language, you can define fine-grained policies that specify which interactions with Gateway tools are permitted based on input parameters and OAuth claims, ensuring agents operate within defined boundaries and business rules. The policy is validated during creation against the Cedar schema generated from the Gateway's tools' input schemas, which defines the available tools, their parameters, and expected data types. This is an asynchronous operation. Use the <a href=\"https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetPolicy.html\">GetPolicy</a> operation to poll the <code>status</code> field to track completion.</p>"
    },
    "CreatePolicyEngine":{
      "name":"CreatePolicyEngine",
      "http":{
        "method":"POST",
        "requestUri":"/policy-engines",
        "responseCode":202
      },
      "input":{"shape":"CreatePolicyEngineRequest"},
      "output":{"shape":"CreatePolicyEngineResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a new policy engine within the AgentCore Policy system. A policy engine is a collection of policies that evaluates and authorizes agent tool calls. When associated with Gateways (each Gateway can be associated with at most one policy engine, but multiple Gateways can be associated with the same engine), the policy engine intercepts all agent requests and determines whether to allow or deny each action based on the defined policies. This is an asynchronous operation. Use the <a href=\"https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetPolicyEngine.html\">GetPolicyEngine</a> operation to poll the <code>status</code> field to track completion.</p>"
    },
    "CreateRegistry":{
      "name":"CreateRegistry",
      "http":{
        "method":"POST",
        "requestUri":"/registries",
        "responseCode":202
      },
      "input":{"shape":"CreateRegistryRequest"},
      "output":{"shape":"CreateRegistryResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a new registry in your Amazon Web Services account. A registry serves as a centralized catalog for organizing and managing registry records, including MCP servers, A2A agents, agent skills, and custom resource types.</p> <p>If you specify <code>CUSTOM_JWT</code> as the <code>authorizerType</code>, you must provide an <code>authorizerConfiguration</code>.</p>",
      "idempotent":true
    },
    "CreateRegistryRecord":{
      "name":"CreateRegistryRecord",
      "http":{
        "method":"POST",
        "requestUri":"/registries/{registryId}/records",
        "responseCode":202
      },
      "input":{"shape":"CreateRegistryRecordRequest"},
      "output":{"shape":"CreateRegistryRecordResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a new registry record within the specified registry. A registry record represents an individual AI resource's metadata in the registry. This could be an MCP server (and associated tools), A2A agent, agent skill, or a custom resource with a custom schema.</p> <p>The record is processed asynchronously and returns HTTP 202 Accepted.</p>",
      "idempotent":true
    },
    "CreateWorkloadIdentity":{
      "name":"CreateWorkloadIdentity",
      "http":{
        "method":"POST",
        "requestUri":"/identities/CreateWorkloadIdentity",
        "responseCode":201
      },
      "input":{"shape":"CreateWorkloadIdentityRequest"},
      "output":{"shape":"CreateWorkloadIdentityResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a new workload identity.</p>",
      "idempotent":true
    },
    "DeleteAgentRuntime":{
      "name":"DeleteAgentRuntime",
      "http":{
        "method":"DELETE",
        "requestUri":"/runtimes/{agentRuntimeId}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteAgentRuntimeRequest"},
      "output":{"shape":"DeleteAgentRuntimeResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes an Amazon Bedrock AgentCore Runtime.</p>",
      "idempotent":true
    },
    "DeleteAgentRuntimeEndpoint":{
      "name":"DeleteAgentRuntimeEndpoint",
      "http":{
        "method":"DELETE",
        "requestUri":"/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteAgentRuntimeEndpointRequest"},
      "output":{"shape":"DeleteAgentRuntimeEndpointResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes an AAgentCore Runtime endpoint.</p>",
      "idempotent":true
    },
    "DeleteApiKeyCredentialProvider":{
      "name":"DeleteApiKeyCredentialProvider",
      "http":{
        "method":"POST",
        "requestUri":"/identities/DeleteApiKeyCredentialProvider",
        "responseCode":204
      },
      "input":{"shape":"DeleteApiKeyCredentialProviderRequest"},
      "output":{"shape":"DeleteApiKeyCredentialProviderResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes an API key credential provider.</p>",
      "idempotent":true
    },
    "DeleteBrowser":{
      "name":"DeleteBrowser",
      "http":{
        "method":"DELETE",
        "requestUri":"/browsers/{browserId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteBrowserRequest"},
      "output":{"shape":"DeleteBrowserResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a custom browser.</p>",
      "idempotent":true
    },
    "DeleteBrowserProfile":{
      "name":"DeleteBrowserProfile",
      "http":{
        "method":"DELETE",
        "requestUri":"/browser-profiles/{profileId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteBrowserProfileRequest"},
      "output":{"shape":"DeleteBrowserProfileResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a browser profile.</p>",
      "idempotent":true
    },
    "DeleteCodeInterpreter":{
      "name":"DeleteCodeInterpreter",
      "http":{
        "method":"DELETE",
        "requestUri":"/code-interpreters/{codeInterpreterId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteCodeInterpreterRequest"},
      "output":{"shape":"DeleteCodeInterpreterResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a custom code interpreter.</p>",
      "idempotent":true
    },
    "DeleteConfigurationBundle":{
      "name":"DeleteConfigurationBundle",
      "http":{
        "method":"DELETE",
        "requestUri":"/configuration-bundles/{bundleId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteConfigurationBundleRequest"},
      "output":{"shape":"DeleteConfigurationBundleResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a configuration bundle and all of its versions.</p>",
      "idempotent":true
    },
    "DeleteEvaluator":{
      "name":"DeleteEvaluator",
      "http":{
        "method":"DELETE",
        "requestUri":"/evaluators/{evaluatorId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteEvaluatorRequest"},
      "output":{"shape":"DeleteEvaluatorResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Deletes a custom evaluator. Builtin evaluators cannot be deleted. The evaluator must not be referenced by any active online evaluation configurations. </p>",
      "idempotent":true
    },
    "DeleteGateway":{
      "name":"DeleteGateway",
      "http":{
        "method":"DELETE",
        "requestUri":"/gateways/{gatewayIdentifier}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteGatewayRequest"},
      "output":{"shape":"DeleteGatewayResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a gateway.</p>",
      "idempotent":true
    },
    "DeleteGatewayRule":{
      "name":"DeleteGatewayRule",
      "http":{
        "method":"DELETE",
        "requestUri":"/gateways/{gatewayIdentifier}/rules/{ruleId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteGatewayRuleRequest"},
      "output":{"shape":"DeleteGatewayRuleResponse"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a gateway rule.</p>",
      "idempotent":true
    },
    "DeleteGatewayTarget":{
      "name":"DeleteGatewayTarget",
      "http":{
        "method":"DELETE",
        "requestUri":"/gateways/{gatewayIdentifier}/targets/{targetId}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteGatewayTargetRequest"},
      "output":{"shape":"DeleteGatewayTargetResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a gateway target.</p> <p>You cannot delete a target that is in a pending authorization state (<code>CREATE_PENDING_AUTH</code>, <code>UPDATE_PENDING_AUTH</code>, or <code>SYNCHRONIZE_PENDING_AUTH</code>). Wait for the authorization to complete or fail before deleting the target.</p>",
      "idempotent":true
    },
    "DeleteHarness":{
      "name":"DeleteHarness",
      "http":{
        "method":"DELETE",
        "requestUri":"/harnesses/{harnessId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteHarnessRequest"},
      "output":{"shape":"DeleteHarnessResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Operation to delete a Harness.</p>",
      "idempotent":true
    },
    "DeleteMemory":{
      "name":"DeleteMemory",
      "http":{
        "method":"DELETE",
        "requestUri":"/memories/{memoryId}/delete",
        "responseCode":202
      },
      "input":{"shape":"DeleteMemoryInput"},
      "output":{"shape":"DeleteMemoryOutput"},
      "errors":[
        {"shape":"ServiceException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottledException"}
      ],
      "documentation":"<p>Deletes an Amazon Bedrock AgentCore Memory resource.</p>",
      "idempotent":true
    },
    "DeleteOauth2CredentialProvider":{
      "name":"DeleteOauth2CredentialProvider",
      "http":{
        "method":"POST",
        "requestUri":"/identities/DeleteOauth2CredentialProvider",
        "responseCode":204
      },
      "input":{"shape":"DeleteOauth2CredentialProviderRequest"},
      "output":{"shape":"DeleteOauth2CredentialProviderResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes an OAuth2 credential provider.</p>",
      "idempotent":true
    },
    "DeleteOnlineEvaluationConfig":{
      "name":"DeleteOnlineEvaluationConfig",
      "http":{
        "method":"DELETE",
        "requestUri":"/online-evaluation-configs/{onlineEvaluationConfigId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteOnlineEvaluationConfigRequest"},
      "output":{"shape":"DeleteOnlineEvaluationConfigResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Deletes an online evaluation configuration and stops any ongoing evaluation processes associated with it. </p>",
      "idempotent":true
    },
    "DeletePolicy":{
      "name":"DeletePolicy",
      "http":{
        "method":"DELETE",
        "requestUri":"/policy-engines/{policyEngineId}/policies/{policyId}",
        "responseCode":202
      },
      "input":{"shape":"DeletePolicyRequest"},
      "output":{"shape":"DeletePolicyResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes an existing policy from the AgentCore Policy system. Once deleted, the policy can no longer be used for agent behavior control and all references to it become invalid. This is an asynchronous operation. Use the <code>GetPolicy</code> operation to poll the <code>status</code> field to track completion.</p>",
      "idempotent":true
    },
    "DeletePolicyEngine":{
      "name":"DeletePolicyEngine",
      "http":{
        "method":"DELETE",
        "requestUri":"/policy-engines/{policyEngineId}",
        "responseCode":202
      },
      "input":{"shape":"DeletePolicyEngineRequest"},
      "output":{"shape":"DeletePolicyEngineResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes an existing policy engine from the AgentCore Policy system. The policy engine must not have any associated policies before deletion. Once deleted, the policy engine and all its configurations become unavailable for policy management and evaluation. This is an asynchronous operation. Use the <code>GetPolicyEngine</code> operation to poll the <code>status</code> field to track completion.</p>",
      "idempotent":true
    },
    "DeleteRegistry":{
      "name":"DeleteRegistry",
      "http":{
        "method":"DELETE",
        "requestUri":"/registries/{registryId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteRegistryRequest"},
      "output":{"shape":"DeleteRegistryResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a registry. The registry must contain zero records before it can be deleted. This operation initiates the deletion process asynchronously.</p>",
      "idempotent":true
    },
    "DeleteRegistryRecord":{
      "name":"DeleteRegistryRecord",
      "http":{
        "method":"DELETE",
        "requestUri":"/registries/{registryId}/records/{recordId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteRegistryRecordRequest"},
      "output":{"shape":"DeleteRegistryRecordResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a registry record. The record's status transitions to <code>DELETING</code> and the record is removed asynchronously.</p>",
      "idempotent":true
    },
    "DeleteResourcePolicy":{
      "name":"DeleteResourcePolicy",
      "http":{
        "method":"DELETE",
        "requestUri":"/resourcepolicy/{resourceArn}",
        "responseCode":204
      },
      "input":{"shape":"DeleteResourcePolicyRequest"},
      "output":{"shape":"DeleteResourcePolicyResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes the resource-based policy for a specified resource.</p> <note> <p>This feature is currently available only for AgentCore Runtime and Gateway.</p> </note>",
      "idempotent":true
    },
    "DeleteWorkloadIdentity":{
      "name":"DeleteWorkloadIdentity",
      "http":{
        "method":"POST",
        "requestUri":"/identities/DeleteWorkloadIdentity",
        "responseCode":204
      },
      "input":{"shape":"DeleteWorkloadIdentityRequest"},
      "output":{"shape":"DeleteWorkloadIdentityResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a workload identity.</p>",
      "idempotent":true
    },
    "GetAgentRuntime":{
      "name":"GetAgentRuntime",
      "http":{
        "method":"GET",
        "requestUri":"/runtimes/{agentRuntimeId}/",
        "responseCode":200
      },
      "input":{"shape":"GetAgentRuntimeRequest"},
      "output":{"shape":"GetAgentRuntimeResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets an Amazon Bedrock AgentCore Runtime.</p>",
      "readonly":true
    },
    "GetAgentRuntimeEndpoint":{
      "name":"GetAgentRuntimeEndpoint",
      "http":{
        "method":"GET",
        "requestUri":"/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/",
        "responseCode":200
      },
      "input":{"shape":"GetAgentRuntimeEndpointRequest"},
      "output":{"shape":"GetAgentRuntimeEndpointResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets information about an Amazon Secure AgentEndpoint.</p>",
      "readonly":true
    },
    "GetApiKeyCredentialProvider":{
      "name":"GetApiKeyCredentialProvider",
      "http":{
        "method":"POST",
        "requestUri":"/identities/GetApiKeyCredentialProvider",
        "responseCode":200
      },
      "input":{"shape":"GetApiKeyCredentialProviderRequest"},
      "output":{"shape":"GetApiKeyCredentialProviderResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"DecryptionFailure"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves information about an API key credential provider.</p>",
      "readonly":true
    },
    "GetBrowser":{
      "name":"GetBrowser",
      "http":{
        "method":"GET",
        "requestUri":"/browsers/{browserId}",
        "responseCode":200
      },
      "input":{"shape":"GetBrowserRequest"},
      "output":{"shape":"GetBrowserResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets information about a custom browser.</p>",
      "readonly":true
    },
    "GetBrowserProfile":{
      "name":"GetBrowserProfile",
      "http":{
        "method":"GET",
        "requestUri":"/browser-profiles/{profileId}",
        "responseCode":200
      },
      "input":{"shape":"GetBrowserProfileRequest"},
      "output":{"shape":"GetBrowserProfileResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets information about a browser profile.</p>",
      "readonly":true
    },
    "GetCodeInterpreter":{
      "name":"GetCodeInterpreter",
      "http":{
        "method":"GET",
        "requestUri":"/code-interpreters/{codeInterpreterId}",
        "responseCode":200
      },
      "input":{"shape":"GetCodeInterpreterRequest"},
      "output":{"shape":"GetCodeInterpreterResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets information about a custom code interpreter.</p>",
      "readonly":true
    },
    "GetConfigurationBundle":{
      "name":"GetConfigurationBundle",
      "http":{
        "method":"GET",
        "requestUri":"/configuration-bundles/{bundleId}",
        "responseCode":200
      },
      "input":{"shape":"GetConfigurationBundleRequest"},
      "output":{"shape":"GetConfigurationBundleResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets the latest version of a configuration bundle. By default, returns the latest version on the mainline branch. Use <code>GetConfigurationBundleVersion</code> to retrieve a specific historical version.</p>",
      "readonly":true
    },
    "GetConfigurationBundleVersion":{
      "name":"GetConfigurationBundleVersion",
      "http":{
        "method":"GET",
        "requestUri":"/configuration-bundles/{bundleId}/versions/{versionId}",
        "responseCode":200
      },
      "input":{"shape":"GetConfigurationBundleVersionRequest"},
      "output":{"shape":"GetConfigurationBundleVersionResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a specific version of a configuration bundle by its version identifier.</p>",
      "readonly":true
    },
    "GetEvaluator":{
      "name":"GetEvaluator",
      "http":{
        "method":"GET",
        "requestUri":"/evaluators/{evaluatorId}",
        "responseCode":200
      },
      "input":{"shape":"GetEvaluatorRequest"},
      "output":{"shape":"GetEvaluatorResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Retrieves detailed information about an evaluator, including its configuration, status, and metadata. Works with both built-in and custom evaluators. </p>",
      "readonly":true
    },
    "GetGateway":{
      "name":"GetGateway",
      "http":{
        "method":"GET",
        "requestUri":"/gateways/{gatewayIdentifier}/",
        "responseCode":200
      },
      "input":{"shape":"GetGatewayRequest"},
      "output":{"shape":"GetGatewayResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves information about a specific Gateway.</p>",
      "readonly":true
    },
    "GetGatewayRule":{
      "name":"GetGatewayRule",
      "http":{
        "method":"GET",
        "requestUri":"/gateways/{gatewayIdentifier}/rules/{ruleId}",
        "responseCode":200
      },
      "input":{"shape":"GetGatewayRuleRequest"},
      "output":{"shape":"GetGatewayRuleResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves detailed information about a specific gateway rule.</p>",
      "readonly":true
    },
    "GetGatewayTarget":{
      "name":"GetGatewayTarget",
      "http":{
        "method":"GET",
        "requestUri":"/gateways/{gatewayIdentifier}/targets/{targetId}/",
        "responseCode":200
      },
      "input":{"shape":"GetGatewayTargetRequest"},
      "output":{"shape":"GetGatewayTargetResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves information about a specific gateway target.</p>",
      "readonly":true
    },
    "GetHarness":{
      "name":"GetHarness",
      "http":{
        "method":"GET",
        "requestUri":"/harnesses/{harnessId}",
        "responseCode":200
      },
      "input":{"shape":"GetHarnessRequest"},
      "output":{"shape":"GetHarnessResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Operation to get a single Harness.</p>",
      "readonly":true
    },
    "GetMemory":{
      "name":"GetMemory",
      "http":{
        "method":"GET",
        "requestUri":"/memories/{memoryId}/details",
        "responseCode":200
      },
      "input":{"shape":"GetMemoryInput"},
      "output":{"shape":"GetMemoryOutput"},
      "errors":[
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottledException"}
      ],
      "documentation":"<p>Retrieve an existing Amazon Bedrock AgentCore Memory resource.</p>",
      "readonly":true
    },
    "GetOauth2CredentialProvider":{
      "name":"GetOauth2CredentialProvider",
      "http":{
        "method":"POST",
        "requestUri":"/identities/GetOauth2CredentialProvider",
        "responseCode":200
      },
      "input":{"shape":"GetOauth2CredentialProviderRequest"},
      "output":{"shape":"GetOauth2CredentialProviderResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"DecryptionFailure"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves information about an OAuth2 credential provider.</p>",
      "readonly":true
    },
    "GetOnlineEvaluationConfig":{
      "name":"GetOnlineEvaluationConfig",
      "http":{
        "method":"GET",
        "requestUri":"/online-evaluation-configs/{onlineEvaluationConfigId}",
        "responseCode":200
      },
      "input":{"shape":"GetOnlineEvaluationConfigRequest"},
      "output":{"shape":"GetOnlineEvaluationConfigResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Retrieves detailed information about an online evaluation configuration, including its rules, data sources, evaluators, and execution status. </p>",
      "readonly":true
    },
    "GetPolicy":{
      "name":"GetPolicy",
      "http":{
        "method":"GET",
        "requestUri":"/policy-engines/{policyEngineId}/policies/{policyId}",
        "responseCode":200
      },
      "input":{"shape":"GetPolicyRequest"},
      "output":{"shape":"GetPolicyResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves detailed information about a specific policy within the AgentCore Policy system. This operation returns the complete policy definition, metadata, and current status, allowing administrators to review and manage policy configurations.</p>",
      "readonly":true
    },
    "GetPolicyEngine":{
      "name":"GetPolicyEngine",
      "http":{
        "method":"GET",
        "requestUri":"/policy-engines/{policyEngineId}",
        "responseCode":200
      },
      "input":{"shape":"GetPolicyEngineRequest"},
      "output":{"shape":"GetPolicyEngineResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves detailed information about a specific policy engine within the AgentCore Policy system. This operation returns the complete policy engine configuration, metadata, and current status, allowing administrators to review and manage policy engine settings.</p>",
      "readonly":true
    },
    "GetPolicyGeneration":{
      "name":"GetPolicyGeneration",
      "http":{
        "method":"GET",
        "requestUri":"/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}",
        "responseCode":200
      },
      "input":{"shape":"GetPolicyGenerationRequest"},
      "output":{"shape":"GetPolicyGenerationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves information about a policy generation request within the AgentCore Policy system. Policy generation converts natural language descriptions into Cedar policy statements using AI-powered translation, enabling non-technical users to create policies.</p>",
      "readonly":true
    },
    "GetRegistry":{
      "name":"GetRegistry",
      "http":{
        "method":"GET",
        "requestUri":"/registries/{registryId}",
        "responseCode":200
      },
      "input":{"shape":"GetRegistryRequest"},
      "output":{"shape":"GetRegistryResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves information about a specific registry.</p>",
      "readonly":true
    },
    "GetRegistryRecord":{
      "name":"GetRegistryRecord",
      "http":{
        "method":"GET",
        "requestUri":"/registries/{registryId}/records/{recordId}",
        "responseCode":200
      },
      "input":{"shape":"GetRegistryRecordRequest"},
      "output":{"shape":"GetRegistryRecordResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves information about a specific registry record.</p>",
      "readonly":true
    },
    "GetResourcePolicy":{
      "name":"GetResourcePolicy",
      "http":{
        "method":"GET",
        "requestUri":"/resourcepolicy/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"GetResourcePolicyRequest"},
      "output":{"shape":"GetResourcePolicyResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves the resource-based policy for a specified resource.</p> <note> <p>This feature is currently available only for AgentCore Runtime and Gateway.</p> </note>",
      "readonly":true
    },
    "GetTokenVault":{
      "name":"GetTokenVault",
      "http":{
        "method":"POST",
        "requestUri":"/identities/get-token-vault",
        "responseCode":200
      },
      "input":{"shape":"GetTokenVaultRequest"},
      "output":{"shape":"GetTokenVaultResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves information about a token vault.</p>",
      "readonly":true
    },
    "GetWorkloadIdentity":{
      "name":"GetWorkloadIdentity",
      "http":{
        "method":"POST",
        "requestUri":"/identities/GetWorkloadIdentity",
        "responseCode":200
      },
      "input":{"shape":"GetWorkloadIdentityRequest"},
      "output":{"shape":"GetWorkloadIdentityResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves information about a workload identity.</p>",
      "readonly":true
    },
    "ListAgentRuntimeEndpoints":{
      "name":"ListAgentRuntimeEndpoints",
      "http":{
        "method":"POST",
        "requestUri":"/runtimes/{agentRuntimeId}/runtime-endpoints/",
        "responseCode":200
      },
      "input":{"shape":"ListAgentRuntimeEndpointsRequest"},
      "output":{"shape":"ListAgentRuntimeEndpointsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all endpoints for a specific Amazon Secure Agent.</p>",
      "readonly":true
    },
    "ListAgentRuntimeVersions":{
      "name":"ListAgentRuntimeVersions",
      "http":{
        "method":"POST",
        "requestUri":"/runtimes/{agentRuntimeId}/versions/",
        "responseCode":200
      },
      "input":{"shape":"ListAgentRuntimeVersionsRequest"},
      "output":{"shape":"ListAgentRuntimeVersionsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all versions of a specific Amazon Secure Agent.</p>",
      "readonly":true
    },
    "ListAgentRuntimes":{
      "name":"ListAgentRuntimes",
      "http":{
        "method":"POST",
        "requestUri":"/runtimes/",
        "responseCode":200
      },
      "input":{"shape":"ListAgentRuntimesRequest"},
      "output":{"shape":"ListAgentRuntimesResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all Amazon Secure Agents in your account.</p>",
      "readonly":true
    },
    "ListApiKeyCredentialProviders":{
      "name":"ListApiKeyCredentialProviders",
      "http":{
        "method":"POST",
        "requestUri":"/identities/ListApiKeyCredentialProviders",
        "responseCode":200
      },
      "input":{"shape":"ListApiKeyCredentialProvidersRequest"},
      "output":{"shape":"ListApiKeyCredentialProvidersResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all API key credential providers in your account.</p>",
      "readonly":true
    },
    "ListBrowserProfiles":{
      "name":"ListBrowserProfiles",
      "http":{
        "method":"POST",
        "requestUri":"/browser-profiles",
        "responseCode":200
      },
      "input":{"shape":"ListBrowserProfilesRequest"},
      "output":{"shape":"ListBrowserProfilesResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all browser profiles in your account.</p>",
      "readonly":true
    },
    "ListBrowsers":{
      "name":"ListBrowsers",
      "http":{
        "method":"POST",
        "requestUri":"/browsers",
        "responseCode":200
      },
      "input":{"shape":"ListBrowsersRequest"},
      "output":{"shape":"ListBrowsersResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all custom browsers in your account.</p>",
      "readonly":true
    },
    "ListCodeInterpreters":{
      "name":"ListCodeInterpreters",
      "http":{
        "method":"POST",
        "requestUri":"/code-interpreters",
        "responseCode":200
      },
      "input":{"shape":"ListCodeInterpretersRequest"},
      "output":{"shape":"ListCodeInterpretersResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all custom code interpreters in your account.</p>",
      "readonly":true
    },
    "ListConfigurationBundleVersions":{
      "name":"ListConfigurationBundleVersions",
      "http":{
        "method":"POST",
        "requestUri":"/configuration-bundles/{bundleId}/versions",
        "responseCode":200
      },
      "input":{"shape":"ListConfigurationBundleVersionsRequest"},
      "output":{"shape":"ListConfigurationBundleVersionsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all versions of a configuration bundle, with optional filtering by branch name or creation source.</p>",
      "readonly":true
    },
    "ListConfigurationBundles":{
      "name":"ListConfigurationBundles",
      "http":{
        "method":"POST",
        "requestUri":"/configuration-bundles",
        "responseCode":200
      },
      "input":{"shape":"ListConfigurationBundlesRequest"},
      "output":{"shape":"ListConfigurationBundlesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all configuration bundles in the account.</p>",
      "readonly":true
    },
    "ListEvaluators":{
      "name":"ListEvaluators",
      "http":{
        "method":"POST",
        "requestUri":"/evaluators",
        "responseCode":200
      },
      "input":{"shape":"ListEvaluatorsRequest"},
      "output":{"shape":"ListEvaluatorsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Lists all available evaluators, including both builtin evaluators provided by the service and custom evaluators created by the user. </p>",
      "readonly":true
    },
    "ListGatewayRules":{
      "name":"ListGatewayRules",
      "http":{
        "method":"GET",
        "requestUri":"/gateways/{gatewayIdentifier}/rules",
        "responseCode":200
      },
      "input":{"shape":"ListGatewayRulesRequest"},
      "output":{"shape":"ListGatewayRulesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all rules for a gateway.</p>",
      "readonly":true
    },
    "ListGatewayTargets":{
      "name":"ListGatewayTargets",
      "http":{
        "method":"GET",
        "requestUri":"/gateways/{gatewayIdentifier}/targets/",
        "responseCode":200
      },
      "input":{"shape":"ListGatewayTargetsRequest"},
      "output":{"shape":"ListGatewayTargetsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all targets for a specific gateway.</p>",
      "readonly":true
    },
    "ListGateways":{
      "name":"ListGateways",
      "http":{
        "method":"GET",
        "requestUri":"/gateways/",
        "responseCode":200
      },
      "input":{"shape":"ListGatewaysRequest"},
      "output":{"shape":"ListGatewaysResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all gateways in the account.</p>",
      "readonly":true
    },
    "ListHarnesses":{
      "name":"ListHarnesses",
      "http":{
        "method":"GET",
        "requestUri":"/harnesses",
        "responseCode":200
      },
      "input":{"shape":"ListHarnessesRequest"},
      "output":{"shape":"ListHarnessesResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Operation to list Harnesses.</p>",
      "readonly":true
    },
    "ListMemories":{
      "name":"ListMemories",
      "http":{
        "method":"POST",
        "requestUri":"/memories/",
        "responseCode":200
      },
      "input":{"shape":"ListMemoriesInput"},
      "output":{"shape":"ListMemoriesOutput"},
      "errors":[
        {"shape":"ServiceException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottledException"}
      ],
      "documentation":"<p>Lists the available Amazon Bedrock AgentCore Memory resources in the current Amazon Web Services Region.</p>",
      "readonly":true
    },
    "ListOauth2CredentialProviders":{
      "name":"ListOauth2CredentialProviders",
      "http":{
        "method":"POST",
        "requestUri":"/identities/ListOauth2CredentialProviders",
        "responseCode":200
      },
      "input":{"shape":"ListOauth2CredentialProvidersRequest"},
      "output":{"shape":"ListOauth2CredentialProvidersResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all OAuth2 credential providers in your account.</p>",
      "readonly":true
    },
    "ListOnlineEvaluationConfigs":{
      "name":"ListOnlineEvaluationConfigs",
      "http":{
        "method":"POST",
        "requestUri":"/online-evaluation-configs",
        "responseCode":200
      },
      "input":{"shape":"ListOnlineEvaluationConfigsRequest"},
      "output":{"shape":"ListOnlineEvaluationConfigsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Lists all online evaluation configurations in the account, providing summary information about each configuration's status and settings. </p>",
      "readonly":true
    },
    "ListPolicies":{
      "name":"ListPolicies",
      "http":{
        "method":"GET",
        "requestUri":"/policy-engines/{policyEngineId}/policies",
        "responseCode":200
      },
      "input":{"shape":"ListPoliciesRequest"},
      "output":{"shape":"ListPoliciesResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves a list of policies within the AgentCore Policy engine. This operation supports pagination and filtering to help administrators manage and discover policies across policy engines. Results can be filtered by policy engine or resource associations.</p>",
      "readonly":true
    },
    "ListPolicyEngines":{
      "name":"ListPolicyEngines",
      "http":{
        "method":"GET",
        "requestUri":"/policy-engines",
        "responseCode":200
      },
      "input":{"shape":"ListPolicyEnginesRequest"},
      "output":{"shape":"ListPolicyEnginesResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves a list of policy engines within the AgentCore Policy system. This operation supports pagination to help administrators discover and manage policy engines across their account. Each policy engine serves as a container for related policies.</p>",
      "readonly":true
    },
    "ListPolicyGenerationAssets":{
      "name":"ListPolicyGenerationAssets",
      "http":{
        "method":"GET",
        "requestUri":"/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}/assets",
        "responseCode":200
      },
      "input":{"shape":"ListPolicyGenerationAssetsRequest"},
      "output":{"shape":"ListPolicyGenerationAssetsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves a list of generated policy assets from a policy generation request within the AgentCore Policy system. This operation returns the actual Cedar policies and related artifacts produced by the AI-powered policy generation process, allowing users to review and select from multiple generated policy options.</p>",
      "readonly":true
    },
    "ListPolicyGenerations":{
      "name":"ListPolicyGenerations",
      "http":{
        "method":"GET",
        "requestUri":"/policy-engines/{policyEngineId}/policy-generations",
        "responseCode":200
      },
      "input":{"shape":"ListPolicyGenerationsRequest"},
      "output":{"shape":"ListPolicyGenerationsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves a list of policy generation requests within the AgentCore Policy system. This operation supports pagination and filtering to help track and manage AI-powered policy generation operations.</p>",
      "readonly":true
    },
    "ListRegistries":{
      "name":"ListRegistries",
      "http":{
        "method":"GET",
        "requestUri":"/registries",
        "responseCode":200
      },
      "input":{"shape":"ListRegistriesRequest"},
      "output":{"shape":"ListRegistriesResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all registries in the account. You can optionally filter results by status using the <code>status</code> parameter.</p>",
      "readonly":true
    },
    "ListRegistryRecords":{
      "name":"ListRegistryRecords",
      "http":{
        "method":"GET",
        "requestUri":"/registries/{registryId}/records",
        "responseCode":200
      },
      "input":{"shape":"ListRegistryRecordsRequest"},
      "output":{"shape":"ListRegistryRecordsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists registry records within a registry. You can optionally filter results using the <code>name</code>, <code>status</code>, and <code>descriptorType</code> parameters. When multiple filters are specified, they are combined using AND logic.</p>",
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists the tags associated with the specified resource.</p> <note> <p>This feature is currently available only for AgentCore Runtime, Browser, Browser Profile, Code Interpreter tool, and Gateway.</p> </note>",
      "readonly":true
    },
    "ListWorkloadIdentities":{
      "name":"ListWorkloadIdentities",
      "http":{
        "method":"POST",
        "requestUri":"/identities/ListWorkloadIdentities",
        "responseCode":200
      },
      "input":{"shape":"ListWorkloadIdentitiesRequest"},
      "output":{"shape":"ListWorkloadIdentitiesResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all workload identities in your account.</p>",
      "readonly":true
    },
    "PutResourcePolicy":{
      "name":"PutResourcePolicy",
      "http":{
        "method":"PUT",
        "requestUri":"/resourcepolicy/{resourceArn}",
        "responseCode":201
      },
      "input":{"shape":"PutResourcePolicyRequest"},
      "output":{"shape":"PutResourcePolicyResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates or updates a resource-based policy for a resource with the specified resourceArn.</p> <note> <p>This feature is currently available only for AgentCore Runtime and Gateway.</p> </note>",
      "idempotent":true
    },
    "SetTokenVaultCMK":{
      "name":"SetTokenVaultCMK",
      "http":{
        "method":"POST",
        "requestUri":"/identities/set-token-vault-cmk",
        "responseCode":200
      },
      "input":{"shape":"SetTokenVaultCMKRequest"},
      "output":{"shape":"SetTokenVaultCMKResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ConcurrentModificationException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Sets the customer master key (CMK) for a token vault.</p>"
    },
    "StartPolicyGeneration":{
      "name":"StartPolicyGeneration",
      "http":{
        "method":"POST",
        "requestUri":"/policy-engines/{policyEngineId}/policy-generations",
        "responseCode":202
      },
      "input":{"shape":"StartPolicyGenerationRequest"},
      "output":{"shape":"StartPolicyGenerationResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Initiates the AI-powered generation of Cedar policies from natural language descriptions within the AgentCore Policy system. This feature enables both technical and non-technical users to create policies by describing their authorization requirements in plain English, which is then automatically translated into formal Cedar policy statements. The generation process analyzes the natural language input along with the Gateway's tool context to produce validated policy options. Generated policy assets are automatically deleted after 7 days, so you should review and create policies from the generated assets within this timeframe. Once created, policies are permanent and not subject to this expiration. Generated policies should be reviewed and tested in log-only mode before deploying to production. Use this when you want to describe policy intent naturally rather than learning Cedar syntax, though generated policies may require refinement for complex scenarios.</p>"
    },
    "SubmitRegistryRecordForApproval":{
      "name":"SubmitRegistryRecordForApproval",
      "http":{
        "method":"POST",
        "requestUri":"/registries/{registryId}/records/{recordId}/submit-for-approval",
        "responseCode":202
      },
      "input":{"shape":"SubmitRegistryRecordForApprovalRequest"},
      "output":{"shape":"SubmitRegistryRecordForApprovalResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Submits a registry record for approval. This transitions the record from <code>DRAFT</code> status to <code>PENDING_APPROVAL</code> status. If the registry has auto-approval enabled, the record is automatically approved.</p>"
    },
    "SynchronizeGatewayTargets":{
      "name":"SynchronizeGatewayTargets",
      "http":{
        "method":"PUT",
        "requestUri":"/gateways/{gatewayIdentifier}/synchronizeTargets",
        "responseCode":202
      },
      "input":{"shape":"SynchronizeGatewayTargetsRequest"},
      "output":{"shape":"SynchronizeGatewayTargetsResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Synchronizes the gateway targets by fetching the latest tool definitions from the target endpoints.</p> <p>You cannot synchronize a target that is in a pending authorization state (<code>CREATE_PENDING_AUTH</code>, <code>UPDATE_PENDING_AUTH</code>, or <code>SYNCHRONIZE_PENDING_AUTH</code>). Wait for the authorization to complete or fail before synchronizing.</p> <p>You cannot synchronize a target that has a static tool schema (<code>mcpToolSchema</code>) configured. Remove the static schema through an <code>UpdateGatewayTarget</code> call to enable dynamic tool synchronization.</p>",
      "idempotent":true
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":204
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.</p> <note> <p>This feature is currently available only for AgentCore Runtime, Browser, Browser Profile, Code Interpreter tool, and Gateway.</p> </note>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":204
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Removes the specified tags from the specified resource.</p> <note> <p>This feature is currently available only for AgentCore Runtime, Browser, Browser Profile, Code Interpreter tool, and Gateway.</p> </note>",
      "idempotent":true
    },
    "UpdateAgentRuntime":{
      "name":"UpdateAgentRuntime",
      "http":{
        "method":"PUT",
        "requestUri":"/runtimes/{agentRuntimeId}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateAgentRuntimeRequest"},
      "output":{"shape":"UpdateAgentRuntimeResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing Amazon Secure Agent.</p>",
      "idempotent":true
    },
    "UpdateAgentRuntimeEndpoint":{
      "name":"UpdateAgentRuntimeEndpoint",
      "http":{
        "method":"PUT",
        "requestUri":"/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateAgentRuntimeEndpointRequest"},
      "output":{"shape":"UpdateAgentRuntimeEndpointResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing Amazon Bedrock AgentCore Runtime endpoint.</p>",
      "idempotent":true
    },
    "UpdateApiKeyCredentialProvider":{
      "name":"UpdateApiKeyCredentialProvider",
      "http":{
        "method":"POST",
        "requestUri":"/identities/UpdateApiKeyCredentialProvider",
        "responseCode":200
      },
      "input":{"shape":"UpdateApiKeyCredentialProviderRequest"},
      "output":{"shape":"UpdateApiKeyCredentialProviderResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"DecryptionFailure"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"EncryptionFailure"}
      ],
      "documentation":"<p>Updates an existing API key credential provider.</p>",
      "idempotent":true
    },
    "UpdateConfigurationBundle":{
      "name":"UpdateConfigurationBundle",
      "http":{
        "method":"PUT",
        "requestUri":"/configuration-bundles/{bundleId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateConfigurationBundleRequest"},
      "output":{"shape":"UpdateConfigurationBundleResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates a configuration bundle by creating a new version with the specified changes. Each update creates a new version in the version history.</p>"
    },
    "UpdateEvaluator":{
      "name":"UpdateEvaluator",
      "http":{
        "method":"PUT",
        "requestUri":"/evaluators/{evaluatorId}",
        "responseCode":202
      },
      "input":{"shape":"UpdateEvaluatorRequest"},
      "output":{"shape":"UpdateEvaluatorResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Updates a custom evaluator's configuration, description, or evaluation level. Built-in evaluators cannot be updated. The evaluator must not be locked for modification. </p>",
      "idempotent":true
    },
    "UpdateGateway":{
      "name":"UpdateGateway",
      "http":{
        "method":"PUT",
        "requestUri":"/gateways/{gatewayIdentifier}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateGatewayRequest"},
      "output":{"shape":"UpdateGatewayResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing gateway.</p>",
      "idempotent":true
    },
    "UpdateGatewayRule":{
      "name":"UpdateGatewayRule",
      "http":{
        "method":"PATCH",
        "requestUri":"/gateways/{gatewayIdentifier}/rules/{ruleId}",
        "responseCode":202
      },
      "input":{"shape":"UpdateGatewayRuleRequest"},
      "output":{"shape":"UpdateGatewayRuleResponse"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates a gateway rule's priority, conditions, actions, or description.</p>",
      "idempotent":true
    },
    "UpdateGatewayTarget":{
      "name":"UpdateGatewayTarget",
      "http":{
        "method":"PUT",
        "requestUri":"/gateways/{gatewayIdentifier}/targets/{targetId}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateGatewayTargetRequest"},
      "output":{"shape":"UpdateGatewayTargetResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing gateway target.</p> <p>You cannot update a target that is in a pending authorization state (<code>CREATE_PENDING_AUTH</code>, <code>UPDATE_PENDING_AUTH</code>, or <code>SYNCHRONIZE_PENDING_AUTH</code>). Wait for the authorization to complete or fail before updating the target.</p>",
      "idempotent":true
    },
    "UpdateHarness":{
      "name":"UpdateHarness",
      "http":{
        "method":"PATCH",
        "requestUri":"/harnesses/{harnessId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateHarnessRequest"},
      "output":{"shape":"UpdateHarnessResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Operation to update a Harness.</p>",
      "idempotent":true
    },
    "UpdateMemory":{
      "name":"UpdateMemory",
      "http":{
        "method":"PUT",
        "requestUri":"/memories/{memoryId}/update",
        "responseCode":202
      },
      "input":{"shape":"UpdateMemoryInput"},
      "output":{"shape":"UpdateMemoryOutput"},
      "errors":[
        {"shape":"ServiceException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottledException"}
      ],
      "documentation":"<p>Update an Amazon Bedrock AgentCore Memory resource memory.</p>",
      "idempotent":true
    },
    "UpdateOauth2CredentialProvider":{
      "name":"UpdateOauth2CredentialProvider",
      "http":{
        "method":"POST",
        "requestUri":"/identities/UpdateOauth2CredentialProvider",
        "responseCode":200
      },
      "input":{"shape":"UpdateOauth2CredentialProviderRequest"},
      "output":{"shape":"UpdateOauth2CredentialProviderResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"DecryptionFailure"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"},
        {"shape":"EncryptionFailure"}
      ],
      "documentation":"<p>Updates an existing OAuth2 credential provider.</p>"
    },
    "UpdateOnlineEvaluationConfig":{
      "name":"UpdateOnlineEvaluationConfig",
      "http":{
        "method":"PUT",
        "requestUri":"/online-evaluation-configs/{onlineEvaluationConfigId}",
        "responseCode":202
      },
      "input":{"shape":"UpdateOnlineEvaluationConfigRequest"},
      "output":{"shape":"UpdateOnlineEvaluationConfigResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Updates an online evaluation configuration's settings, including rules, data sources, evaluators, and execution status. Changes take effect immediately for ongoing evaluations. </p>",
      "idempotent":true
    },
    "UpdatePolicy":{
      "name":"UpdatePolicy",
      "http":{
        "method":"PATCH",
        "requestUri":"/policy-engines/{policyEngineId}/policies/{policyId}",
        "responseCode":202
      },
      "input":{"shape":"UpdatePolicyRequest"},
      "output":{"shape":"UpdatePolicyResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing policy within the AgentCore Policy system. This operation allows modification of the policy description and definition while maintaining the policy's identity. The updated policy is validated against the Cedar schema before being applied. This is an asynchronous operation. Use the <code>GetPolicy</code> operation to poll the <code>status</code> field to track completion.</p>",
      "idempotent":true
    },
    "UpdatePolicyEngine":{
      "name":"UpdatePolicyEngine",
      "http":{
        "method":"PATCH",
        "requestUri":"/policy-engines/{policyEngineId}",
        "responseCode":202
      },
      "input":{"shape":"UpdatePolicyEngineRequest"},
      "output":{"shape":"UpdatePolicyEngineResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing policy engine within the AgentCore Policy system. This operation allows modification of the policy engine description while maintaining its identity. This is an asynchronous operation. Use the <code>GetPolicyEngine</code> operation to poll the <code>status</code> field to track completion.</p>",
      "idempotent":true
    },
    "UpdateRegistry":{
      "name":"UpdateRegistry",
      "http":{
        "method":"PATCH",
        "requestUri":"/registries/{registryId}",
        "responseCode":202
      },
      "input":{"shape":"UpdateRegistryRequest"},
      "output":{"shape":"UpdateRegistryResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing registry. This operation uses PATCH semantics, so you only need to specify the fields you want to change.</p>"
    },
    "UpdateRegistryRecord":{
      "name":"UpdateRegistryRecord",
      "http":{
        "method":"PATCH",
        "requestUri":"/registries/{registryId}/records/{recordId}",
        "responseCode":202
      },
      "input":{"shape":"UpdateRegistryRecordRequest"},
      "output":{"shape":"UpdateRegistryRecordResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing registry record. This operation uses PATCH semantics, so you only need to specify the fields you want to change. The update is processed asynchronously and returns HTTP 202 Accepted.</p>"
    },
    "UpdateRegistryRecordStatus":{
      "name":"UpdateRegistryRecordStatus",
      "http":{
        "method":"PATCH",
        "requestUri":"/registries/{registryId}/records/{recordId}/status",
        "responseCode":202
      },
      "input":{"shape":"UpdateRegistryRecordStatusRequest"},
      "output":{"shape":"UpdateRegistryRecordStatusResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates the status of a registry record. Use this operation to approve, reject, or deprecate a registry record.</p>"
    },
    "UpdateWorkloadIdentity":{
      "name":"UpdateWorkloadIdentity",
      "http":{
        "method":"POST",
        "requestUri":"/identities/UpdateWorkloadIdentity",
        "responseCode":200
      },
      "input":{"shape":"UpdateWorkloadIdentityRequest"},
      "output":{"shape":"UpdateWorkloadIdentityResponse"},
      "errors":[
        {"shape":"UnauthorizedException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing workload identity.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "A2aDescriptor":{
      "type":"structure",
      "members":{
        "agentCard":{
          "shape":"AgentCardDefinition",
          "documentation":"<p>The agent card definition for the A2A agent, as defined by the A2A protocol specification.</p>"
        }
      },
      "documentation":"<p>The Agent-to-Agent (A2A) protocol descriptor for a registry record. Contains the agent card definition as defined by the A2A protocol specification.</p>"
    },
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>This exception is thrown when a request is denied per access permissions</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "Action":{
      "type":"structure",
      "members":{
        "configurationBundle":{
          "shape":"ConfigurationBundleAction",
          "documentation":"<p>An action that applies a configuration bundle override to the request.</p>"
        },
        "routeToTarget":{
          "shape":"RouteToTargetAction",
          "documentation":"<p>An action that routes the request to a specific target.</p>"
        }
      },
      "documentation":"<p>An action to take when a gateway rule's conditions are met.</p>",
      "union":true
    },
    "Actions":{
      "type":"list",
      "member":{"shape":"Action"},
      "max":2,
      "min":1
    },
    "ActorTokenContentType":{
      "type":"string",
      "enum":[
        "NONE",
        "M2M",
        "AWS_IAM_ID_TOKEN_JWT"
      ]
    },
    "AdditionalModelRequestFields":{
      "type":"structure",
      "members":{},
      "document":true
    },
    "AgentCardDefinition":{
      "type":"structure",
      "members":{
        "schemaVersion":{
          "shape":"SchemaVersion",
          "documentation":"<p>The schema version of the agent card based on the A2A protocol specification.</p>"
        },
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p>The JSON content containing the A2A agent card definition, conforming to the A2A protocol specification.</p>"
        }
      },
      "documentation":"<p>The agent card definition for an A2A descriptor. Contains the schema version and inline content for the agent card.</p>"
    },
    "AgentEndpointDescription":{
      "type":"string",
      "max":256,
      "min":1
    },
    "AgentManagedRuntimeType":{
      "type":"string",
      "enum":[
        "PYTHON_3_10",
        "PYTHON_3_11",
        "PYTHON_3_12",
        "PYTHON_3_13",
        "PYTHON_3_14",
        "NODE_22"
      ]
    },
    "AgentRuntime":{
      "type":"structure",
      "required":[
        "agentRuntimeArn",
        "agentRuntimeId",
        "agentRuntimeVersion",
        "agentRuntimeName",
        "description",
        "lastUpdatedAt",
        "status"
      ],
      "members":{
        "agentRuntimeArn":{
          "shape":"AgentRuntimeArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the agent runtime.</p>"
        },
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the agent runtime.</p>"
        },
        "agentRuntimeVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The version of the agent runtime.</p>"
        },
        "agentRuntimeName":{
          "shape":"AgentRuntimeName",
          "documentation":"<p>The name of the agent runtime.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the agent runtime.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the agent runtime was last updated.</p>"
        },
        "status":{
          "shape":"AgentRuntimeStatus",
          "documentation":"<p>The current status of the agent runtime.</p>"
        }
      },
      "documentation":"<p>Contains information about an agent runtime. An agent runtime is the execution environment for a Amazon Bedrock AgentCore Agent.</p>"
    },
    "AgentRuntimeArn":{
      "type":"string",
      "pattern":"arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:agent/[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}:([0-9]{0,4}[1-9][0-9]{0,4})"
    },
    "AgentRuntimeArtifact":{
      "type":"structure",
      "members":{
        "containerConfiguration":{
          "shape":"ContainerConfiguration",
          "documentation":"<p>The container configuration for the agent artifact.</p>"
        },
        "codeConfiguration":{
          "shape":"CodeConfiguration",
          "documentation":"<p>The code configuration for the agent runtime artifact, including the source code location and execution settings.</p>"
        }
      },
      "documentation":"<p>The artifact of the agent.</p>",
      "union":true
    },
    "AgentRuntimeEndpoint":{
      "type":"structure",
      "required":[
        "name",
        "agentRuntimeEndpointArn",
        "agentRuntimeArn",
        "status",
        "id",
        "createdAt",
        "lastUpdatedAt"
      ],
      "members":{
        "name":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the agent runtime endpoint.</p>"
        },
        "liveVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The live version of the agent runtime endpoint. This is the version that is currently serving requests.</p>"
        },
        "targetVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The target version of the agent runtime endpoint. This is the version that the endpoint is being updated to.</p>"
        },
        "agentRuntimeEndpointArn":{
          "shape":"AgentRuntimeEndpointArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the agent runtime endpoint.</p>"
        },
        "agentRuntimeArn":{
          "shape":"AgentRuntimeArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the agent runtime associated with the endpoint.</p>"
        },
        "status":{
          "shape":"AgentRuntimeEndpointStatus",
          "documentation":"<p>The current status of the agent runtime endpoint.</p>"
        },
        "id":{
          "shape":"AgentRuntimeEndpointId",
          "documentation":"<p>The unique identifier of the agent runtime endpoint.</p>"
        },
        "description":{
          "shape":"AgentEndpointDescription",
          "documentation":"<p>The description of the agent runtime endpoint.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the agent runtime endpoint was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the agent runtime endpoint was last updated.</p>"
        }
      },
      "documentation":"<p>Contains information about an agent runtime endpoint. An endpoint provides a way to connect to and interact with an agent runtime.</p>"
    },
    "AgentRuntimeEndpointArn":{
      "type":"string",
      "pattern":"arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:agentEndpoint/[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}"
    },
    "AgentRuntimeEndpointId":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "AgentRuntimeEndpointStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "CREATE_FAILED",
        "UPDATING",
        "UPDATE_FAILED",
        "READY",
        "DELETING"
      ]
    },
    "AgentRuntimeEndpoints":{
      "type":"list",
      "member":{"shape":"AgentRuntimeEndpoint"}
    },
    "AgentRuntimeId":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "AgentRuntimeName":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}"
    },
    "AgentRuntimeStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "CREATE_FAILED",
        "UPDATING",
        "UPDATE_FAILED",
        "READY",
        "DELETING"
      ]
    },
    "AgentRuntimeVersion":{
      "type":"string",
      "max":5,
      "min":1,
      "pattern":"([1-9][0-9]{0,4})"
    },
    "AgentRuntimes":{
      "type":"list",
      "member":{"shape":"AgentRuntime"}
    },
    "AgentSkillsDescriptor":{
      "type":"structure",
      "members":{
        "skillMd":{
          "shape":"SkillMdDefinition",
          "documentation":"<p>The optional skill markdown definition describing the agent's skills in a human-readable format.</p>"
        },
        "skillDefinition":{
          "shape":"SkillDefinition",
          "documentation":"<p>The structured skill definition with schema version and content.</p>"
        }
      },
      "documentation":"<p>The agent skills descriptor for a registry record. Contains an optional skill markdown definition in human-readable format and an optional structured skill definition.</p>"
    },
    "AllowedAudience":{"type":"string"},
    "AllowedAudienceList":{
      "type":"list",
      "member":{"shape":"AllowedAudience"},
      "min":1
    },
    "AllowedClient":{"type":"string"},
    "AllowedClientsList":{
      "type":"list",
      "member":{"shape":"AllowedClient"},
      "min":1
    },
    "AllowedQueryParameters":{
      "type":"list",
      "member":{"shape":"HttpQueryParameterName"},
      "max":10,
      "min":1
    },
    "AllowedRequestHeaders":{
      "type":"list",
      "member":{"shape":"HttpHeaderName"},
      "max":10,
      "min":1
    },
    "AllowedResponseHeaders":{
      "type":"list",
      "member":{"shape":"HttpHeaderName"},
      "max":10,
      "min":1
    },
    "AllowedScopeType":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[\\x21\\x23-\\x5B\\x5D-\\x7E]+"
    },
    "AllowedScopesType":{
      "type":"list",
      "member":{"shape":"AllowedScopeType"},
      "min":1
    },
    "AllowedStringListValue":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "AllowedStringListValuesList":{
      "type":"list",
      "member":{"shape":"AllowedStringListValue"},
      "max":10,
      "min":1
    },
    "AllowedStringValue":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "AllowedStringValuesList":{
      "type":"list",
      "member":{"shape":"AllowedStringValue"},
      "max":10,
      "min":1
    },
    "ApiGatewayTargetConfiguration":{
      "type":"structure",
      "required":[
        "restApiId",
        "stage",
        "apiGatewayToolConfiguration"
      ],
      "members":{
        "restApiId":{
          "shape":"String",
          "documentation":"<p>The ID of the API Gateway REST API.</p>"
        },
        "stage":{
          "shape":"String",
          "documentation":"<p>The ID of the stage of the REST API to add as a target.</p>"
        },
        "apiGatewayToolConfiguration":{
          "shape":"ApiGatewayToolConfiguration",
          "documentation":"<p>The configuration for defining REST API tool filters and overrides for the gateway target.</p>"
        }
      },
      "documentation":"<p>The configuration for an Amazon API Gateway target.</p>"
    },
    "ApiGatewayToolConfiguration":{
      "type":"structure",
      "required":["toolFilters"],
      "members":{
        "toolOverrides":{
          "shape":"ApiGatewayToolOverrides",
          "documentation":"<p>A list of explicit tool definitions with optional custom names and descriptions.</p>"
        },
        "toolFilters":{
          "shape":"ApiGatewayToolFilters",
          "documentation":"<p>A list of path and method patterns to expose as tools using metadata from the REST API's OpenAPI specification.</p>"
        }
      },
      "documentation":"<p>The configuration for defining REST API tool filters and overrides for the gateway target.</p>"
    },
    "ApiGatewayToolFilter":{
      "type":"structure",
      "required":[
        "filterPath",
        "methods"
      ],
      "members":{
        "filterPath":{
          "shape":"String",
          "documentation":"<p>Resource path to match in the REST API. Supports exact paths (for example, <code>/pets</code>) or wildcard paths (for example, <code>/pets/*</code> to match all paths under <code>/pets</code>). Must match existing paths in the REST API.</p>"
        },
        "methods":{
          "shape":"RestApiMethods",
          "documentation":"<p>The methods to filter for.</p>"
        }
      },
      "documentation":"<p>Specifies which operations from an API Gateway REST API are exposed as tools. Tool names and descriptions are derived from the operationId and description fields in the API's exported OpenAPI specification.</p>"
    },
    "ApiGatewayToolFilters":{
      "type":"list",
      "member":{"shape":"ApiGatewayToolFilter"}
    },
    "ApiGatewayToolOverride":{
      "type":"structure",
      "required":[
        "name",
        "path",
        "method"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of tool. Identifies the tool in the Model Context Protocol.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description of the tool. Provides information about the purpose and usage of the tool. If not provided, uses the description from the API's OpenAPI specification.</p>"
        },
        "path":{
          "shape":"String",
          "documentation":"<p>Resource path in the REST API (e.g., <code>/pets</code>). Must explicitly match an existing path in the REST API.</p>"
        },
        "method":{
          "shape":"RestApiMethod",
          "documentation":"<p>The HTTP method to expose for the specified path.</p>"
        }
      },
      "documentation":"<p>Settings to override configurations for a tool.</p>"
    },
    "ApiGatewayToolOverrides":{
      "type":"list",
      "member":{"shape":"ApiGatewayToolOverride"}
    },
    "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-.]+"
    },
    "ApiKeyCredentialLocation":{
      "type":"string",
      "enum":[
        "HEADER",
        "QUERY_PARAMETER"
      ]
    },
    "ApiKeyCredentialParameterName":{
      "type":"string",
      "max":64,
      "min":1
    },
    "ApiKeyCredentialPrefix":{
      "type":"string",
      "max":64,
      "min":1
    },
    "ApiKeyCredentialProvider":{
      "type":"structure",
      "required":["providerArn"],
      "members":{
        "providerArn":{
          "shape":"ApiKeyCredentialProviderArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the API key credential provider. This ARN identifies the provider in Amazon Web Services.</p>"
        },
        "credentialParameterName":{
          "shape":"ApiKeyCredentialParameterName",
          "documentation":"<p>The name of the credential parameter for the API key. This parameter name is used when sending the API key to the target endpoint.</p>"
        },
        "credentialPrefix":{
          "shape":"ApiKeyCredentialPrefix",
          "documentation":"<p>The prefix for the API key credential. This prefix is added to the API key when sending it to the target endpoint.</p>"
        },
        "credentialLocation":{
          "shape":"ApiKeyCredentialLocation",
          "documentation":"<p>The location of the API key credential. This field specifies where in the request the API key should be placed.</p>"
        }
      },
      "documentation":"<p>An API key credential provider for gateway authentication. This structure contains the configuration for authenticating with the target endpoint using an API key.</p>"
    },
    "ApiKeyCredentialProviderArn":{
      "type":"string",
      "pattern":"arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)"
    },
    "ApiKeyCredentialProviderArnType":{
      "type":"string",
      "pattern":"arn:(aws|aws-us-gov):acps:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/apikeycredentialprovider/[a-zA-Z0-9-.]+"
    },
    "ApiKeyCredentialProviderItem":{
      "type":"structure",
      "required":[
        "name",
        "credentialProviderArn",
        "createdTime",
        "lastUpdatedTime"
      ],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the API key credential provider.</p>"
        },
        "credentialProviderArn":{
          "shape":"ApiKeyCredentialProviderArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the API key credential provider.</p>"
        },
        "createdTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the API key credential provider was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the API key credential provider was last updated.</p>"
        }
      },
      "documentation":"<p>Contains information about an API key credential provider.</p>"
    },
    "ApiKeyCredentialProviders":{
      "type":"list",
      "member":{"shape":"ApiKeyCredentialProviderItem"}
    },
    "ApiKeyType":{
      "type":"string",
      "max":65536,
      "min":1,
      "sensitive":true
    },
    "ApiSchemaConfiguration":{
      "type":"structure",
      "members":{
        "s3":{"shape":"S3Configuration"},
        "inlinePayload":{
          "shape":"InlinePayload",
          "documentation":"<p>The inline payload containing the API schema definition.</p>"
        }
      },
      "documentation":"<p>Configuration for API schema.</p>",
      "union":true
    },
    "ApprovalConfiguration":{
      "type":"structure",
      "members":{
        "autoApproval":{
          "shape":"Boolean",
          "documentation":"<p>Whether registry records are auto-approved. When set to <code>true</code>, records are automatically approved upon creation. When set to <code>false</code> (the default), records require explicit approval for security purposes.</p>"
        }
      },
      "documentation":"<p>Configuration for the registry record approval workflow. Controls whether records added to the registry require explicit approval before becoming active.</p>"
    },
    "Arn":{
      "type":"string",
      "pattern":"arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}"
    },
    "AtlassianOauth2ProviderConfigInput":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Atlassian OAuth2 provider. This identifier is assigned by Atlassian when you register your application.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecretType",
          "documentation":"<p>The client secret for the Atlassian OAuth2 provider. This secret is assigned by Atlassian and used along with the client ID to authenticate your application.</p>"
        }
      },
      "documentation":"<p>Configuration settings for connecting to Atlassian services using OAuth2 authentication. This includes the client credentials required to authenticate with Atlassian's OAuth2 authorization server.</p>"
    },
    "AtlassianOauth2ProviderConfigOutput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{"shape":"Oauth2Discovery"},
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Atlassian OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>The configuration details returned for an Atlassian OAuth2 provider, including the client ID and OAuth2 discovery information.</p>"
    },
    "AuthorizationData":{
      "type":"structure",
      "members":{
        "oauth2":{
          "shape":"OAuth2AuthorizationData",
          "documentation":"<p>OAuth2 authorization data for the gateway target.</p>"
        }
      },
      "documentation":"<p>Contains the authorization data that is returned when a gateway target is configured with a credential provider with authorization code grant type and requires user federation.</p>",
      "union":true
    },
    "AuthorizationEndpointType":{"type":"string"},
    "AuthorizerConfiguration":{
      "type":"structure",
      "members":{
        "customJWTAuthorizer":{
          "shape":"CustomJWTAuthorizerConfiguration",
          "documentation":"<p>The inbound JWT-based authorization, specifying how incoming requests should be authenticated.</p>"
        }
      },
      "documentation":"<p>Represents inbound authorization configuration options used to authenticate incoming requests. </p>",
      "union":true
    },
    "AuthorizerType":{
      "type":"string",
      "enum":[
        "CUSTOM_JWT",
        "AWS_IAM",
        "NONE",
        "AUTHENTICATE_ONLY"
      ]
    },
    "AuthorizingClaimMatchValueType":{
      "type":"structure",
      "required":[
        "claimMatchValue",
        "claimMatchOperator"
      ],
      "members":{
        "claimMatchValue":{
          "shape":"ClaimMatchValueType",
          "documentation":"<p>The value or values to match for.</p>"
        },
        "claimMatchOperator":{
          "shape":"ClaimMatchOperatorType",
          "documentation":"<p>Defines the relationship between the claim field value and the value or values you're matching for.</p>"
        }
      },
      "documentation":"<p>Defines the value or values to match for and the relationship of the match.</p>"
    },
    "AwsAccountId":{
      "type":"string",
      "pattern":"[0-9]{12}"
    },
    "BedrockAgentcoreResourceArn":{
      "type":"string",
      "max":1011,
      "min":20
    },
    "BedrockEvaluatorModelConfig":{
      "type":"structure",
      "required":["modelId"],
      "members":{
        "modelId":{
          "shape":"ModelId",
          "documentation":"<p> The identifier of the Amazon Bedrock model to use for evaluation. Must be a supported foundation model available in your region. </p>"
        },
        "inferenceConfig":{
          "shape":"InferenceConfiguration",
          "documentation":"<p> The inference configuration parameters that control model behavior during evaluation, including temperature, token limits, and sampling settings. </p>"
        },
        "additionalModelRequestFields":{
          "shape":"AdditionalModelRequestFields",
          "documentation":"<p> Additional model-specific request fields to customize model behavior beyond the standard inference configuration. </p>"
        }
      },
      "documentation":"<p> The configuration for using Amazon Bedrock models in evaluator assessments, including model selection and inference parameters. </p>"
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "BranchName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z][a-zA-Z0-9_/-]{0,127}"
    },
    "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 type of browser enterprise policy. Available values are <code>MANAGED</code> and <code>RECOMMENDED</code>.</p>"
        }
      },
      "documentation":"<p>Browser enterprise policy configuration.</p>"
    },
    "BrowserEnterprisePolicyType":{
      "type":"string",
      "enum":[
        "MANAGED",
        "RECOMMENDED"
      ]
    },
    "BrowserId":{
      "type":"string",
      "pattern":"(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})"
    },
    "BrowserNetworkConfiguration":{
      "type":"structure",
      "required":["networkMode"],
      "members":{
        "networkMode":{
          "shape":"BrowserNetworkMode",
          "documentation":"<p>The network mode for the browser. This field specifies how the browser connects to the network.</p>"
        },
        "vpcConfig":{"shape":"VpcConfig"}
      },
      "documentation":"<p>The network configuration for a browser. This structure defines how the browser connects to the network.</p>"
    },
    "BrowserNetworkMode":{
      "type":"string",
      "enum":[
        "PUBLIC",
        "VPC"
      ]
    },
    "BrowserProfileArn":{
      "type":"string",
      "pattern":"arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:browser-profile/[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}"
    },
    "BrowserProfileId":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}"
    },
    "BrowserProfileName":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}"
    },
    "BrowserProfileStatus":{
      "type":"string",
      "documentation":"<p>The status of a browser profile.</p>",
      "enum":[
        "READY",
        "DELETING",
        "DELETED",
        "SAVING"
      ]
    },
    "BrowserProfileSummaries":{
      "type":"list",
      "member":{"shape":"BrowserProfileSummary"}
    },
    "BrowserProfileSummary":{
      "type":"structure",
      "required":[
        "profileId",
        "profileArn",
        "name",
        "status",
        "createdAt",
        "lastUpdatedAt"
      ],
      "members":{
        "profileId":{
          "shape":"BrowserProfileId",
          "documentation":"<p>The unique identifier of the browser profile.</p>"
        },
        "profileArn":{
          "shape":"BrowserProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the browser profile.</p>"
        },
        "name":{
          "shape":"BrowserProfileName",
          "documentation":"<p>The name of the browser profile.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the browser profile.</p>"
        },
        "status":{
          "shape":"BrowserProfileStatus",
          "documentation":"<p>The current status of the browser profile. Possible values include READY, SAVING, DELETING, and DELETED.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser profile was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser profile was last updated.</p>"
        },
        "lastSavedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when browser session data was last saved to this profile.</p>"
        },
        "lastSavedBrowserSessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The identifier of the browser session from which data was last saved to this profile.</p>"
        },
        "lastSavedBrowserId":{
          "shape":"BrowserId",
          "documentation":"<p>The identifier of the browser from which data was last saved to this profile.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a browser profile. A browser profile stores persistent browser data that can be reused across browser sessions.</p>"
    },
    "BrowserSessionId":{
      "type":"string",
      "pattern":"[0-9a-zA-Z]{1,40}"
    },
    "BrowserSigningConfigInput":{
      "type":"structure",
      "required":["enabled"],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether browser signing is enabled. When enabled, the browser will cryptographically sign HTTP requests to identify itself as an AI agent to bot control vendors.</p>"
        }
      },
      "documentation":"<p>Configuration for enabling browser signing capabilities that allow agents to cryptographically identify themselves to websites using HTTP message signatures.</p>"
    },
    "BrowserSigningConfigOutput":{
      "type":"structure",
      "required":["enabled"],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether browser signing is currently enabled for cryptographic agent identification using HTTP message signatures.</p>"
        }
      },
      "documentation":"<p>The current browser signing configuration that shows whether cryptographic agent identification is enabled for web bot authentication.</p>"
    },
    "BrowserStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "CREATE_FAILED",
        "READY",
        "DELETING",
        "DELETE_FAILED",
        "DELETED"
      ]
    },
    "BrowserSummaries":{
      "type":"list",
      "member":{"shape":"BrowserSummary"}
    },
    "BrowserSummary":{
      "type":"structure",
      "required":[
        "browserId",
        "browserArn",
        "status",
        "createdAt"
      ],
      "members":{
        "browserId":{
          "shape":"BrowserId",
          "documentation":"<p>The unique identifier of the browser.</p>"
        },
        "browserArn":{
          "shape":"BrowserArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the browser.</p>"
        },
        "name":{
          "shape":"SandboxName",
          "documentation":"<p>The name of the browser.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the browser.</p>"
        },
        "status":{
          "shape":"BrowserStatus",
          "documentation":"<p>The current status of the browser.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a browser. A browser enables Amazon Bedrock AgentCore Agent to interact with web content.</p>"
    },
    "CategoricalScaleDefinition":{
      "type":"structure",
      "required":[
        "definition",
        "label"
      ],
      "members":{
        "definition":{
          "shape":"String",
          "documentation":"<p> The description that explains what this categorical rating represents and when it should be used. </p>"
        },
        "label":{
          "shape":"CategoricalScaleDefinitionLabelString",
          "documentation":"<p> The label or name of this categorical rating option. </p>"
        }
      },
      "documentation":"<p> The definition of a categorical rating scale option that provides a named category with its description for evaluation scoring. </p>"
    },
    "CategoricalScaleDefinitionLabelString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "CategoricalScaleDefinitions":{
      "type":"list",
      "member":{"shape":"CategoricalScaleDefinition"}
    },
    "CedarPolicy":{
      "type":"structure",
      "required":["statement"],
      "members":{
        "statement":{
          "shape":"Statement",
          "documentation":"<p>The Cedar policy statement that defines the authorization logic. This statement follows Cedar syntax and specifies principals, actions, resources, and conditions that determine when access should be allowed or denied.</p>"
        }
      },
      "documentation":"<p>Represents a Cedar policy statement within the AgentCore Policy system. Cedar is a policy language designed for authorization that provides human-readable, analyzable, and high-performance policy evaluation for controlling agent behavior and access decisions. </p>"
    },
    "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.</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
    },
    "ClaimMatchOperatorType":{
      "type":"string",
      "enum":[
        "EQUALS",
        "CONTAINS",
        "CONTAINS_ANY"
      ]
    },
    "ClaimMatchValueType":{
      "type":"structure",
      "members":{
        "matchValueString":{
          "shape":"MatchValueString",
          "documentation":"<p>The string value to match for.</p>"
        },
        "matchValueStringList":{
          "shape":"MatchValueStringList",
          "documentation":"<p>An array of strings to check for a match.</p>"
        }
      },
      "documentation":"<p>The value or values to match for.</p> <ul> <li> <p>Include a <code>matchValueString</code> with the <code>EQUALS</code> operator to specify a string that matches the claim field value.</p> </li> <li> <p>Include a <code>matchValueArray</code> to specify an array of string values. You can use the following operators:</p> <ul> <li> <p>Use <code>CONTAINS</code> to yield a match if the claim field value is in the array.</p> </li> <li> <p>Use <code>CONTAINS_ANY</code> to yield a match if the claim field value contains any of the strings in the array.</p> </li> </ul> </li> </ul>",
      "union":true
    },
    "ClientAuthenticationMethodType":{
      "type":"string",
      "enum":[
        "CLIENT_SECRET_BASIC",
        "CLIENT_SECRET_POST",
        "AWS_IAM_ID_TOKEN_JWT"
      ]
    },
    "ClientIdType":{
      "type":"string",
      "max":256,
      "min":1
    },
    "ClientSecretType":{
      "type":"string",
      "max":2048,
      "min":1,
      "sensitive":true
    },
    "ClientToken":{
      "type":"string",
      "max":256,
      "min":33,
      "pattern":"[a-zA-Z0-9](-*[a-zA-Z0-9]){0,256}"
    },
    "CloudWatchLogsInputConfig":{
      "type":"structure",
      "required":[
        "logGroupNames",
        "serviceNames"
      ],
      "members":{
        "logGroupNames":{
          "shape":"CloudWatchLogsInputConfigLogGroupNamesList",
          "documentation":"<p> The list of CloudWatch log group names to monitor for agent traces.</p>"
        },
        "serviceNames":{
          "shape":"CloudWatchLogsInputConfigServiceNamesList",
          "documentation":"<p> The list of service names to filter traces within the specified log groups. Used to identify relevant agent sessions. </p>"
        }
      },
      "documentation":"<p> The configuration for reading agent traces from CloudWatch logs as input for online evaluation. </p>"
    },
    "CloudWatchLogsInputConfigLogGroupNamesList":{
      "type":"list",
      "member":{"shape":"LogGroupName"},
      "max":5,
      "min":1
    },
    "CloudWatchLogsInputConfigServiceNamesList":{
      "type":"list",
      "member":{"shape":"ServiceName"},
      "max":1,
      "min":1
    },
    "CloudWatchOutputConfig":{
      "type":"structure",
      "required":["logGroupName"],
      "members":{
        "logGroupName":{
          "shape":"LogGroupName",
          "documentation":"<p> The name of the CloudWatch log group where evaluation results will be written. The log group will be created if it doesn't exist. </p>"
        }
      },
      "documentation":"<p> The configuration for writing evaluation results to CloudWatch logs with embedded metric format (EMF) for monitoring. </p>"
    },
    "Code":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"S3Location",
          "documentation":"<p>The Amazon Amazon S3 object that contains the source code for the agent runtime.</p>"
        }
      },
      "documentation":"<p>The source code configuration that specifies the location and details of the code to be executed.</p>",
      "union":true
    },
    "CodeBasedEvaluatorConfig":{
      "type":"structure",
      "members":{
        "lambdaConfig":{
          "shape":"LambdaEvaluatorConfig",
          "documentation":"<p> The Lambda function configuration for code-based evaluation. </p>"
        }
      },
      "documentation":"<p> Configuration for a code-based evaluator. Specify the Lambda function to use for evaluation. </p>",
      "union":true
    },
    "CodeConfiguration":{
      "type":"structure",
      "required":[
        "code",
        "runtime",
        "entryPoint"
      ],
      "members":{
        "code":{
          "shape":"Code",
          "documentation":"<p>The source code location and configuration details.</p>"
        },
        "runtime":{
          "shape":"AgentManagedRuntimeType",
          "documentation":"<p>The runtime environment for executing the agent code. Specify the programming language and version to use for the agent runtime. For valid values, see the list of supported runtimes.</p>"
        },
        "entryPoint":{
          "shape":"CodeConfigurationEntryPointList",
          "documentation":"<p>The entry point for the code execution, specifying the function or method that should be invoked when the code runs.</p>"
        }
      },
      "documentation":"<p>The configuration for the source code that defines how the agent runtime code should be executed, including the code location, runtime environment, and entry point.</p>"
    },
    "CodeConfigurationEntryPointList":{
      "type":"list",
      "member":{"shape":"entryPoint"},
      "max":2,
      "min":1
    },
    "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})"
    },
    "CodeInterpreterId":{
      "type":"string",
      "pattern":"(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})"
    },
    "CodeInterpreterNetworkConfiguration":{
      "type":"structure",
      "required":["networkMode"],
      "members":{
        "networkMode":{
          "shape":"CodeInterpreterNetworkMode",
          "documentation":"<p>The network mode for the code interpreter. This field specifies how the code interpreter connects to the network.</p>"
        },
        "vpcConfig":{"shape":"VpcConfig"}
      },
      "documentation":"<p>The network configuration for a code interpreter. This structure defines how the code interpreter connects to the network.</p>"
    },
    "CodeInterpreterNetworkMode":{
      "type":"string",
      "enum":[
        "PUBLIC",
        "SANDBOX",
        "VPC"
      ]
    },
    "CodeInterpreterStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "CREATE_FAILED",
        "READY",
        "DELETING",
        "DELETE_FAILED",
        "DELETED"
      ]
    },
    "CodeInterpreterSummaries":{
      "type":"list",
      "member":{"shape":"CodeInterpreterSummary"}
    },
    "CodeInterpreterSummary":{
      "type":"structure",
      "required":[
        "codeInterpreterId",
        "codeInterpreterArn",
        "status",
        "createdAt"
      ],
      "members":{
        "codeInterpreterId":{
          "shape":"CodeInterpreterId",
          "documentation":"<p>The unique identifier of the code interpreter.</p>"
        },
        "codeInterpreterArn":{
          "shape":"CodeInterpreterArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the code interpreter.</p>"
        },
        "name":{
          "shape":"SandboxName",
          "documentation":"<p>The name of the code interpreter.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the code interpreter.</p>"
        },
        "status":{
          "shape":"CodeInterpreterStatus",
          "documentation":"<p>The current status of the code interpreter.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the code interpreter was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the code interpreter was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a code interpreter. A code interpreter enables Amazon Bedrock AgentCore Agent to execute code.</p>"
    },
    "ComponentConfiguration":{
      "type":"structure",
      "required":["configuration"],
      "members":{
        "configuration":{
          "shape":"Document",
          "documentation":"<p>The configuration values as a flexible JSON document.</p>"
        }
      },
      "documentation":"<p>The configuration for a component within a configuration bundle. The component type is inferred from the component identifier ARN.</p>",
      "sensitive":true
    },
    "ComponentConfigurationMap":{
      "type":"map",
      "key":{"shape":"ComponentIdentifier"},
      "value":{"shape":"ComponentConfiguration"}
    },
    "ComponentIdentifier":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"[a-zA-Z][a-zA-Z0-9_:/.\\-]{0,2047}"
    },
    "ConcurrentModificationException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Exception thrown when a resource is modified concurrently by multiple requests.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "Condition":{
      "type":"structure",
      "members":{
        "matchPrincipals":{
          "shape":"MatchPrincipals",
          "documentation":"<p>A condition that matches on the identity of the caller making the request.</p>"
        },
        "matchPaths":{
          "shape":"MatchPaths",
          "documentation":"<p>A condition that matches on the request path.</p>"
        }
      },
      "documentation":"<p>A condition that determines when a gateway rule applies. Conditions can match on principals or request paths.</p>",
      "union":true
    },
    "Conditions":{
      "type":"list",
      "member":{"shape":"Condition"},
      "max":2,
      "min":1
    },
    "ConfigurationBundleAction":{
      "type":"structure",
      "members":{
        "staticOverride":{
          "shape":"StaticOverride",
          "documentation":"<p>A static configuration bundle override that applies a single bundle version to all matching requests.</p>"
        },
        "weightedOverride":{
          "shape":"WeightedOverride",
          "documentation":"<p>A weighted configuration bundle override that splits traffic between multiple bundle versions based on configured weights.</p>"
        }
      },
      "documentation":"<p>An action that applies a configuration bundle override, either as a static override or a weighted split for A/B testing.</p>",
      "union":true
    },
    "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}"
    },
    "ConfigurationBundleDescription":{
      "type":"string",
      "max":500,
      "min":1,
      "pattern":".+",
      "sensitive":true
    },
    "ConfigurationBundleId":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "ConfigurationBundleName":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,99}"
    },
    "ConfigurationBundleReference":{
      "type":"structure",
      "required":[
        "bundleArn",
        "bundleVersion"
      ],
      "members":{
        "bundleArn":{
          "shape":"GatewayConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle.</p>"
        },
        "bundleVersion":{
          "shape":"ConfigurationBundleReferenceBundleVersionString",
          "documentation":"<p>The version of the configuration bundle.</p>"
        }
      },
      "documentation":"<p>A reference to a specific version of a configuration bundle.</p>"
    },
    "ConfigurationBundleReferenceBundleVersionString":{
      "type":"string",
      "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "ConfigurationBundleStatus":{
      "type":"string",
      "enum":[
        "ACTIVE",
        "CREATING",
        "CREATE_FAILED",
        "UPDATING",
        "UPDATE_FAILED",
        "DELETING",
        "DELETE_FAILED"
      ]
    },
    "ConfigurationBundleSummary":{
      "type":"structure",
      "required":[
        "bundleArn",
        "bundleId",
        "bundleName"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle.</p>"
        },
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the configuration bundle.</p>"
        },
        "bundleName":{
          "shape":"ConfigurationBundleName",
          "documentation":"<p>The name of the configuration bundle.</p>"
        },
        "description":{
          "shape":"ConfigurationBundleDescription",
          "documentation":"<p>The description of the configuration bundle.</p>"
        }
      },
      "documentation":"<p>Summary information about a configuration bundle.</p>"
    },
    "ConfigurationBundleSummaryList":{
      "type":"list",
      "member":{"shape":"ConfigurationBundleSummary"}
    },
    "ConfigurationBundleVersion":{
      "type":"string",
      "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "ConfigurationBundleVersionList":{
      "type":"list",
      "member":{"shape":"ConfigurationBundleVersion"}
    },
    "ConfigurationBundleVersionSummary":{
      "type":"structure",
      "required":[
        "bundleArn",
        "bundleId",
        "versionId",
        "versionCreatedAt"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle.</p>"
        },
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the configuration bundle.</p>"
        },
        "versionId":{
          "shape":"ConfigurationBundleVersion",
          "documentation":"<p>The version identifier of this configuration bundle version.</p>"
        },
        "lineageMetadata":{
          "shape":"VersionLineageMetadata",
          "documentation":"<p>The version lineage metadata, including parent versions, branch name, and creation source.</p>"
        },
        "versionCreatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when this version was created.</p>"
        }
      },
      "documentation":"<p>Summary information about a configuration bundle version.</p>"
    },
    "ConfigurationBundleVersionSummaryList":{
      "type":"list",
      "member":{"shape":"ConfigurationBundleVersionSummary"}
    },
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>This exception is thrown when there is a conflict performing an operation</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "ConsolidationConfiguration":{
      "type":"structure",
      "members":{
        "customConsolidationConfiguration":{
          "shape":"CustomConsolidationConfiguration",
          "documentation":"<p>The custom consolidation configuration.</p>"
        }
      },
      "documentation":"<p>Contains consolidation configuration information for a memory strategy.</p>",
      "union":true
    },
    "ContainerConfiguration":{
      "type":"structure",
      "required":["containerUri"],
      "members":{
        "containerUri":{
          "shape":"RuntimeContainerUri",
          "documentation":"<p>The ECR URI of the container.</p>"
        }
      },
      "documentation":"<p>Representation of a container configuration.</p>"
    },
    "Content":{
      "type":"structure",
      "members":{
        "rawText":{
          "shape":"NaturalLanguage",
          "documentation":"<p>The raw text content containing natural language descriptions of desired policy behavior. This text is processed by AI to generate corresponding Cedar policy statements that match the described intent.</p>"
        }
      },
      "documentation":"<p>Represents content input for policy generation operations. This structure encapsulates the natural language descriptions or other content formats that are used as input for AI-powered policy generation.</p>",
      "union":true
    },
    "ContentConfiguration":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"ContentType",
          "documentation":"<p>Type of content to stream.</p>"
        },
        "level":{
          "shape":"ContentLevel",
          "documentation":"<p>Level of detail for streamed content.</p>"
        }
      },
      "documentation":"<p>Defines what content to stream and at what level of detail.</p>"
    },
    "ContentLevel":{
      "type":"string",
      "enum":[
        "METADATA_ONLY",
        "FULL_CONTENT"
      ]
    },
    "ContentType":{
      "type":"string",
      "enum":["MEMORY_RECORDS"]
    },
    "CreateAgentRuntimeEndpointRequest":{
      "type":"structure",
      "required":[
        "agentRuntimeId",
        "name"
      ],
      "members":{
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime to create an endpoint for.</p>",
          "location":"uri",
          "locationName":"agentRuntimeId"
        },
        "name":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the AgentCore Runtime endpoint.</p>"
        },
        "agentRuntimeVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The version of the AgentCore Runtime to use for the endpoint.</p>"
        },
        "description":{
          "shape":"AgentEndpointDescription",
          "documentation":"<p>The description of the AgentCore Runtime endpoint.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to the agent runtime endpoint. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateAgentRuntimeEndpointResponse":{
      "type":"structure",
      "required":[
        "targetVersion",
        "agentRuntimeEndpointArn",
        "agentRuntimeArn",
        "status",
        "createdAt"
      ],
      "members":{
        "targetVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The target version of the AgentCore Runtime for the endpoint.</p>"
        },
        "agentRuntimeEndpointArn":{
          "shape":"AgentRuntimeEndpointArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the AgentCore Runtime endpoint.</p>"
        },
        "agentRuntimeArn":{
          "shape":"AgentRuntimeArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the AgentCore Runtime.</p>"
        },
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime.</p>"
        },
        "endpointName":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the AgentCore Runtime endpoint.</p>"
        },
        "status":{
          "shape":"AgentRuntimeEndpointStatus",
          "documentation":"<p>The current status of the AgentCore Runtime endpoint.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime endpoint was created.</p>"
        }
      }
    },
    "CreateAgentRuntimeRequest":{
      "type":"structure",
      "required":[
        "agentRuntimeName",
        "agentRuntimeArtifact",
        "roleArn",
        "networkConfiguration"
      ],
      "members":{
        "agentRuntimeName":{
          "shape":"AgentRuntimeName",
          "documentation":"<p>The name of the AgentCore Runtime.</p>"
        },
        "agentRuntimeArtifact":{
          "shape":"AgentRuntimeArtifact",
          "documentation":"<p>The artifact of the AgentCore Runtime.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM role ARN that provides permissions for the AgentCore Runtime.</p>"
        },
        "networkConfiguration":{
          "shape":"NetworkConfiguration",
          "documentation":"<p>The network configuration for the AgentCore Runtime.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the AgentCore Runtime.</p>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The authorizer configuration for the AgentCore Runtime.</p>"
        },
        "requestHeaderConfiguration":{
          "shape":"RequestHeaderConfiguration",
          "documentation":"<p>Configuration for HTTP request headers that will be passed through to the runtime.</p>"
        },
        "protocolConfiguration":{"shape":"ProtocolConfiguration"},
        "lifecycleConfiguration":{
          "shape":"LifecycleConfiguration",
          "documentation":"<p>The life cycle configuration for the AgentCore Runtime.</p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariablesMap",
          "documentation":"<p>Environment variables to set in the AgentCore Runtime environment.</p>"
        },
        "filesystemConfigurations":{
          "shape":"FilesystemConfigurations",
          "documentation":"<p>The filesystem configurations to mount into the AgentCore Runtime. Use filesystem configurations to provide persistent storage to your AgentCore Runtime sessions.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to the agent runtime. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateAgentRuntimeResponse":{
      "type":"structure",
      "required":[
        "agentRuntimeArn",
        "agentRuntimeId",
        "agentRuntimeVersion",
        "createdAt",
        "status"
      ],
      "members":{
        "agentRuntimeArn":{
          "shape":"AgentRuntimeArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the AgentCore Runtime.</p>"
        },
        "workloadIdentityDetails":{
          "shape":"WorkloadIdentityDetails",
          "documentation":"<p>The workload identity details for the AgentCore Runtime.</p>"
        },
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime.</p>"
        },
        "agentRuntimeVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The version of the AgentCore Runtime.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime was created.</p>"
        },
        "status":{
          "shape":"AgentRuntimeStatus",
          "documentation":"<p>The current status of the AgentCore Runtime.</p>"
        }
      }
    },
    "CreateApiKeyCredentialProviderRequest":{
      "type":"structure",
      "required":[
        "name",
        "apiKey"
      ],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the API key credential provider. The name must be unique within your account.</p>"
        },
        "apiKey":{
          "shape":"ApiKeyType",
          "documentation":"<p>The API key to use for authentication. This value is encrypted and stored securely.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to the API key credential provider. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateApiKeyCredentialProviderResponse":{
      "type":"structure",
      "required":[
        "apiKeySecretArn",
        "name",
        "credentialProviderArn"
      ],
      "members":{
        "apiKeySecretArn":{
          "shape":"Secret",
          "documentation":"<p>The Amazon Resource Name (ARN) of the secret containing the API key.</p>"
        },
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the created API key credential provider.</p>"
        },
        "credentialProviderArn":{
          "shape":"ApiKeyCredentialProviderArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created API key credential provider.</p>"
        }
      }
    },
    "CreateBrowserProfileRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"BrowserProfileName",
          "documentation":"<p>The name of the browser profile. The name must be unique within your account and can contain alphanumeric characters and underscores.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the browser profile. Use this field to describe the purpose or contents of the profile.</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 AgentCore ignores the request but does not return an error.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to the browser profile. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateBrowserProfileResponse":{
      "type":"structure",
      "required":[
        "profileId",
        "profileArn",
        "createdAt",
        "status"
      ],
      "members":{
        "profileId":{
          "shape":"BrowserProfileId",
          "documentation":"<p>The unique identifier of the created browser profile.</p>"
        },
        "profileArn":{
          "shape":"BrowserProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created browser profile.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser profile was created.</p>"
        },
        "status":{
          "shape":"BrowserProfileStatus",
          "documentation":"<p>The current status of the browser profile.</p>"
        }
      }
    },
    "CreateBrowserRequest":{
      "type":"structure",
      "required":[
        "name",
        "networkConfiguration"
      ],
      "members":{
        "name":{
          "shape":"SandboxName",
          "documentation":"<p>The name of the browser. The name must be unique within your account.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the browser.</p>"
        },
        "executionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for the browser to access Amazon Web Services services.</p>"
        },
        "networkConfiguration":{
          "shape":"BrowserNetworkConfiguration",
          "documentation":"<p>The network configuration for the browser. This configuration specifies the network mode for the browser.</p>"
        },
        "recording":{
          "shape":"RecordingConfig",
          "documentation":"<p>The recording configuration for the browser. When enabled, browser sessions are recorded and stored in the specified Amazon S3 location.</p>"
        },
        "browserSigning":{
          "shape":"BrowserSigningConfigInput",
          "documentation":"<p>The browser signing configuration that enables cryptographic agent identification using HTTP message signatures for web bot authentication.</p>"
        },
        "enterprisePolicies":{
          "shape":"BrowserEnterprisePolicies",
          "documentation":"<p>A list of enterprise policy files for the browser.</p>"
        },
        "certificates":{
          "shape":"Certificates",
          "documentation":"<p>A list of certificates to install in the browser.</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 AgentCore ignores the request but does not return an error.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to the browser. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateBrowserResponse":{
      "type":"structure",
      "required":[
        "browserId",
        "browserArn",
        "createdAt",
        "status"
      ],
      "members":{
        "browserId":{
          "shape":"BrowserId",
          "documentation":"<p>The unique identifier of the created browser.</p>"
        },
        "browserArn":{
          "shape":"BrowserArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created browser.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser was created.</p>"
        },
        "status":{
          "shape":"BrowserStatus",
          "documentation":"<p>The current status of the browser.</p>"
        }
      }
    },
    "CreateCodeInterpreterRequest":{
      "type":"structure",
      "required":[
        "name",
        "networkConfiguration"
      ],
      "members":{
        "name":{
          "shape":"SandboxName",
          "documentation":"<p>The name of the code interpreter. The name must be unique within your account.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the code interpreter.</p>"
        },
        "executionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for the code interpreter to access Amazon Web Services services.</p>"
        },
        "networkConfiguration":{
          "shape":"CodeInterpreterNetworkConfiguration",
          "documentation":"<p>The network configuration for the code interpreter. This configuration specifies the network mode for the code interpreter.</p>"
        },
        "certificates":{
          "shape":"Certificates",
          "documentation":"<p>A list of certificates to install in the code interpreter.</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 AgentCore ignores the request but does not return an error.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to the code interpreter. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateCodeInterpreterResponse":{
      "type":"structure",
      "required":[
        "codeInterpreterId",
        "codeInterpreterArn",
        "createdAt",
        "status"
      ],
      "members":{
        "codeInterpreterId":{
          "shape":"CodeInterpreterId",
          "documentation":"<p>The unique identifier of the created code interpreter.</p>"
        },
        "codeInterpreterArn":{
          "shape":"CodeInterpreterArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created code interpreter.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the code interpreter was created.</p>"
        },
        "status":{
          "shape":"CodeInterpreterStatus",
          "documentation":"<p>The current status of the code interpreter.</p>"
        }
      }
    },
    "CreateConfigurationBundleRequest":{
      "type":"structure",
      "required":[
        "bundleName",
        "components"
      ],
      "members":{
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "bundleName":{
          "shape":"ConfigurationBundleName",
          "documentation":"<p>The name for the configuration bundle. Names must be unique within your account.</p>"
        },
        "description":{
          "shape":"ConfigurationBundleDescription",
          "documentation":"<p>The description for the configuration bundle.</p>"
        },
        "components":{
          "shape":"ComponentConfigurationMap",
          "documentation":"<p>A map of component identifiers to their configurations. Each component represents a configurable element within the bundle.</p>"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p>The branch name for version tracking. Defaults to <code>mainline</code> if not specified.</p>"
        },
        "commitMessage":{
          "shape":"CreateConfigurationBundleRequestCommitMessageString",
          "documentation":"<p>A commit message describing the initial version of the configuration bundle.</p>"
        },
        "createdBy":{
          "shape":"VersionCreatedBySource",
          "documentation":"<p>The source that created this version, including the source name and optional ARN.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to the configuration bundle. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateConfigurationBundleRequestCommitMessageString":{
      "type":"string",
      "max":500,
      "min":1
    },
    "CreateConfigurationBundleResponse":{
      "type":"structure",
      "required":[
        "bundleArn",
        "bundleId",
        "versionId",
        "createdAt"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created configuration bundle.</p>"
        },
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the created configuration bundle.</p>"
        },
        "versionId":{
          "shape":"ConfigurationBundleVersion",
          "documentation":"<p>The initial version identifier of the configuration bundle.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the configuration bundle was created.</p>"
        }
      }
    },
    "CreateEvaluatorRequest":{
      "type":"structure",
      "required":[
        "evaluatorName",
        "evaluatorConfig",
        "level"
      ],
      "members":{
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "evaluatorName":{
          "shape":"CustomEvaluatorName",
          "documentation":"<p> The name of the evaluator. Must be unique within your account. </p>"
        },
        "description":{
          "shape":"EvaluatorDescription",
          "documentation":"<p> The description of the evaluator that explains its purpose and evaluation criteria. </p>"
        },
        "evaluatorConfig":{
          "shape":"EvaluatorConfig",
          "documentation":"<p> The configuration for the evaluator. Specify either LLM-as-a-Judge settings with instructions, rating scale, and model configuration, or code-based settings with a customer-managed Lambda function. </p>"
        },
        "level":{
          "shape":"EvaluatorLevel",
          "documentation":"<p> The evaluation level that determines the scope of evaluation. Valid values are <code>TOOL_CALL</code> for individual tool invocations, <code>TRACE</code> for single request-response interactions, or <code>SESSION</code> for entire conversation sessions. </p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of a customer managed KMS key to use for encrypting sensitive evaluator data, including instructions and rating scale. If you don't specify a KMS key, the evaluator data is encrypted with an Amazon Web Services owned key. Only symmetric encryption KMS keys are supported. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/evaluations-encryption.html\">Encryption at rest for AgentCore Evaluations</a>. </p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to an AgentCore Evaluator. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateEvaluatorResponse":{
      "type":"structure",
      "required":[
        "evaluatorArn",
        "evaluatorId",
        "createdAt",
        "status"
      ],
      "members":{
        "evaluatorArn":{
          "shape":"CustomEvaluatorArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the created evaluator. </p>"
        },
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the created evaluator. </p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the evaluator was created. </p>"
        },
        "status":{
          "shape":"EvaluatorStatus",
          "documentation":"<p> The status of the evaluator creation operation. </p>"
        }
      }
    },
    "CreateGatewayRequest":{
      "type":"structure",
      "required":[
        "name",
        "roleArn",
        "authorizerType"
      ],
      "members":{
        "name":{
          "shape":"GatewayName",
          "documentation":"<p>The name of the gateway. The name must be unique within your account.</p>"
        },
        "description":{
          "shape":"GatewayDescription",
          "documentation":"<p>The description of the gateway.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for the gateway to access Amazon Web Services services.</p>"
        },
        "protocolType":{
          "shape":"GatewayProtocolType",
          "documentation":"<p>The protocol type for the gateway.</p>"
        },
        "protocolConfiguration":{
          "shape":"GatewayProtocolConfiguration",
          "documentation":"<p>The configuration settings for the protocol specified in the <code>protocolType</code> parameter.</p>"
        },
        "authorizerType":{
          "shape":"AuthorizerType",
          "documentation":"<p>The type of authorizer to use for the gateway.</p> <ul> <li> <p> <code>CUSTOM_JWT</code> - Authorize with a bearer token.</p> </li> <li> <p> <code>AWS_IAM</code> - Authorize with your Amazon Web Services IAM credentials.</p> </li> <li> <p> <code>NONE</code> - No authorization</p> </li> </ul>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The authorizer configuration for the gateway. Required if <code>authorizerType</code> is <code>CUSTOM_JWT</code>.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt data associated with the gateway.</p>"
        },
        "interceptorConfigurations":{
          "shape":"GatewayInterceptorConfigurations",
          "documentation":"<p>A list of configuration settings for a gateway interceptor. Gateway interceptors allow custom code to be invoked during gateway invocations.</p>"
        },
        "policyEngineConfiguration":{
          "shape":"GatewayPolicyEngineConfiguration",
          "documentation":"<p>The policy engine configuration for the gateway. A policy engine is a collection of policies that evaluates and authorizes agent tool calls. When associated with a gateway, the policy engine intercepts all agent requests and determines whether to allow or deny each action based on the defined policies.</p>"
        },
        "exceptionLevel":{
          "shape":"ExceptionLevel",
          "documentation":"<p>The level of detail in error messages returned when invoking the gateway.</p> <ul> <li> <p>If the value is <code>DEBUG</code>, granular exception messages are returned to help a user debug the gateway.</p> </li> <li> <p>If the value is omitted, a generic error message is returned to the end user.</p> </li> </ul>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of key-value pairs to associate with the gateway as metadata tags.</p>"
        }
      }
    },
    "CreateGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayArn",
        "gatewayId",
        "createdAt",
        "updatedAt",
        "status",
        "name",
        "authorizerType"
      ],
      "members":{
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created gateway.</p>"
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the created gateway.</p>"
        },
        "gatewayUrl":{
          "shape":"GatewayUrl",
          "documentation":"<p>The URL endpoint for the created gateway.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway was last updated.</p>"
        },
        "status":{
          "shape":"GatewayStatus",
          "documentation":"<p>The current status of the gateway.</p>"
        },
        "statusReasons":{
          "shape":"StatusReasons",
          "documentation":"<p>The reasons for the current status of the gateway.</p>"
        },
        "name":{
          "shape":"GatewayName",
          "documentation":"<p>The name of the gateway.</p>"
        },
        "description":{
          "shape":"GatewayDescription",
          "documentation":"<p>The description of the gateway.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role associated with the gateway.</p>"
        },
        "protocolType":{
          "shape":"GatewayProtocolType",
          "documentation":"<p>The protocol type of the gateway.</p>"
        },
        "protocolConfiguration":{
          "shape":"GatewayProtocolConfiguration",
          "documentation":"<p>The configuration settings for the protocol used by the gateway.</p>"
        },
        "authorizerType":{
          "shape":"AuthorizerType",
          "documentation":"<p>The type of authorizer used by the gateway.</p>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The authorizer configuration for the created gateway.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt data associated with the gateway.</p>"
        },
        "interceptorConfigurations":{
          "shape":"GatewayInterceptorConfigurations",
          "documentation":"<p>The list of interceptor configurations for the created gateway.</p>"
        },
        "policyEngineConfiguration":{
          "shape":"GatewayPolicyEngineConfiguration",
          "documentation":"<p>The policy engine configuration for the created gateway.</p>"
        },
        "workloadIdentityDetails":{
          "shape":"WorkloadIdentityDetails",
          "documentation":"<p>The workload identity details for the created gateway.</p>"
        },
        "exceptionLevel":{
          "shape":"ExceptionLevel",
          "documentation":"<p>The level of detail in error messages returned when invoking the gateway.</p> <ul> <li> <p>If the value is <code>DEBUG</code>, granular exception messages are returned to help a user debug the gateway.</p> </li> <li> <p>If the value is omitted, a generic error message is returned to the end user.</p> </li> </ul>"
        }
      }
    },
    "CreateGatewayRuleRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "priority",
        "actions"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway to create a rule for.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "priority":{
          "shape":"GatewayRulePriority",
          "documentation":"<p>The priority of the rule. Rules are evaluated in order of priority, with lower numbers evaluated first. Must be between 1 and 1,000,000.</p>"
        },
        "conditions":{
          "shape":"Conditions",
          "documentation":"<p>The conditions that must be met for the rule to apply. Conditions can match on principals (IAM ARNs) or request paths.</p>"
        },
        "actions":{
          "shape":"Actions",
          "documentation":"<p>The actions to take when the rule conditions are met. Actions can route to a specific target or apply a configuration bundle override.</p>"
        },
        "description":{
          "shape":"GatewayRuleDescription",
          "documentation":"<p>The description of the gateway rule.</p>"
        }
      }
    },
    "CreateGatewayRuleResponse":{
      "type":"structure",
      "required":[
        "ruleId",
        "gatewayArn",
        "priority",
        "actions",
        "createdAt",
        "status"
      ],
      "members":{
        "ruleId":{
          "shape":"GatewayRuleId",
          "documentation":"<p>The unique identifier of the gateway rule.</p>"
        },
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway that the rule belongs to.</p>"
        },
        "priority":{
          "shape":"GatewayRulePriority",
          "documentation":"<p>The priority of the rule. Rules are evaluated in order of priority, with lower numbers evaluated first.</p>"
        },
        "conditions":{
          "shape":"Conditions",
          "documentation":"<p>The conditions that must be met for the rule to apply.</p>"
        },
        "actions":{
          "shape":"Actions",
          "documentation":"<p>The actions to take when the rule conditions are met.</p>"
        },
        "description":{
          "shape":"GatewayRuleDescription",
          "documentation":"<p>The description of the gateway rule.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the rule was created.</p>"
        },
        "status":{
          "shape":"GatewayRuleStatus",
          "documentation":"<p>The current status of the rule.</p>"
        },
        "system":{
          "shape":"SystemManagedBlock",
          "documentation":"<p>System-managed metadata for rules created by automated processes.</p>"
        }
      }
    },
    "CreateGatewayTargetRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "name",
        "targetConfiguration"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway to create a target for.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "name":{
          "shape":"TargetName",
          "documentation":"<p>The name of the gateway target. The name must be unique within the gateway.</p>"
        },
        "description":{
          "shape":"TargetDescription",
          "documentation":"<p>The description of the gateway target.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "targetConfiguration":{
          "shape":"TargetConfiguration",
          "documentation":"<p>The configuration settings for the target, including endpoint information and schema definitions.</p>"
        },
        "credentialProviderConfigurations":{
          "shape":"CredentialProviderConfigurations",
          "documentation":"<p>The credential provider configurations for the target. These configurations specify how the gateway authenticates with the target endpoint.</p>"
        },
        "metadataConfiguration":{
          "shape":"MetadataConfiguration",
          "documentation":"<p>Optional configuration for HTTP header and query parameter propagation to and from the gateway target.</p>"
        },
        "privateEndpoint":{
          "shape":"PrivateEndpoint",
          "documentation":"<p>The private endpoint configuration for the gateway target. Use this to connect the gateway to private resources in your VPC.</p>"
        }
      }
    },
    "CreateGatewayTargetResponse":{
      "type":"structure",
      "required":[
        "gatewayArn",
        "targetId",
        "createdAt",
        "updatedAt",
        "status",
        "name",
        "targetConfiguration",
        "credentialProviderConfigurations"
      ],
      "members":{
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway.</p>"
        },
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The unique identifier of the created target.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the target was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the target was last updated.</p>"
        },
        "status":{
          "shape":"TargetStatus",
          "documentation":"<p>The current status of the target.</p>"
        },
        "statusReasons":{
          "shape":"StatusReasons",
          "documentation":"<p>The reasons for the current status of the target.</p>"
        },
        "name":{
          "shape":"TargetName",
          "documentation":"<p>The name of the target.</p>"
        },
        "description":{
          "shape":"TargetDescription",
          "documentation":"<p>The description of the target.</p>"
        },
        "targetConfiguration":{
          "shape":"TargetConfiguration",
          "documentation":"<p>The configuration settings for the target.</p>"
        },
        "credentialProviderConfigurations":{
          "shape":"CredentialProviderConfigurations",
          "documentation":"<p>The credential provider configurations for the target.</p>"
        },
        "lastSynchronizedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The last synchronization of the target.</p>"
        },
        "metadataConfiguration":{
          "shape":"MetadataConfiguration",
          "documentation":"<p>The metadata configuration that was applied to the created gateway target.</p>"
        },
        "privateEndpoint":{
          "shape":"PrivateEndpoint",
          "documentation":"<p>The private endpoint configuration for the gateway target.</p>"
        },
        "privateEndpointManagedResources":{
          "shape":"PrivateEndpointManagedResources",
          "documentation":"<p>The managed resources created by the gateway for private endpoint connectivity.</p>"
        },
        "authorizationData":{
          "shape":"AuthorizationData",
          "documentation":"<p>OAuth2 authorization data for the created gateway target. This data is returned when a target is configured with a credential provider with authorization code grant type and requires user federation.</p>"
        },
        "protocolType":{
          "shape":"TargetProtocolType",
          "documentation":"<p>The protocol type of the created gateway target.</p>"
        }
      }
    },
    "CreateHarnessRequest":{
      "type":"structure",
      "required":[
        "harnessName",
        "executionRoleArn"
      ],
      "members":{
        "harnessName":{
          "shape":"HarnessName",
          "documentation":"<p>The name of the harness. Must start with a letter and contain only alphanumeric characters and underscores.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        },
        "executionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The ARN of the IAM role that the harness assumes when running. This role must have permissions for the services the agent needs to access, such as Amazon Bedrock for model invocation.</p>"
        },
        "environment":{
          "shape":"HarnessEnvironmentProviderRequest",
          "documentation":"<p>The compute environment configuration for the harness, including network and lifecycle settings.</p>"
        },
        "environmentArtifact":{
          "shape":"HarnessEnvironmentArtifact",
          "documentation":"<p>The environment artifact for the harness, such as a custom container image containing additional dependencies.</p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariablesMap",
          "documentation":"<p>Environment variables to set in the harness runtime environment.</p>"
        },
        "authorizerConfiguration":{"shape":"AuthorizerConfiguration"},
        "model":{
          "shape":"HarnessModelConfiguration",
          "documentation":"<p>The model configuration for the harness. Supports Amazon Bedrock, OpenAI, and Google Gemini model providers.</p>"
        },
        "systemPrompt":{
          "shape":"HarnessSystemPrompt",
          "documentation":"<p>The system prompt that defines the agent's behavior and instructions.</p>"
        },
        "tools":{
          "shape":"HarnessTools",
          "documentation":"<p>The tools available to the agent, such as remote MCP servers, AgentCore Gateway, AgentCore Browser, Code Interpreter, or inline functions.</p>"
        },
        "skills":{
          "shape":"HarnessSkills",
          "documentation":"<p>The skills available to the agent. Skills are bundles of files that the agent can pull into its context on demand.</p>"
        },
        "allowedTools":{
          "shape":"HarnessAllowedTools",
          "documentation":"<p>The tools that the agent is allowed to use. Supports glob patterns such as * for all tools, @builtin for all built-in tools, or @serverName/toolName for specific MCP server tools.</p>"
        },
        "memory":{
          "shape":"HarnessMemoryConfiguration",
          "documentation":"<p>The AgentCore Memory configuration for persisting conversation context across sessions.</p>"
        },
        "truncation":{
          "shape":"HarnessTruncationConfiguration",
          "documentation":"<p>The truncation configuration for managing conversation context when it exceeds model limits.</p>"
        },
        "maxIterations":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of iterations the agent loop can execute per invocation.</p>"
        },
        "maxTokens":{
          "shape":"Integer",
          "documentation":"<p>The maximum total number of output tokens the agent can generate across all model calls within a single invocation.</p>"
        },
        "timeoutSeconds":{
          "shape":"Integer",
          "documentation":"<p>The maximum duration in seconds for the agent loop execution per invocation.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags to apply to the harness resource.</p>"
        }
      }
    },
    "CreateHarnessResponse":{
      "type":"structure",
      "required":["harness"],
      "members":{
        "harness":{
          "shape":"Harness",
          "documentation":"<p>The harness that was created.</p>"
        }
      }
    },
    "CreateMemoryInput":{
      "type":"structure",
      "required":[
        "name",
        "eventExpiryDuration"
      ],
      "members":{
        "clientToken":{
          "shape":"CreateMemoryInputClientTokenString",
          "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
        },
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the memory. The name must be unique within your account.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the memory.</p>"
        },
        "encryptionKeyArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the memory data.</p>"
        },
        "memoryExecutionRoleArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for the memory to access Amazon Web Services services.</p>"
        },
        "eventExpiryDuration":{
          "shape":"CreateMemoryInputEventExpiryDurationInteger",
          "documentation":"<p>The duration after which memory events expire. Specified as an ISO 8601 duration.</p>"
        },
        "memoryStrategies":{
          "shape":"MemoryStrategyInputList",
          "documentation":"<p>The memory strategies to use for this memory. Strategies define how information is extracted, processed, and consolidated.</p>"
        },
        "indexedKeys":{
          "shape":"IndexedKeysList",
          "documentation":"<p>Metadata keys to index for filtering. Once declared, indexed keys cannot be removed.</p>"
        },
        "streamDeliveryResources":{
          "shape":"StreamDeliveryResources",
          "documentation":"<p>Configuration for streaming memory record data to external resources.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to an AgentCore Memory. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateMemoryInputClientTokenString":{
      "type":"string",
      "max":500,
      "min":0
    },
    "CreateMemoryInputEventExpiryDurationInteger":{
      "type":"integer",
      "box":true,
      "max":365,
      "min":3
    },
    "CreateMemoryOutput":{
      "type":"structure",
      "members":{
        "memory":{
          "shape":"Memory",
          "documentation":"<p>The details of the created memory, including its ID, ARN, name, description, and configuration settings.</p>"
        }
      }
    },
    "CreateOauth2CredentialProviderRequest":{
      "type":"structure",
      "required":[
        "name",
        "credentialProviderVendor",
        "oauth2ProviderConfigInput"
      ],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the OAuth2 credential provider. The name must be unique within your account.</p>"
        },
        "credentialProviderVendor":{
          "shape":"CredentialProviderVendorType",
          "documentation":"<p>The vendor of the OAuth2 credential provider. This specifies which OAuth2 implementation to use.</p>"
        },
        "oauth2ProviderConfigInput":{
          "shape":"Oauth2ProviderConfigInput",
          "documentation":"<p>The configuration settings for the OAuth2 provider, including client ID, client secret, and other vendor-specific settings.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to the OAuth2 credential provider. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateOauth2CredentialProviderResponse":{
      "type":"structure",
      "required":[
        "clientSecretArn",
        "name",
        "credentialProviderArn"
      ],
      "members":{
        "clientSecretArn":{
          "shape":"Secret",
          "documentation":"<p>The Amazon Resource Name (ARN) of the client secret in AWS Secrets Manager.</p>"
        },
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the OAuth2 credential provider.</p>"
        },
        "credentialProviderArn":{
          "shape":"CredentialProviderArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the OAuth2 credential provider.</p>"
        },
        "callbackUrl":{
          "shape":"String",
          "documentation":"<p>Callback URL to register on the OAuth2 credential provider as an allowed callback URL. This URL is where the OAuth2 authorization server redirects users after they complete the authorization flow.</p>"
        },
        "oauth2ProviderConfigOutput":{"shape":"Oauth2ProviderConfigOutput"},
        "status":{
          "shape":"Status",
          "documentation":"<p>The current status of the OAuth2 credential provider.</p>"
        }
      }
    },
    "CreateOnlineEvaluationConfigRequest":{
      "type":"structure",
      "required":[
        "onlineEvaluationConfigName",
        "rule",
        "dataSourceConfig",
        "evaluators",
        "evaluationExecutionRoleArn",
        "enableOnCreate"
      ],
      "members":{
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "onlineEvaluationConfigName":{
          "shape":"EvaluationConfigName",
          "documentation":"<p> The name of the online evaluation configuration. Must be unique within your account. </p>"
        },
        "description":{
          "shape":"EvaluationConfigDescription",
          "documentation":"<p> The description of the online evaluation configuration that explains its monitoring purpose and scope. </p>"
        },
        "rule":{
          "shape":"Rule",
          "documentation":"<p> The evaluation rule that defines sampling configuration, filters, and session detection settings for the online evaluation. </p>"
        },
        "dataSourceConfig":{
          "shape":"DataSourceConfig",
          "documentation":"<p> The data source configuration that specifies CloudWatch log groups and service names to monitor for agent traces. </p>"
        },
        "evaluators":{
          "shape":"EvaluatorList",
          "documentation":"<p> The list of evaluators to apply during online evaluation. Can include both built-in evaluators and custom evaluators created with <code>CreateEvaluator</code>. </p>"
        },
        "evaluationExecutionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the IAM role that grants permissions to read from CloudWatch logs, write evaluation results, and invoke Amazon Bedrock models for evaluation. If the configuration references evaluators encrypted with a customer managed KMS key, this role must also have <code>kms:Decrypt</code> permission on the KMS key. The service validates this permission at configuration creation time. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/evaluations-encryption.html\">Encryption at rest for AgentCore Evaluations</a>. </p>"
        },
        "enableOnCreate":{
          "shape":"Boolean",
          "documentation":"<p> Whether to enable the online evaluation configuration immediately upon creation. If true, evaluation begins automatically. </p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to an AgentCore Online Evaluation Config. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateOnlineEvaluationConfigResponse":{
      "type":"structure",
      "required":[
        "onlineEvaluationConfigArn",
        "onlineEvaluationConfigId",
        "createdAt",
        "status",
        "executionStatus"
      ],
      "members":{
        "onlineEvaluationConfigArn":{
          "shape":"OnlineEvaluationConfigArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the created online evaluation configuration. </p>"
        },
        "onlineEvaluationConfigId":{
          "shape":"OnlineEvaluationConfigId",
          "documentation":"<p> The unique identifier of the created online evaluation configuration. </p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the online evaluation configuration was created. </p>"
        },
        "outputConfig":{"shape":"OutputConfig"},
        "status":{
          "shape":"OnlineEvaluationConfigStatus",
          "documentation":"<p> The status of the online evaluation configuration. </p>"
        },
        "executionStatus":{
          "shape":"OnlineEvaluationExecutionStatus",
          "documentation":"<p> The execution status indicating whether the online evaluation is currently running. </p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p> The reason for failure if the online evaluation configuration creation or execution failed. </p>"
        }
      }
    },
    "CreatePolicyEngineRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"PolicyEngineName",
          "documentation":"<p>The customer-assigned immutable name for the policy engine. This name identifies the policy engine and cannot be changed after creation.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A human-readable description of the policy engine's purpose and scope (1-4,096 characters). This helps administrators understand the policy engine's role in the overall governance strategy. Document which Gateway this engine will be associated with, what types of tools or workflows it governs, and the team or service responsible for maintaining it. Clear descriptions are essential when managing multiple policy engines across different services or environments.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request with the same client token, the service returns the same response without creating a duplicate policy engine.</p>",
          "idempotencyToken":true
        },
        "encryptionKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to an AgentCore Policy. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreatePolicyEngineResponse":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "name",
        "createdAt",
        "updatedAt",
        "policyEngineArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for the created policy engine. This system-generated identifier consists of the user name plus a 10-character generated suffix and is used for all subsequent policy engine operations.</p>"
        },
        "name":{
          "shape":"PolicyEngineName",
          "documentation":"<p>The customer-assigned name of the created policy engine. This matches the name provided in the request and serves as the human-readable identifier.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A human-readable description of the policy engine's purpose.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy engine was created. This is automatically set by the service and used for auditing and lifecycle management.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy engine was last updated. For newly created policy engines, this matches the <code>createdAt</code> timestamp.</p>"
        },
        "policyEngineArn":{
          "shape":"PolicyEngineArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created policy engine. This globally unique identifier can be used for cross-service references and IAM policy statements.</p>"
        },
        "status":{
          "shape":"PolicyEngineStatus",
          "documentation":"<p>The current status of the policy engine. A status of <code>ACTIVE</code> indicates the policy engine is ready for use.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the policy engine status. This provides details about any failures or the current state of the policy engine creation process.</p>"
        },
        "encryptionKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.</p>"
        }
      }
    },
    "CreatePolicyRequest":{
      "type":"structure",
      "required":[
        "name",
        "definition",
        "policyEngineId"
      ],
      "members":{
        "name":{
          "shape":"PolicyName",
          "documentation":"<p>The customer-assigned immutable name for the policy. Must be unique within the account. This name is used for policy identification and cannot be changed after creation.</p>"
        },
        "definition":{
          "shape":"PolicyDefinition",
          "documentation":"<p>The Cedar policy statement that defines the access control rules. This contains the actual policy logic written in Cedar policy language, specifying effect (permit or forbid), principals, actions, resources, and conditions for agent behavior control.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A human-readable description of the policy's purpose and functionality (1-4,096 characters). This helps policy administrators understand the policy's intent, business rules, and operational scope. Use this field to document why the policy exists, what business requirement it addresses, and any special considerations for maintenance. Clear descriptions are essential for policy governance, auditing, and troubleshooting.</p>"
        },
        "validationMode":{
          "shape":"PolicyValidationMode",
          "documentation":"<p>The validation mode for the policy creation. Determines how Cedar analyzer validation results are handled during policy creation. FAIL_ON_ANY_FINDINGS (default) runs the Cedar analyzer to validate the policy against the Cedar schema and tool context, failing creation if the analyzer detects any validation issues to ensure strict conformance. IGNORE_ALL_FINDINGS runs the Cedar analyzer but allows policy creation even if validation issues are detected, useful for testing or when the policy schema is evolving. Use FAIL_ON_ANY_FINDINGS for production policies to ensure correctness, and IGNORE_ALL_FINDINGS only when you understand and accept the analyzer findings.</p>"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine which contains this policy. Policy engines group related policies and provide the execution context for policy evaluation.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure the idempotency of the request. The AWS SDK automatically generates this token, so you don't need to provide it in most cases. If you retry a request with the same client token, the service returns the same response without creating a duplicate policy.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreatePolicyResponse":{
      "type":"structure",
      "required":[
        "policyId",
        "name",
        "policyEngineId",
        "definition",
        "createdAt",
        "updatedAt",
        "policyArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for the created policy. This is a system-generated identifier consisting of the user name plus a 10-character generated suffix, used for all subsequent policy operations.</p>"
        },
        "name":{
          "shape":"PolicyName",
          "documentation":"<p>The customer-assigned name of the created policy. This matches the name provided in the request and serves as the human-readable identifier for the policy.</p>"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine that manages this policy. This confirms the policy engine assignment and is used for policy evaluation routing.</p>"
        },
        "definition":{
          "shape":"PolicyDefinition",
          "documentation":"<p>The Cedar policy statement that was created. This is the validated policy definition that will be used for agent behavior control and access decisions.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The human-readable description of the policy's purpose and functionality. This helps administrators understand and manage the policy.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy was created. This is automatically set by the service and used for auditing and lifecycle management.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy was last updated. For newly created policies, this matches the createdAt timestamp.</p>"
        },
        "policyArn":{
          "shape":"PolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created policy. This globally unique identifier can be used for cross-service references and IAM policy statements.</p>"
        },
        "status":{
          "shape":"PolicyStatus",
          "documentation":"<p>The current status of the policy. A status of <code>ACTIVE</code> indicates the policy is ready for use.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the policy status. This provides details about any failures or the current state of the policy creation process.</p>"
        }
      }
    },
    "CreateRegistryRecordRequest":{
      "type":"structure",
      "required":[
        "registryId",
        "name",
        "descriptorType"
      ],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry where the record will be created. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        },
        "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 descriptor type of the registry record.</p> <ul> <li> <p> <code>MCP</code> - Model Context Protocol descriptor for MCP-compatible servers and tools.</p> </li> <li> <p> <code>A2A</code> - Agent-to-Agent protocol descriptor.</p> </li> <li> <p> <code>CUSTOM</code> - Custom descriptor type for resources such as APIs, Lambda functions, or servers not conforming to a standard protocol.</p> </li> <li> <p> <code>AGENT_SKILLS</code> - Agent skills descriptor for defining agent skill definitions.</p> </li> </ul>"
        },
        "descriptors":{
          "shape":"Descriptors",
          "documentation":"<p>The descriptor-type-specific configuration containing the resource schema and metadata. The structure of this field depends on the <code>descriptorType</code> you specify.</p>"
        },
        "recordVersion":{
          "shape":"RegistryRecordVersion",
          "documentation":"<p>The version of the registry record. Use this to track different versions of the record's content.</p>"
        },
        "synchronizationType":{
          "shape":"SynchronizationType",
          "documentation":"<p>The type of synchronization to use for keeping the record metadata up to date from an external source. Possible values include <code>FROM_URL</code> and <code>NONE</code>.</p>"
        },
        "synchronizationConfiguration":{
          "shape":"SynchronizationConfiguration",
          "documentation":"<p>The configuration for synchronizing registry record metadata from an external source, such as a URL-based MCP server.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateRegistryRecordResponse":{
      "type":"structure",
      "required":[
        "recordArn",
        "status"
      ],
      "members":{
        "recordArn":{
          "shape":"RegistryRecordArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created registry record.</p>"
        },
        "status":{
          "shape":"RegistryRecordStatus",
          "documentation":"<p>The status of the registry record. Set to <code>CREATING</code> while the asynchronous workflow is in progress.</p>"
        }
      }
    },
    "CreateRegistryRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"RegistryName",
          "documentation":"<p>The name of the registry. The name must be unique within your account and can contain alphanumeric characters and underscores.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the registry.</p>"
        },
        "authorizerType":{
          "shape":"RegistryAuthorizerType",
          "documentation":"<p>The type of authorizer to use for the registry. This controls the authorization method for the Search and Invoke APIs used by consumers, and does not affect the standard CRUDL APIs for registry and registry record management used by administrators.</p> <ul> <li> <p> <code>CUSTOM_JWT</code> - Authorize with a bearer token.</p> </li> <li> <p> <code>AWS_IAM</code> - Authorize with your Amazon Web Services IAM credentials.</p> </li> </ul>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The authorizer configuration for the registry. Required if <code>authorizerType</code> is <code>CUSTOM_JWT</code>. For details, see the <code>AuthorizerConfiguration</code> data type.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "approvalConfiguration":{
          "shape":"ApprovalConfiguration",
          "documentation":"<p>The approval configuration for registry records. Controls whether records require explicit approval before becoming active. See the <code>ApprovalConfiguration</code> data type for supported configuration options.</p>"
        }
      }
    },
    "CreateRegistryResponse":{
      "type":"structure",
      "required":["registryArn"],
      "members":{
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created registry.</p>"
        }
      }
    },
    "CreateWorkloadIdentityRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The name of the workload identity. The name must be unique within your account.</p>"
        },
        "allowedResourceOauth2ReturnUrls":{
          "shape":"ResourceOauth2ReturnUrlListType",
          "documentation":"<p>The list of allowed OAuth2 return URLs for resources associated with this workload identity.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of tag keys and values to assign to the workload identity. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.</p>"
        }
      }
    },
    "CreateWorkloadIdentityResponse":{
      "type":"structure",
      "required":[
        "name",
        "workloadIdentityArn"
      ],
      "members":{
        "name":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The name of the workload identity.</p>"
        },
        "workloadIdentityArn":{
          "shape":"WorkloadIdentityArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the workload identity.</p>"
        },
        "allowedResourceOauth2ReturnUrls":{
          "shape":"ResourceOauth2ReturnUrlListType",
          "documentation":"<p>The list of allowed OAuth2 return URLs for resources associated with this workload identity.</p>"
        }
      }
    },
    "CredentialProvider":{
      "type":"structure",
      "members":{
        "oauthCredentialProvider":{
          "shape":"OAuthCredentialProvider",
          "documentation":"<p>The OAuth credential provider. This provider uses OAuth authentication to access the target endpoint.</p>"
        },
        "apiKeyCredentialProvider":{
          "shape":"ApiKeyCredentialProvider",
          "documentation":"<p>The API key credential provider. This provider uses an API key to authenticate with the target endpoint.</p>"
        },
        "iamCredentialProvider":{
          "shape":"IamCredentialProvider",
          "documentation":"<p>The IAM credential provider. This provider uses IAM authentication with SigV4 signing to access the target endpoint.</p>"
        }
      },
      "documentation":"<p>A credential provider for gateway authentication. This structure contains the configuration for authenticating with the target endpoint.</p>",
      "union":true
    },
    "CredentialProviderArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:.*"
    },
    "CredentialProviderArnType":{
      "type":"string",
      "pattern":"arn:(aws|aws-us-gov):acps:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/oauth2credentialprovider/[a-zA-Z0-9-.]+"
    },
    "CredentialProviderConfiguration":{
      "type":"structure",
      "required":["credentialProviderType"],
      "members":{
        "credentialProviderType":{
          "shape":"CredentialProviderType",
          "documentation":"<p>The type of credential provider. This field specifies which authentication method the gateway uses.</p>"
        },
        "credentialProvider":{
          "shape":"CredentialProvider",
          "documentation":"<p>The credential provider. This field contains the specific configuration for the credential provider type.</p>"
        }
      },
      "documentation":"<p>The configuration for a credential provider. This structure defines how the gateway authenticates with the target endpoint.</p>"
    },
    "CredentialProviderConfigurations":{
      "type":"list",
      "member":{"shape":"CredentialProviderConfiguration"},
      "max":1,
      "min":1
    },
    "CredentialProviderName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9\\-_]+"
    },
    "CredentialProviderType":{
      "type":"string",
      "enum":[
        "GATEWAY_IAM_ROLE",
        "OAUTH",
        "API_KEY",
        "CALLER_IAM_CREDENTIALS",
        "JWT_PASSTHROUGH"
      ]
    },
    "CredentialProviderVendorType":{
      "type":"string",
      "enum":[
        "GoogleOauth2",
        "GithubOauth2",
        "SlackOauth2",
        "SalesforceOauth2",
        "MicrosoftOauth2",
        "CustomOauth2",
        "AtlassianOauth2",
        "LinkedinOauth2",
        "XOauth2",
        "OktaOauth2",
        "OneLoginOauth2",
        "PingOneOauth2",
        "FacebookOauth2",
        "YandexOauth2",
        "RedditOauth2",
        "ZoomOauth2",
        "TwitchOauth2",
        "SpotifyOauth2",
        "DropboxOauth2",
        "NotionOauth2",
        "HubspotOauth2",
        "CyberArkOauth2",
        "FusionAuthOauth2",
        "Auth0Oauth2",
        "CognitoOauth2"
      ]
    },
    "CustomClaimValidationType":{
      "type":"structure",
      "required":[
        "inboundTokenClaimName",
        "inboundTokenClaimValueType",
        "authorizingClaimMatchValue"
      ],
      "members":{
        "inboundTokenClaimName":{
          "shape":"InboundTokenClaimNameType",
          "documentation":"<p>The name of the custom claim field to check.</p>"
        },
        "inboundTokenClaimValueType":{
          "shape":"InboundTokenClaimValueType",
          "documentation":"<p>The data type of the claim value to check for.</p> <ul> <li> <p>Use <code>STRING</code> if you want to find an exact match to a string you define.</p> </li> <li> <p>Use <code>STRING_ARRAY</code> if you want to fnd a match to at least one value in an array you define.</p> </li> </ul>"
        },
        "authorizingClaimMatchValue":{
          "shape":"AuthorizingClaimMatchValueType",
          "documentation":"<p>Defines the value or values to match for and the relationship of the match.</p>"
        }
      },
      "documentation":"<p>Defines the name of a custom claim field and rules for finding matches to authenticate its value.</p>"
    },
    "CustomClaimValidationsType":{
      "type":"list",
      "member":{"shape":"CustomClaimValidationType"},
      "min":1
    },
    "CustomConfigurationInput":{
      "type":"structure",
      "members":{
        "semanticOverride":{
          "shape":"SemanticOverrideConfigurationInput",
          "documentation":"<p>The semantic override configuration for a custom memory strategy.</p>"
        },
        "summaryOverride":{
          "shape":"SummaryOverrideConfigurationInput",
          "documentation":"<p>The summary override configuration for a custom memory strategy.</p>"
        },
        "userPreferenceOverride":{
          "shape":"UserPreferenceOverrideConfigurationInput",
          "documentation":"<p>The user preference override configuration for a custom memory strategy.</p>"
        },
        "episodicOverride":{
          "shape":"EpisodicOverrideConfigurationInput",
          "documentation":"<p>The episodic memory strategy override configuration for a custom memory strategy.</p>"
        },
        "selfManagedConfiguration":{
          "shape":"SelfManagedConfigurationInput",
          "documentation":"<p>The self managed configuration for a custom memory strategy.</p>"
        }
      },
      "documentation":"<p>Input for custom configuration of a memory strategy.</p>",
      "union":true
    },
    "CustomConsolidationConfiguration":{
      "type":"structure",
      "members":{
        "semanticConsolidationOverride":{
          "shape":"SemanticConsolidationOverride",
          "documentation":"<p>The semantic consolidation override configuration.</p>"
        },
        "summaryConsolidationOverride":{
          "shape":"SummaryConsolidationOverride",
          "documentation":"<p>The summary consolidation override configuration.</p>"
        },
        "userPreferenceConsolidationOverride":{
          "shape":"UserPreferenceConsolidationOverride",
          "documentation":"<p>The user preference consolidation override configuration.</p>"
        },
        "episodicConsolidationOverride":{
          "shape":"EpisodicConsolidationOverride",
          "documentation":"<p>The configurations to override the default consolidation step for the episodic memory strategy.</p>"
        }
      },
      "documentation":"<p>Contains custom consolidation configuration information.</p>",
      "union":true
    },
    "CustomConsolidationConfigurationInput":{
      "type":"structure",
      "members":{
        "semanticConsolidationOverride":{
          "shape":"SemanticOverrideConsolidationConfigurationInput",
          "documentation":"<p>The semantic consolidation override configuration input.</p>"
        },
        "summaryConsolidationOverride":{
          "shape":"SummaryOverrideConsolidationConfigurationInput",
          "documentation":"<p>The summary consolidation override configuration input.</p>"
        },
        "userPreferenceConsolidationOverride":{
          "shape":"UserPreferenceOverrideConsolidationConfigurationInput",
          "documentation":"<p>The user preference consolidation override configuration input.</p>"
        },
        "episodicConsolidationOverride":{
          "shape":"EpisodicOverrideConsolidationConfigurationInput",
          "documentation":"<p>Configurations to override the consolidation step of the episodic strategy.</p>"
        }
      },
      "documentation":"<p>Input for a custom consolidation configuration.</p>",
      "union":true
    },
    "CustomDescriptor":{
      "type":"structure",
      "members":{
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p>The custom descriptor content as a valid JSON document. You can define any custom schema that describes your resource.</p>"
        }
      },
      "documentation":"<p>A custom descriptor for a registry record. Use this for resources such as APIs, Lambda functions, or servers that do not conform to a standard protocol like MCP or A2A.</p>"
    },
    "CustomEvaluatorArn":{
      "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}"
    },
    "CustomEvaluatorName":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}"
    },
    "CustomExtractionConfiguration":{
      "type":"structure",
      "members":{
        "semanticExtractionOverride":{
          "shape":"SemanticExtractionOverride",
          "documentation":"<p>The semantic extraction override configuration.</p>"
        },
        "userPreferenceExtractionOverride":{
          "shape":"UserPreferenceExtractionOverride",
          "documentation":"<p>The user preference extraction override configuration.</p>"
        },
        "episodicExtractionOverride":{
          "shape":"EpisodicExtractionOverride",
          "documentation":"<p>The configurations to override the default extraction step for the episodic memory strategy.</p>"
        }
      },
      "documentation":"<p>Contains custom extraction configuration information.</p>",
      "union":true
    },
    "CustomExtractionConfigurationInput":{
      "type":"structure",
      "members":{
        "semanticExtractionOverride":{
          "shape":"SemanticOverrideExtractionConfigurationInput",
          "documentation":"<p>The semantic extraction override configuration input.</p>"
        },
        "userPreferenceExtractionOverride":{
          "shape":"UserPreferenceOverrideExtractionConfigurationInput",
          "documentation":"<p>The user preference extraction override configuration input.</p>"
        },
        "episodicExtractionOverride":{
          "shape":"EpisodicOverrideExtractionConfigurationInput",
          "documentation":"<p>Configurations to override the extraction step of the episodic strategy.</p>"
        }
      },
      "documentation":"<p>Input for a custom extraction configuration.</p>",
      "union":true
    },
    "CustomJWTAuthorizerConfiguration":{
      "type":"structure",
      "required":["discoveryUrl"],
      "members":{
        "discoveryUrl":{
          "shape":"DiscoveryUrl",
          "documentation":"<p>This URL is used to fetch OpenID Connect configuration or authorization server metadata for validating incoming tokens.</p>"
        },
        "allowedAudience":{
          "shape":"AllowedAudienceList",
          "documentation":"<p>Represents individual audience values that are validated in the incoming JWT token validation process.</p>"
        },
        "allowedClients":{
          "shape":"AllowedClientsList",
          "documentation":"<p>Represents individual client IDs that are validated in the incoming JWT token validation process.</p>"
        },
        "allowedScopes":{
          "shape":"AllowedScopesType",
          "documentation":"<p>An array of scopes that are allowed to access the token.</p>"
        },
        "customClaims":{
          "shape":"CustomClaimValidationsType",
          "documentation":"<p>An array of objects that define a custom claim validation name, value, and operation </p>"
        },
        "privateEndpoint":{"shape":"PrivateEndpoint"},
        "privateEndpointOverrides":{
          "shape":"PrivateEndpointOverrides",
          "documentation":"<p>A list of private endpoint overrides for the JWT authorizer. Each override maps a specific domain to a private endpoint, enabling secure connectivity through VPC Lattice resource configurations.</p>"
        }
      },
      "documentation":"<p>Configuration for inbound JWT-based authorization, specifying how incoming requests should be authenticated.</p>"
    },
    "CustomMemoryStrategyInput":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the custom memory strategy.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the custom memory strategy.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces associated with the custom memory strategy.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates associated with the custom memory strategy.</p>"
        },
        "configuration":{
          "shape":"CustomConfigurationInput",
          "documentation":"<p>The configuration for the custom memory strategy.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>Schema for metadata fields on records generated by this strategy.</p>"
        }
      },
      "documentation":"<p>Input for creating a custom memory strategy.</p>"
    },
    "CustomOauth2ProviderConfigInput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{
          "shape":"Oauth2Discovery",
          "documentation":"<p>The OAuth2 discovery information for the custom provider.</p>"
        },
        "clientId":{
          "shape":"DefaultClientIdType",
          "documentation":"<p>The client ID for the custom OAuth2 provider.</p>"
        },
        "clientSecret":{
          "shape":"DefaultClientSecretType",
          "documentation":"<p>The client secret for the custom OAuth2 provider.</p>"
        },
        "privateEndpoint":{
          "shape":"PrivateEndpoint",
          "documentation":"<p>The default private endpoint for the custom OAuth2 provider, enabling secure connectivity through a VPC Lattice resource configuration.</p>"
        },
        "privateEndpointOverrides":{
          "shape":"PrivateEndpointOverrides",
          "documentation":"<p>The list of private endpoint overrides for the custom OAuth2 provider. Each override maps a specific domain to a private endpoint, enabling secure connectivity through VPC Lattice resource configurations.</p>"
        },
        "onBehalfOfTokenExchangeConfig":{
          "shape":"OnBehalfOfTokenExchangeConfigType",
          "documentation":"<p>The configuration for on-behalf-of token exchange. This enables authentication flows that use RFC 8693 token exchange or RFC 7523 JWT authorization grants.</p>"
        },
        "clientAuthenticationMethod":{
          "shape":"ClientAuthenticationMethodType",
          "documentation":"<p>The client authentication method to use when authenticating with the token endpoint.</p>"
        }
      },
      "documentation":"<p>Input configuration for a custom OAuth2 provider.</p>"
    },
    "CustomOauth2ProviderConfigOutput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{
          "shape":"Oauth2Discovery",
          "documentation":"<p>The OAuth2 discovery information for the custom provider.</p>"
        },
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the custom OAuth2 provider.</p>"
        },
        "privateEndpoint":{
          "shape":"PrivateEndpoint",
          "documentation":"<p>The default private endpoint for the custom OAuth2 provider, enabling secure connectivity through a VPC Lattice resource configuration.</p>"
        },
        "privateEndpointOverrides":{
          "shape":"PrivateEndpointOverrides",
          "documentation":"<p>The list of private endpoint overrides for the custom OAuth2 provider. Each override maps a specific domain to a private endpoint, enabling secure connectivity through VPC Lattice resource configurations.</p>"
        },
        "onBehalfOfTokenExchangeConfig":{
          "shape":"OnBehalfOfTokenExchangeConfigType",
          "documentation":"<p>The configuration for on-behalf-of token exchange.</p>"
        },
        "clientAuthenticationMethod":{
          "shape":"ClientAuthenticationMethodType",
          "documentation":"<p>The client authentication method used when authenticating with the token endpoint.</p>"
        }
      },
      "documentation":"<p>Output configuration for a custom OAuth2 provider.</p>"
    },
    "CustomParameterMap":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"String"}
    },
    "CustomReflectionConfiguration":{
      "type":"structure",
      "members":{
        "episodicReflectionOverride":{
          "shape":"EpisodicReflectionOverride",
          "documentation":"<p>The configuration for a reflection strategy to override the default one.</p>"
        }
      },
      "documentation":"<p>Contains configurations for a custom reflection strategy.</p>",
      "union":true
    },
    "CustomReflectionConfigurationInput":{
      "type":"structure",
      "members":{
        "episodicReflectionOverride":{
          "shape":"EpisodicOverrideReflectionConfigurationInput",
          "documentation":"<p>The reflection override configuration input.</p>"
        }
      },
      "documentation":"<p>Input for a custom reflection configuration.</p>",
      "union":true
    },
    "DataSourceConfig":{
      "type":"structure",
      "members":{
        "cloudWatchLogs":{
          "shape":"CloudWatchLogsInputConfig",
          "documentation":"<p> The CloudWatch logs configuration for reading agent traces from log groups. </p>"
        }
      },
      "documentation":"<p> The configuration that specifies where to read agent traces for online evaluation. </p>",
      "union":true
    },
    "DateTimestamp":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "DecryptionFailure":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Exception thrown when decryption of a secret fails.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "DefaultClientIdType":{
      "type":"string",
      "max":256,
      "min":0
    },
    "DefaultClientSecretType":{
      "type":"string",
      "max":2048,
      "min":0,
      "sensitive":true
    },
    "Definition":{
      "type":"string",
      "max":1000,
      "min":1,
      "sensitive":true
    },
    "DeleteAgentRuntimeEndpointRequest":{
      "type":"structure",
      "required":[
        "agentRuntimeId",
        "endpointName"
      ],
      "members":{
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime associated with the endpoint.</p>",
          "location":"uri",
          "locationName":"agentRuntimeId"
        },
        "endpointName":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the AgentCore Runtime endpoint to delete.</p>",
          "location":"uri",
          "locationName":"endpointName"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        }
      }
    },
    "DeleteAgentRuntimeEndpointResponse":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"AgentRuntimeEndpointStatus",
          "documentation":"<p>The current status of the AgentCore Runtime endpoint deletion.</p>"
        },
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime.</p>"
        },
        "endpointName":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the AgentCore Runtime endpoint.</p>"
        }
      }
    },
    "DeleteAgentRuntimeRequest":{
      "type":"structure",
      "required":["agentRuntimeId"],
      "members":{
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime to delete.</p>",
          "location":"uri",
          "locationName":"agentRuntimeId"
        },
        "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, the service ignores the request but does not return an error.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        }
      }
    },
    "DeleteAgentRuntimeResponse":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"AgentRuntimeStatus",
          "documentation":"<p>The current status of the AgentCore Runtime deletion.</p>"
        },
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime.</p>"
        }
      }
    },
    "DeleteApiKeyCredentialProviderRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the API key credential provider to delete.</p>"
        }
      }
    },
    "DeleteApiKeyCredentialProviderResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteBrowserProfileRequest":{
      "type":"structure",
      "required":["profileId"],
      "members":{
        "profileId":{
          "shape":"BrowserProfileId",
          "documentation":"<p>The unique identifier of the browser profile to delete.</p>",
          "location":"uri",
          "locationName":"profileId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        }
      }
    },
    "DeleteBrowserProfileResponse":{
      "type":"structure",
      "required":[
        "profileId",
        "profileArn",
        "status",
        "lastUpdatedAt"
      ],
      "members":{
        "profileId":{
          "shape":"BrowserProfileId",
          "documentation":"<p>The unique identifier of the deleted browser profile.</p>"
        },
        "profileArn":{
          "shape":"BrowserProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the deleted browser profile.</p>"
        },
        "status":{
          "shape":"BrowserProfileStatus",
          "documentation":"<p>The current status of the browser profile deletion.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser profile was last updated.</p>"
        },
        "lastSavedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when browser session data was last saved to this profile before deletion.</p>"
        }
      }
    },
    "DeleteBrowserRequest":{
      "type":"structure",
      "required":["browserId"],
      "members":{
        "browserId":{
          "shape":"BrowserId",
          "documentation":"<p>The unique identifier of the browser to delete.</p>",
          "location":"uri",
          "locationName":"browserId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        }
      }
    },
    "DeleteBrowserResponse":{
      "type":"structure",
      "required":[
        "browserId",
        "status",
        "lastUpdatedAt"
      ],
      "members":{
        "browserId":{
          "shape":"BrowserId",
          "documentation":"<p>The unique identifier of the deleted browser.</p>"
        },
        "status":{
          "shape":"BrowserStatus",
          "documentation":"<p>The current status of the browser deletion.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser was last updated.</p>"
        }
      }
    },
    "DeleteCodeInterpreterRequest":{
      "type":"structure",
      "required":["codeInterpreterId"],
      "members":{
        "codeInterpreterId":{
          "shape":"CodeInterpreterId",
          "documentation":"<p>The unique identifier of the code interpreter to delete.</p>",
          "location":"uri",
          "locationName":"codeInterpreterId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        }
      }
    },
    "DeleteCodeInterpreterResponse":{
      "type":"structure",
      "required":[
        "codeInterpreterId",
        "status",
        "lastUpdatedAt"
      ],
      "members":{
        "codeInterpreterId":{
          "shape":"CodeInterpreterId",
          "documentation":"<p>The unique identifier of the deleted code interpreter.</p>"
        },
        "status":{
          "shape":"CodeInterpreterStatus",
          "documentation":"<p>The current status of the code interpreter deletion.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the code interpreter was last updated.</p>"
        }
      }
    },
    "DeleteConfigurationBundleRequest":{
      "type":"structure",
      "required":["bundleId"],
      "members":{
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the configuration bundle to delete.</p>",
          "location":"uri",
          "locationName":"bundleId"
        }
      }
    },
    "DeleteConfigurationBundleResponse":{
      "type":"structure",
      "required":[
        "bundleId",
        "status"
      ],
      "members":{
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the deleted configuration bundle.</p>"
        },
        "status":{
          "shape":"ConfigurationBundleStatus",
          "documentation":"<p>The status of the configuration bundle deletion operation.</p>"
        }
      }
    },
    "DeleteEvaluatorRequest":{
      "type":"structure",
      "required":["evaluatorId"],
      "members":{
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the evaluator to delete. </p>",
          "location":"uri",
          "locationName":"evaluatorId"
        }
      }
    },
    "DeleteEvaluatorResponse":{
      "type":"structure",
      "required":[
        "evaluatorArn",
        "evaluatorId",
        "status"
      ],
      "members":{
        "evaluatorArn":{
          "shape":"EvaluatorArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the deleted evaluator. </p>"
        },
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the deleted evaluator. </p>"
        },
        "status":{
          "shape":"EvaluatorStatus",
          "documentation":"<p> The status of the evaluator deletion operation. </p>"
        }
      }
    },
    "DeleteGatewayRequest":{
      "type":"structure",
      "required":["gatewayIdentifier"],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway to delete.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        }
      }
    },
    "DeleteGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the deleted gateway.</p>"
        },
        "status":{
          "shape":"GatewayStatus",
          "documentation":"<p>The current status of the gateway deletion.</p>"
        },
        "statusReasons":{
          "shape":"StatusReasons",
          "documentation":"<p>The reasons for the current status of the gateway deletion.</p>"
        }
      }
    },
    "DeleteGatewayRuleRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "ruleId"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway containing the rule.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "ruleId":{
          "shape":"GatewayRuleId",
          "documentation":"<p>The unique identifier of the rule to delete.</p>",
          "location":"uri",
          "locationName":"ruleId"
        }
      }
    },
    "DeleteGatewayRuleResponse":{
      "type":"structure",
      "required":[
        "ruleId",
        "status"
      ],
      "members":{
        "ruleId":{
          "shape":"GatewayRuleId",
          "documentation":"<p>The unique identifier of the deleted rule.</p>"
        },
        "status":{
          "shape":"GatewayRuleStatus",
          "documentation":"<p>The status of the rule deletion operation.</p>"
        }
      }
    },
    "DeleteGatewayTargetRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "targetId"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The unique identifier of the gateway associated with the target.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The unique identifier of the gateway target to delete.</p>",
          "location":"uri",
          "locationName":"targetId"
        }
      }
    },
    "DeleteGatewayTargetResponse":{
      "type":"structure",
      "required":[
        "gatewayArn",
        "targetId",
        "status"
      ],
      "members":{
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway.</p>"
        },
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The unique identifier of the deleted gateway target.</p>"
        },
        "status":{
          "shape":"TargetStatus",
          "documentation":"<p>The current status of the gateway target deletion.</p>"
        },
        "statusReasons":{
          "shape":"StatusReasons",
          "documentation":"<p>The reasons for the current status of the gateway target deletion.</p>"
        }
      }
    },
    "DeleteHarnessRequest":{
      "type":"structure",
      "required":["harnessId"],
      "members":{
        "harnessId":{
          "shape":"HarnessId",
          "documentation":"<p>The ID of the harness to delete.</p>",
          "location":"uri",
          "locationName":"harnessId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        }
      }
    },
    "DeleteHarnessResponse":{
      "type":"structure",
      "members":{
        "harness":{
          "shape":"Harness",
          "documentation":"<p>The harness that was deleted.</p>"
        }
      }
    },
    "DeleteMemoryInput":{
      "type":"structure",
      "required":["memoryId"],
      "members":{
        "clientToken":{
          "shape":"DeleteMemoryInputClientTokenString",
          "documentation":"<p>A client token is used for keeping track of idempotent requests. It can contain a session id which can be around 250 chars, combined with a unique AWS identifier.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        },
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The unique identifier of the memory to delete.</p>",
          "location":"uri",
          "locationName":"memoryId"
        }
      }
    },
    "DeleteMemoryInputClientTokenString":{
      "type":"string",
      "max":500,
      "min":0
    },
    "DeleteMemoryOutput":{
      "type":"structure",
      "required":["memoryId"],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The unique identifier of the deleted AgentCore Memory resource.</p>"
        },
        "status":{
          "shape":"MemoryStatus",
          "documentation":"<p>The current status of the AgentCore Memory resource deletion.</p>"
        }
      }
    },
    "DeleteMemoryStrategiesList":{
      "type":"list",
      "member":{"shape":"DeleteMemoryStrategyInput"}
    },
    "DeleteMemoryStrategyInput":{
      "type":"structure",
      "required":["memoryStrategyId"],
      "members":{
        "memoryStrategyId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the memory strategy to delete.</p>"
        }
      },
      "documentation":"<p>Input for deleting a memory strategy.</p>"
    },
    "DeleteOauth2CredentialProviderRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the OAuth2 credential provider to delete.</p>"
        }
      }
    },
    "DeleteOauth2CredentialProviderResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteOnlineEvaluationConfigRequest":{
      "type":"structure",
      "required":["onlineEvaluationConfigId"],
      "members":{
        "onlineEvaluationConfigId":{
          "shape":"OnlineEvaluationConfigId",
          "documentation":"<p> The unique identifier of the online evaluation configuration to delete. </p>",
          "location":"uri",
          "locationName":"onlineEvaluationConfigId"
        }
      }
    },
    "DeleteOnlineEvaluationConfigResponse":{
      "type":"structure",
      "required":[
        "onlineEvaluationConfigArn",
        "onlineEvaluationConfigId",
        "status"
      ],
      "members":{
        "onlineEvaluationConfigArn":{
          "shape":"OnlineEvaluationConfigArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the deleted online evaluation configuration. </p>"
        },
        "onlineEvaluationConfigId":{
          "shape":"OnlineEvaluationConfigId",
          "documentation":"<p> The unique identifier of the deleted online evaluation configuration. </p>"
        },
        "status":{
          "shape":"OnlineEvaluationConfigStatus",
          "documentation":"<p> The status of the online evaluation configuration deletion operation. </p>"
        }
      }
    },
    "DeletePolicyEngineRequest":{
      "type":"structure",
      "required":["policyEngineId"],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy engine to be deleted. This must be a valid policy engine ID that exists within the account.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        }
      }
    },
    "DeletePolicyEngineResponse":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "name",
        "createdAt",
        "updatedAt",
        "policyEngineArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy engine being deleted. This confirms which policy engine the deletion operation targets.</p>"
        },
        "name":{
          "shape":"PolicyEngineName",
          "documentation":"<p>The customer-assigned name of the deleted policy engine.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The human-readable description of the deleted policy engine.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the deleted policy engine was originally created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the deleted policy engine was last modified before deletion. This tracks the final state of the policy engine before it was removed from the system.</p>"
        },
        "policyEngineArn":{
          "shape":"PolicyEngineArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the deleted policy engine. This globally unique identifier confirms which policy engine resource was successfully removed.</p>"
        },
        "status":{
          "shape":"PolicyEngineStatus",
          "documentation":"<p>The status of the policy engine deletion operation. This provides status about any issues that occurred during the deletion process.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the deletion status. This provides details about the deletion process or any issues that may have occurred.</p>"
        },
        "encryptionKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.</p>"
        }
      }
    },
    "DeletePolicyRequest":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "policyId"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine that manages the policy to be deleted. This ensures the policy is deleted from the correct policy engine context.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        },
        "policyId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy to be deleted. This must be a valid policy ID that exists within the specified policy engine.</p>",
          "location":"uri",
          "locationName":"policyId"
        }
      }
    },
    "DeletePolicyResponse":{
      "type":"structure",
      "required":[
        "policyId",
        "name",
        "policyEngineId",
        "definition",
        "createdAt",
        "updatedAt",
        "policyArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy being deleted. This confirms which policy the deletion operation targets.</p>"
        },
        "name":{
          "shape":"PolicyName",
          "documentation":"<p>The customer-assigned name of the deleted policy. This confirms which policy was successfully removed from the system and matches the name that was originally assigned during policy creation.</p>"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine from which the policy was deleted. This confirms the policy engine context for the deletion operation.</p>"
        },
        "definition":{"shape":"PolicyDefinition"},
        "description":{
          "shape":"Description",
          "documentation":"<p>The human-readable description of the deleted policy.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the deleted policy was originally created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the deleted policy was last modified before deletion. This tracks the final state of the policy before it was removed from the system.</p>"
        },
        "policyArn":{
          "shape":"PolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the deleted policy. This globally unique identifier confirms which policy resource was successfully removed.</p>"
        },
        "status":{
          "shape":"PolicyStatus",
          "documentation":"<p>The status of the policy deletion operation. This provides information about any issues that occurred during the deletion process.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the deletion status. This provides details about the deletion process or any issues that may have occurred.</p>"
        }
      }
    },
    "DeleteRegistryRecordRequest":{
      "type":"structure",
      "required":[
        "registryId",
        "recordId"
      ],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry containing the record. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        },
        "recordId":{
          "shape":"RecordIdentifier",
          "documentation":"<p>The identifier of the registry record to delete. You can specify either the Amazon Resource Name (ARN) or the ID of the record.</p>",
          "location":"uri",
          "locationName":"recordId"
        }
      }
    },
    "DeleteRegistryRecordResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteRegistryRequest":{
      "type":"structure",
      "required":["registryId"],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry to delete. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        }
      }
    },
    "DeleteRegistryResponse":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"RegistryStatus",
          "documentation":"<p>The current status of the registry, set to <code>DELETING</code> when deletion is initiated. For a list of all possible registry statuses, see the <code>RegistryStatus</code> data type.</p>"
        }
      }
    },
    "DeleteResourcePolicyRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"BedrockAgentcoreResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource for which to delete the resource policy.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "DeleteResourcePolicyResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteWorkloadIdentityRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The name of the workload identity to delete.</p>"
        }
      }
    },
    "DeleteWorkloadIdentityResponse":{
      "type":"structure",
      "members":{}
    },
    "Description":{
      "type":"string",
      "max":4096,
      "min":1,
      "sensitive":true
    },
    "DescriptorType":{
      "type":"string",
      "enum":[
        "MCP",
        "A2A",
        "CUSTOM",
        "AGENT_SKILLS"
      ]
    },
    "Descriptors":{
      "type":"structure",
      "members":{
        "mcp":{
          "shape":"McpDescriptor",
          "documentation":"<p>The Model Context Protocol (MCP) descriptor configuration. Use this when the <code>descriptorType</code> is <code>MCP</code>.</p>"
        },
        "a2a":{
          "shape":"A2aDescriptor",
          "documentation":"<p>The Agent-to-Agent (A2A) protocol descriptor configuration. Use this when the <code>descriptorType</code> is <code>A2A</code>.</p>"
        },
        "custom":{
          "shape":"CustomDescriptor",
          "documentation":"<p>The custom descriptor configuration. Use this when the <code>descriptorType</code> is <code>CUSTOM</code>.</p>"
        },
        "agentSkills":{
          "shape":"AgentSkillsDescriptor",
          "documentation":"<p>The agent skills descriptor configuration. Use this when the <code>descriptorType</code> is <code>AGENT_SKILLS</code>.</p>"
        }
      },
      "documentation":"<p>Contains descriptor-type-specific configurations for a registry record. Only the descriptor matching the record's <code>descriptorType</code> should be populated.</p>"
    },
    "DiscoveryUrl":{
      "type":"string",
      "pattern":".+/\\.well-known/openid-configuration"
    },
    "DiscoveryUrlType":{
      "type":"string",
      "pattern":".+/\\.well-known/(openid-configuration|oauth-authorization-server)"
    },
    "Document":{
      "type":"structure",
      "members":{},
      "document":true
    },
    "DomainName":{"type":"string"},
    "Double":{
      "type":"double",
      "box":true
    },
    "EfsAccessPointArn":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:access-point/fsap-[0-9a-f]{8,40}"
    },
    "EfsAccessPointConfiguration":{
      "type":"structure",
      "required":[
        "accessPointArn",
        "mountPath"
      ],
      "members":{
        "accessPointArn":{
          "shape":"EfsAccessPointArn",
          "documentation":"<p>The ARN of the EFS access point to mount into the AgentCore Runtime.</p>"
        },
        "mountPath":{
          "shape":"MountPath",
          "documentation":"<p>The mount path for the EFS access point inside the AgentCore Runtime. The path must be under <code>/mnt</code> with exactly one subdirectory level (for example, <code>/mnt/data</code>).</p>"
        }
      },
      "documentation":"<p>Configuration for an Amazon EFS access point filesystem mounted into the AgentCore Runtime. EFS access points provide shared file storage accessible from your AgentCore Runtime sessions.</p>"
    },
    "EncryptionFailure":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Exception thrown when encryption of a secret fails.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "EndpointIpAddressType":{
      "type":"string",
      "enum":[
        "IPV4",
        "IPV6"
      ]
    },
    "EndpointName":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}",
      "sensitive":true
    },
    "EnvironmentVariableKey":{
      "type":"string",
      "max":100,
      "min":1
    },
    "EnvironmentVariableValue":{
      "type":"string",
      "max":5000,
      "min":0
    },
    "EnvironmentVariablesMap":{
      "type":"map",
      "key":{"shape":"EnvironmentVariableKey"},
      "value":{"shape":"EnvironmentVariableValue"},
      "max":50,
      "min":0,
      "sensitive":true
    },
    "EpisodicConsolidationOverride":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text appended to the prompt for the consolidation step of the episodic memory strategy.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID used for the consolidation step of the episodic memory strategy.</p>"
        }
      },
      "documentation":"<p>Contains configurations to override the default consolidation step for the episodic memory strategy.</p>"
    },
    "EpisodicExtractionOverride":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text appended to the prompt for the extraction step of the episodic memory strategy.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID used for the extraction step of the episodic memory strategy.</p>"
        }
      },
      "documentation":"<p>Contains configurations to override the default extraction step for the episodic memory strategy.</p>"
    },
    "EpisodicMemoryStrategyInput":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the episodic memory strategy.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the episodic memory strategy.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces for which to create episodes.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates for which to create episodes.</p>"
        },
        "reflectionConfiguration":{
          "shape":"EpisodicReflectionConfigurationInput",
          "documentation":"<p>The configuration for the reflections created with the episodic memory strategy.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>Schema for metadata fields on records generated by this strategy.</p>"
        }
      },
      "documentation":"<p>Input for creating an episodic memory strategy.</p>"
    },
    "EpisodicOverrideConfigurationInput":{
      "type":"structure",
      "members":{
        "extraction":{
          "shape":"EpisodicOverrideExtractionConfigurationInput",
          "documentation":"<p>Contains configurations for overriding the extraction step of the episodic memory strategy.</p>"
        },
        "consolidation":{
          "shape":"EpisodicOverrideConsolidationConfigurationInput",
          "documentation":"<p>Contains configurations for overriding the consolidation step of the episodic memory strategy.</p>"
        },
        "reflection":{
          "shape":"EpisodicOverrideReflectionConfigurationInput",
          "documentation":"<p>Contains configurations for overriding the reflection step of the episodic memory strategy.</p>"
        }
      },
      "documentation":"<p>Input for the configuration to override the episodic memory strategy.</p>"
    },
    "EpisodicOverrideConsolidationConfigurationInput":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for the consolidation step of the episodic memory strategy.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for the consolidation step of the episodic memory strategy.</p>"
        }
      },
      "documentation":"<p>Configurations for overriding the consolidation step of the episodic memory strategy.</p>"
    },
    "EpisodicOverrideExtractionConfigurationInput":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for the extraction step of the episodic memory strategy.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for the extraction step of the episodic memory strategy.</p>"
        }
      },
      "documentation":"<p>Configurations for overriding the extraction step of the episodic memory strategy.</p>"
    },
    "EpisodicOverrideReflectionConfigurationInput":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for reflection step of the episodic memory strategy.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for the reflection step of the episodic memory strategy.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces to use for episodic reflection. Can be less nested than the episodic namespaces.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates to use for episodic reflection. Can be less nested than the episodic namespaces.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>Schema for metadata fields on records generated by this reflection override.</p>"
        }
      },
      "documentation":"<p>Configurations for overriding the reflection step of the episodic memory strategy.</p>"
    },
    "EpisodicReflectionConfiguration":{
      "type":"structure",
      "members":{
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces for which to create reflections. Can be less nested than the episodic namespaces.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates for which to create reflections. Can be less nested than the episodic namespaces.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>\"Schema for metadata fields on records generated by reflections.</p>"
        }
      },
      "documentation":"<p>The configuration for the reflections created with the episodic memory strategy.</p>"
    },
    "EpisodicReflectionConfigurationInput":{
      "type":"structure",
      "members":{
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces over which to create reflections. Can be less nested than episode namespaces.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates over which to create reflections. Can be less nested than episode namespaces.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>Schema for metadata fields on records generated by reflections.</p>"
        }
      },
      "documentation":"<p>An episodic reflection configuration input.</p>"
    },
    "EpisodicReflectionOverride":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text appended to the prompt for the reflection step of the episodic memory strategy.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID used for the reflection step of the episodic memory strategy.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces over which reflections were created. Can be less nested than the episodic namespaces.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates over which reflections were created. Can be less nested than the episodic namespaces.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>Schema for metadata fields on records generated by this reflection override.</p>"
        }
      },
      "documentation":"<p>Contains configurations to override the default reflection step for the episodic memory strategy.</p>"
    },
    "EvaluationConfigDescription":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":".+",
      "sensitive":true
    },
    "EvaluationConfigName":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}"
    },
    "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_-]+"
    },
    "EvaluatorConfig":{
      "type":"structure",
      "members":{
        "llmAsAJudge":{
          "shape":"LlmAsAJudgeEvaluatorConfig",
          "documentation":"<p> The LLM-as-a-Judge configuration that uses a language model to evaluate agent performance based on custom instructions and rating scales. </p>"
        },
        "codeBased":{
          "shape":"CodeBasedEvaluatorConfig",
          "documentation":"<p> Configuration for a code-based evaluator that uses a customer-managed Lambda function to programmatically assess agent performance. </p>"
        }
      },
      "documentation":"<p> The configuration that defines how an evaluator assesses agent performance, including the evaluation method and parameters. </p>",
      "union":true
    },
    "EvaluatorDescription":{
      "type":"string",
      "max":200,
      "min":1,
      "sensitive":true
    },
    "EvaluatorId":{
      "type":"string",
      "pattern":"(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10})"
    },
    "EvaluatorInstructions":{
      "type":"string",
      "sensitive":true
    },
    "EvaluatorLevel":{
      "type":"string",
      "enum":[
        "TOOL_CALL",
        "TRACE",
        "SESSION"
      ]
    },
    "EvaluatorList":{
      "type":"list",
      "member":{"shape":"EvaluatorReference"},
      "max":10,
      "min":1
    },
    "EvaluatorModelConfig":{
      "type":"structure",
      "members":{
        "bedrockEvaluatorModelConfig":{
          "shape":"BedrockEvaluatorModelConfig",
          "documentation":"<p> The Amazon Bedrock model configuration for evaluation. </p>"
        }
      },
      "documentation":"<p> The model configuration that specifies which foundation model to use for evaluation and how to configure it. </p>",
      "union":true
    },
    "EvaluatorName":{
      "type":"string",
      "pattern":"(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9_]{0,47})"
    },
    "EvaluatorReference":{
      "type":"structure",
      "members":{
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the evaluator. Can reference builtin evaluators (e.g., Builtin.Helpfulness) or custom evaluators. </p>"
        }
      },
      "documentation":"<p> The reference to an evaluator used in online evaluation configurations, containing the evaluator identifier. </p>",
      "union":true
    },
    "EvaluatorStatus":{
      "type":"string",
      "enum":[
        "ACTIVE",
        "CREATING",
        "CREATE_FAILED",
        "UPDATING",
        "UPDATE_FAILED",
        "DELETING"
      ]
    },
    "EvaluatorSummary":{
      "type":"structure",
      "required":[
        "evaluatorArn",
        "evaluatorId",
        "evaluatorName",
        "evaluatorType",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "evaluatorArn":{
          "shape":"EvaluatorArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the evaluator. </p>"
        },
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the evaluator. </p>"
        },
        "evaluatorName":{
          "shape":"EvaluatorName",
          "documentation":"<p> The name of the evaluator. </p>"
        },
        "description":{
          "shape":"EvaluatorDescription",
          "documentation":"<p> The description of the evaluator. </p>"
        },
        "evaluatorType":{
          "shape":"EvaluatorType",
          "documentation":"<p> The type of evaluator, indicating whether it is a built-in evaluator provided by the service or a custom evaluator created by the user. </p>"
        },
        "level":{
          "shape":"EvaluatorLevel",
          "documentation":"<p> The evaluation level (<code>TOOL_CALL</code>, <code>TRACE</code>, or <code>SESSION</code>) that determines the scope of evaluation. </p>"
        },
        "status":{
          "shape":"EvaluatorStatus",
          "documentation":"<p> The current status of the evaluator. </p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the evaluator was created. </p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the evaluator was last updated. </p>"
        },
        "lockedForModification":{
          "shape":"Boolean",
          "documentation":"<p> Whether the evaluator is locked for modification due to being referenced by active online evaluation configurations. </p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the customer managed KMS key used to encrypt the evaluator's sensitive data. This field is only present for evaluators encrypted with a customer managed key. </p>"
        }
      },
      "documentation":"<p> The summary information about an evaluator, including basic metadata and status information. </p>"
    },
    "EvaluatorSummaryList":{
      "type":"list",
      "member":{"shape":"EvaluatorSummary"}
    },
    "EvaluatorType":{
      "type":"string",
      "enum":[
        "Builtin",
        "Custom",
        "CustomCode"
      ]
    },
    "ExceptionLevel":{
      "type":"string",
      "enum":["DEBUG"]
    },
    "ExtractionConfig":{
      "type":"structure",
      "members":{
        "llmExtractionConfig":{
          "shape":"LlmExtractionConfig",
          "documentation":"<p>Model-based extraction using a definition and instructions.</p>"
        }
      },
      "documentation":"<p>Configuration for metadata extraction from conversational content.</p>",
      "union":true
    },
    "ExtractionConfiguration":{
      "type":"structure",
      "members":{
        "customExtractionConfiguration":{
          "shape":"CustomExtractionConfiguration",
          "documentation":"<p>The custom extraction configuration.</p>"
        }
      },
      "documentation":"<p>Contains extraction configuration information for a memory strategy.</p>",
      "union":true
    },
    "FilesystemConfiguration":{
      "type":"structure",
      "members":{
        "sessionStorage":{
          "shape":"SessionStorageConfiguration",
          "documentation":"<p>Configuration for session storage. Session storage provides persistent storage that is preserved across AgentCore Runtime session invocations.</p>"
        },
        "s3FilesAccessPoint":{
          "shape":"S3FilesAccessPointConfiguration",
          "documentation":"<p>Configuration for an Amazon S3 Files access point to mount into the AgentCore Runtime.</p>"
        },
        "efsAccessPoint":{
          "shape":"EfsAccessPointConfiguration",
          "documentation":"<p>Configuration for an Amazon EFS access point to mount into the AgentCore Runtime.</p>"
        }
      },
      "documentation":"<p>Configuration for a filesystem that can be mounted into the AgentCore Runtime.</p>",
      "union":true
    },
    "FilesystemConfigurations":{
      "type":"list",
      "member":{"shape":"FilesystemConfiguration"},
      "max":5,
      "min":0
    },
    "Filter":{
      "type":"structure",
      "required":[
        "key",
        "operator",
        "value"
      ],
      "members":{
        "key":{
          "shape":"FilterKeyString",
          "documentation":"<p> The key or field name to filter on within the agent trace data. </p>"
        },
        "operator":{
          "shape":"FilterOperator",
          "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> The filter that applies conditions to agent traces during online evaluation to determine which traces should be evaluated. </p>"
    },
    "FilterKeyString":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9._-]+"
    },
    "FilterList":{
      "type":"list",
      "member":{"shape":"Filter"},
      "max":5,
      "min":0
    },
    "FilterOperator":{
      "type":"string",
      "enum":[
        "Equals",
        "NotEquals",
        "GreaterThan",
        "LessThan",
        "GreaterThanOrEqual",
        "LessThanOrEqual",
        "Contains",
        "NotContains"
      ]
    },
    "FilterValue":{
      "type":"structure",
      "members":{
        "stringValue":{
          "shape":"FilterValueStringValueString",
          "documentation":"<p> The string value for text-based filtering. </p>"
        },
        "doubleValue":{
          "shape":"Double",
          "documentation":"<p> The numeric value for numerical filtering and comparisons. </p>"
        },
        "booleanValue":{
          "shape":"Boolean",
          "documentation":"<p> The boolean value for true/false filtering conditions. </p>"
        }
      },
      "documentation":"<p> The value used in filter comparisons, supporting different data types for flexible filtering criteria. </p>",
      "union":true
    },
    "FilterValueStringValueString":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "Finding":{
      "type":"structure",
      "members":{
        "type":{
          "shape":"FindingType",
          "documentation":"<p>The type or category of the finding. This classifies the finding as an error, warning, recommendation, or informational message to help users understand the severity and nature of the issue.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>A human-readable description of the finding. This provides detailed information about the issue, recommendation, or validation result to help users understand and address the finding. </p>"
        }
      },
      "documentation":"<p>Represents a finding or issue discovered during policy generation or validation. Findings provide insights about potential problems, recommendations, or validation results from policy analysis operations. Finding types include: VALID (policy is ready to use), INVALID (policy has validation errors that must be fixed), NOT_TRANSLATABLE (input couldn't be converted to policy), ALLOW_ALL (policy would allow all actions, potential security risk), ALLOW_NONE (policy would allow no actions, unusable), DENY_ALL (policy would deny all actions, may be too restrictive), and DENY_NONE (policy would deny no actions, ineffective). Review all findings before creating policies from generated assets to ensure they match your security requirements.</p>"
    },
    "FindingType":{
      "type":"string",
      "enum":[
        "VALID",
        "INVALID",
        "NOT_TRANSLATABLE",
        "ALLOW_ALL",
        "ALLOW_NONE",
        "DENY_ALL",
        "DENY_NONE"
      ]
    },
    "Findings":{
      "type":"list",
      "member":{"shape":"Finding"}
    },
    "Float":{
      "type":"float",
      "box":true
    },
    "FromUrlSynchronizationConfiguration":{
      "type":"structure",
      "required":["url"],
      "members":{
        "url":{
          "shape":"McpServerUrl",
          "documentation":"<p>The HTTPS URL of the MCP server to synchronize from.</p>"
        },
        "credentialProviderConfigurations":{
          "shape":"RegistryRecordCredentialProviderConfigurationList",
          "documentation":"<p>Optional list of credential provider configurations for authenticating with the MCP server. At most one credential provider configuration can be specified.</p>"
        }
      },
      "documentation":"<p>Configuration for synchronizing from a URL-based MCP server.</p>"
    },
    "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}"
    },
    "GatewayConfigurationBundleArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:configuration-bundle/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "GatewayDescription":{
      "type":"string",
      "max":200,
      "min":1,
      "sensitive":true
    },
    "GatewayId":{
      "type":"string",
      "pattern":"([0-9a-z][-]?){1,100}-[0-9a-z]{10}"
    },
    "GatewayIdentifier":{
      "type":"string",
      "pattern":"([0-9a-z][-]?){1,100}-[0-9a-z]{10}"
    },
    "GatewayInterceptionPoint":{
      "type":"string",
      "enum":[
        "REQUEST",
        "RESPONSE"
      ]
    },
    "GatewayInterceptionPoints":{
      "type":"list",
      "member":{"shape":"GatewayInterceptionPoint"},
      "max":2,
      "min":1
    },
    "GatewayInterceptorConfiguration":{
      "type":"structure",
      "required":[
        "interceptor",
        "interceptionPoints"
      ],
      "members":{
        "interceptor":{
          "shape":"InterceptorConfiguration",
          "documentation":"<p>The infrastructure settings of an interceptor configuration. This structure defines how the interceptor can be invoked.</p>"
        },
        "interceptionPoints":{
          "shape":"GatewayInterceptionPoints",
          "documentation":"<p>The supported points of interception. This field specifies which points during the gateway invocation to invoke the interceptor</p>"
        },
        "inputConfiguration":{
          "shape":"InterceptorInputConfiguration",
          "documentation":"<p>The configuration for the input of the interceptor. This field specifies how the input to the interceptor is constructed</p>"
        }
      },
      "documentation":"<p>The configuration for an interceptor on a gateway. This structure defines settings for an interceptor that will be invoked during the invocation of the gateway.</p>"
    },
    "GatewayInterceptorConfigurations":{
      "type":"list",
      "member":{"shape":"GatewayInterceptorConfiguration"},
      "max":2,
      "min":1
    },
    "GatewayMaxResults":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "GatewayName":{
      "type":"string",
      "pattern":"([0-9a-zA-Z][-]?){1,100}",
      "sensitive":true
    },
    "GatewayNextToken":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\S*"
    },
    "GatewayPolicyEngineArn":{
      "type":"string",
      "max":170,
      "min":1,
      "pattern":"arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:policy-engine\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9_]{10}"
    },
    "GatewayPolicyEngineConfiguration":{
      "type":"structure",
      "required":[
        "arn",
        "mode"
      ],
      "members":{
        "arn":{
          "shape":"GatewayPolicyEngineArn",
          "documentation":"<p>The ARN of the policy engine. The policy engine contains Cedar policies that define fine-grained authorization rules specifying who can perform what actions on which resources as agents interact through the gateway.</p>"
        },
        "mode":{
          "shape":"GatewayPolicyEngineMode",
          "documentation":"<p>The enforcement mode for the policy engine. Valid values include:</p> <ul> <li> <p> <code>LOG_ONLY</code> - The policy engine evaluates each action against your policies and adds traces on whether tool calls would be allowed or denied, but does not enforce the decision. Use this mode to test and validate policies before enabling enforcement.</p> </li> <li> <p> <code>ENFORCE</code> - The policy engine evaluates actions against your policies and enforces decisions by allowing or denying agent operations. Test and validate policies in <code>LOG_ONLY</code> mode before enabling enforcement to avoid unintended denials or adversely affecting production traffic.</p> </li> </ul>"
        }
      },
      "documentation":"<p>The configuration for a policy engine associated with a gateway. A policy engine is a collection of policies that evaluates and authorizes agent tool calls. When associated with a gateway, the policy engine intercepts all agent requests and determines whether to allow or deny each action based on the defined policies.</p>"
    },
    "GatewayPolicyEngineMode":{
      "type":"string",
      "enum":[
        "LOG_ONLY",
        "ENFORCE"
      ]
    },
    "GatewayProtocolConfiguration":{
      "type":"structure",
      "members":{
        "mcp":{
          "shape":"MCPGatewayConfiguration",
          "documentation":"<p>The configuration for the Model Context Protocol (MCP). This protocol enables communication between Amazon Bedrock Agent and external tools.</p>"
        }
      },
      "documentation":"<p>The configuration for a gateway protocol. This structure defines how the gateway communicates with external services.</p>",
      "union":true
    },
    "GatewayProtocolType":{
      "type":"string",
      "enum":["MCP"]
    },
    "GatewayRuleDescription":{
      "type":"string",
      "max":256,
      "min":1
    },
    "GatewayRuleDetail":{
      "type":"structure",
      "required":[
        "ruleId",
        "gatewayArn",
        "priority",
        "actions",
        "createdAt",
        "status"
      ],
      "members":{
        "ruleId":{
          "shape":"GatewayRuleId",
          "documentation":"<p>The unique identifier of the gateway rule.</p>"
        },
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway that the rule belongs to.</p>"
        },
        "priority":{
          "shape":"GatewayRulePriority",
          "documentation":"<p>The priority of the rule. Rules are evaluated in order of priority, with lower numbers evaluated first.</p>"
        },
        "conditions":{
          "shape":"Conditions",
          "documentation":"<p>The conditions that must be met for the rule to apply.</p>"
        },
        "actions":{
          "shape":"Actions",
          "documentation":"<p>The actions to take when the rule conditions are met.</p>"
        },
        "description":{
          "shape":"GatewayRuleDescription",
          "documentation":"<p>The description of the gateway rule.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the rule was created.</p>"
        },
        "status":{
          "shape":"GatewayRuleStatus",
          "documentation":"<p>The current status of the rule.</p>"
        },
        "system":{
          "shape":"SystemManagedBlock",
          "documentation":"<p>System-managed metadata for rules created by automated processes.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the rule was last updated.</p>"
        }
      },
      "documentation":"<p>Detailed information about a gateway rule.</p>"
    },
    "GatewayRuleId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "GatewayRuleMaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "GatewayRuleNextToken":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\S*"
    },
    "GatewayRulePriority":{
      "type":"integer",
      "box":true,
      "max":1000000,
      "min":1
    },
    "GatewayRuleStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "ACTIVE",
        "UPDATING",
        "DELETING"
      ]
    },
    "GatewayRules":{
      "type":"list",
      "member":{"shape":"GatewayRuleDetail"}
    },
    "GatewayStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "UPDATING",
        "UPDATE_UNSUCCESSFUL",
        "DELETING",
        "READY",
        "FAILED"
      ]
    },
    "GatewaySummaries":{
      "type":"list",
      "member":{"shape":"GatewaySummary"}
    },
    "GatewaySummary":{
      "type":"structure",
      "required":[
        "gatewayId",
        "name",
        "status",
        "createdAt",
        "updatedAt",
        "authorizerType"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "name":{
          "shape":"GatewayName",
          "documentation":"<p>The name of the gateway.</p>"
        },
        "status":{
          "shape":"GatewayStatus",
          "documentation":"<p>The current status of the gateway.</p>"
        },
        "description":{
          "shape":"GatewayDescription",
          "documentation":"<p>The description of the gateway.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway was last updated.</p>"
        },
        "authorizerType":{
          "shape":"AuthorizerType",
          "documentation":"<p>The type of authorizer used by the gateway.</p>"
        },
        "protocolType":{
          "shape":"GatewayProtocolType",
          "documentation":"<p>The protocol type used by the gateway.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a gateway.</p>"
    },
    "GatewayTarget":{
      "type":"structure",
      "required":[
        "gatewayArn",
        "targetId",
        "createdAt",
        "updatedAt",
        "status",
        "name",
        "targetConfiguration",
        "credentialProviderConfigurations"
      ],
      "members":{
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway target.</p>"
        },
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The target ID.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The date and time at which the target was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The date and time at which the target was updated.</p>"
        },
        "status":{
          "shape":"TargetStatus",
          "documentation":"<p>The status of the gateway target.</p>"
        },
        "statusReasons":{
          "shape":"StatusReasons",
          "documentation":"<p>The status reasons for the target status.</p>"
        },
        "name":{
          "shape":"TargetName",
          "documentation":"<p>The name of the gateway target.</p>"
        },
        "description":{
          "shape":"TargetDescription",
          "documentation":"<p>The description for the gateway target.</p>"
        },
        "targetConfiguration":{"shape":"TargetConfiguration"},
        "credentialProviderConfigurations":{
          "shape":"CredentialProviderConfigurations",
          "documentation":"<p>The provider configurations.</p>"
        },
        "lastSynchronizedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The last synchronization time.</p>"
        },
        "metadataConfiguration":{
          "shape":"MetadataConfiguration",
          "documentation":"<p>The metadata configuration for HTTP header and query parameter propagation to and from this gateway target.</p>"
        },
        "privateEndpoint":{"shape":"PrivateEndpoint"},
        "privateEndpointManagedResources":{
          "shape":"PrivateEndpointManagedResources",
          "documentation":"<p>A list of managed resources created by the gateway for private endpoint connectivity. These resources are created in your account when you use a managed VPC Lattice resource configuration.</p>"
        },
        "authorizationData":{
          "shape":"AuthorizationData",
          "documentation":"<p>OAuth2 authorization data for the gateway target. This data is returned when a target is configured with a credential provider with authorization code grant type and requires user federation.</p>"
        },
        "protocolType":{
          "shape":"TargetProtocolType",
          "documentation":"<p>The protocol type of the gateway target.</p>"
        }
      },
      "documentation":"<p>The gateway target.</p>"
    },
    "GatewayTargetList":{
      "type":"list",
      "member":{"shape":"GatewayTarget"}
    },
    "GatewayUrl":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "GetAgentRuntimeEndpointRequest":{
      "type":"structure",
      "required":[
        "agentRuntimeId",
        "endpointName"
      ],
      "members":{
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime associated with the endpoint.</p>",
          "location":"uri",
          "locationName":"agentRuntimeId"
        },
        "endpointName":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the AgentCore Runtime endpoint to retrieve.</p>",
          "location":"uri",
          "locationName":"endpointName"
        }
      }
    },
    "GetAgentRuntimeEndpointResponse":{
      "type":"structure",
      "required":[
        "agentRuntimeEndpointArn",
        "agentRuntimeArn",
        "status",
        "createdAt",
        "lastUpdatedAt",
        "name",
        "id"
      ],
      "members":{
        "liveVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The currently deployed version of the AgentCore Runtime on the endpoint.</p>"
        },
        "targetVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The target version of the AgentCore Runtime for the endpoint.</p>"
        },
        "agentRuntimeEndpointArn":{
          "shape":"AgentRuntimeEndpointArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the AgentCore Runtime endpoint.</p>"
        },
        "agentRuntimeArn":{
          "shape":"AgentRuntimeArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the AgentCore Runtime.</p>"
        },
        "description":{
          "shape":"AgentEndpointDescription",
          "documentation":"<p>The description of the AgentCore Runtime endpoint.</p>"
        },
        "status":{
          "shape":"AgentRuntimeEndpointStatus",
          "documentation":"<p>The current status of the AgentCore Runtime endpoint.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime endpoint was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime endpoint was last updated.</p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p>The reason for failure if the AgentCore Runtime endpoint is in a failed state.</p>"
        },
        "name":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the AgentCore Runtime endpoint.</p>"
        },
        "id":{
          "shape":"AgentRuntimeEndpointId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime endpoint.</p>"
        }
      }
    },
    "GetAgentRuntimeRequest":{
      "type":"structure",
      "required":["agentRuntimeId"],
      "members":{
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime to retrieve.</p>",
          "location":"uri",
          "locationName":"agentRuntimeId"
        },
        "agentRuntimeVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The version of the AgentCore Runtime to retrieve.</p>",
          "location":"querystring",
          "locationName":"version"
        }
      }
    },
    "GetAgentRuntimeResponse":{
      "type":"structure",
      "required":[
        "agentRuntimeArn",
        "agentRuntimeName",
        "agentRuntimeId",
        "agentRuntimeVersion",
        "createdAt",
        "lastUpdatedAt",
        "roleArn",
        "networkConfiguration",
        "status",
        "lifecycleConfiguration"
      ],
      "members":{
        "agentRuntimeArn":{
          "shape":"AgentRuntimeArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the AgentCore Runtime.</p>"
        },
        "agentRuntimeName":{
          "shape":"AgentRuntimeName",
          "documentation":"<p>The name of the AgentCore Runtime.</p>"
        },
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime.</p>"
        },
        "agentRuntimeVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The version of the AgentCore Runtime.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime was last updated.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM role ARN that provides permissions for the AgentCore Runtime.</p>"
        },
        "networkConfiguration":{
          "shape":"NetworkConfiguration",
          "documentation":"<p>The network configuration for the AgentCore Runtime.</p>"
        },
        "status":{
          "shape":"AgentRuntimeStatus",
          "documentation":"<p>The current status of the AgentCore Runtime.</p>"
        },
        "lifecycleConfiguration":{
          "shape":"LifecycleConfiguration",
          "documentation":"<p>The life cycle configuration for the AgentCore Runtime.</p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p>The reason for failure if the AgentCore Runtime is in a failed state.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the AgentCore Runtime.</p>"
        },
        "workloadIdentityDetails":{
          "shape":"WorkloadIdentityDetails",
          "documentation":"<p>The workload identity details for the AgentCore Runtime.</p>"
        },
        "agentRuntimeArtifact":{
          "shape":"AgentRuntimeArtifact",
          "documentation":"<p>The artifact of the AgentCore Runtime.</p>"
        },
        "protocolConfiguration":{"shape":"ProtocolConfiguration"},
        "environmentVariables":{
          "shape":"EnvironmentVariablesMap",
          "documentation":"<p>Environment variables set in the AgentCore Runtime environment.</p>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The authorizer configuration for the AgentCore Runtime.</p>"
        },
        "requestHeaderConfiguration":{
          "shape":"RequestHeaderConfiguration",
          "documentation":"<p>Configuration for HTTP request headers that will be passed through to the runtime.</p>"
        },
        "metadataConfiguration":{
          "shape":"RuntimeMetadataConfiguration",
          "documentation":"<p>Configuration for microVM Metadata Service (MMDS) settings for the AgentCore Runtime.</p>"
        },
        "filesystemConfigurations":{
          "shape":"FilesystemConfigurations",
          "documentation":"<p>The filesystem configurations mounted into the AgentCore Runtime.</p>"
        }
      }
    },
    "GetApiKeyCredentialProviderRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the API key credential provider to retrieve.</p>"
        }
      }
    },
    "GetApiKeyCredentialProviderResponse":{
      "type":"structure",
      "required":[
        "apiKeySecretArn",
        "name",
        "credentialProviderArn",
        "createdTime",
        "lastUpdatedTime"
      ],
      "members":{
        "apiKeySecretArn":{
          "shape":"Secret",
          "documentation":"<p>The Amazon Resource Name (ARN) of the API key secret in AWS Secrets Manager.</p>"
        },
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the API key credential provider.</p>"
        },
        "credentialProviderArn":{
          "shape":"ApiKeyCredentialProviderArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the API key credential provider.</p>"
        },
        "createdTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the API key credential provider was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the API key credential provider was last updated.</p>"
        }
      }
    },
    "GetBrowserProfileRequest":{
      "type":"structure",
      "required":["profileId"],
      "members":{
        "profileId":{
          "shape":"BrowserProfileId",
          "documentation":"<p>The unique identifier of the browser profile to retrieve.</p>",
          "location":"uri",
          "locationName":"profileId"
        }
      }
    },
    "GetBrowserProfileResponse":{
      "type":"structure",
      "required":[
        "profileId",
        "profileArn",
        "name",
        "status",
        "createdAt",
        "lastUpdatedAt"
      ],
      "members":{
        "profileId":{
          "shape":"BrowserProfileId",
          "documentation":"<p>The unique identifier of the browser profile.</p>"
        },
        "profileArn":{
          "shape":"BrowserProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the browser profile.</p>"
        },
        "name":{
          "shape":"BrowserProfileName",
          "documentation":"<p>The name of the browser profile.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the browser profile.</p>"
        },
        "status":{
          "shape":"BrowserProfileStatus",
          "documentation":"<p>The current status of the browser profile.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser profile was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser profile was last updated.</p>"
        },
        "lastSavedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when browser session data was last saved to this profile.</p>"
        },
        "lastSavedBrowserSessionId":{
          "shape":"BrowserSessionId",
          "documentation":"<p>The identifier of the browser session from which data was last saved to this profile.</p>"
        },
        "lastSavedBrowserId":{
          "shape":"BrowserId",
          "documentation":"<p>The identifier of the browser from which data was last saved to this profile.</p>"
        }
      }
    },
    "GetBrowserRequest":{
      "type":"structure",
      "required":["browserId"],
      "members":{
        "browserId":{
          "shape":"BrowserId",
          "documentation":"<p>The unique identifier of the browser to retrieve.</p>",
          "location":"uri",
          "locationName":"browserId"
        }
      }
    },
    "GetBrowserResponse":{
      "type":"structure",
      "required":[
        "browserId",
        "browserArn",
        "name",
        "networkConfiguration",
        "status",
        "createdAt",
        "lastUpdatedAt"
      ],
      "members":{
        "browserId":{
          "shape":"BrowserId",
          "documentation":"<p>The unique identifier of the browser.</p>"
        },
        "browserArn":{
          "shape":"BrowserArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the browser.</p>"
        },
        "name":{
          "shape":"SandboxName",
          "documentation":"<p>The name of the browser.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the browser.</p>"
        },
        "executionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM role ARN that provides permissions for the browser.</p>"
        },
        "networkConfiguration":{"shape":"BrowserNetworkConfiguration"},
        "recording":{"shape":"RecordingConfig"},
        "browserSigning":{
          "shape":"BrowserSigningConfigOutput",
          "documentation":"<p>The browser signing configuration that shows whether cryptographic agent identification is enabled for web bot authentication.</p>"
        },
        "enterprisePolicies":{
          "shape":"BrowserEnterprisePolicies",
          "documentation":"<p>The list of enterprise policy files configured for the browser.</p>"
        },
        "certificates":{
          "shape":"Certificates",
          "documentation":"<p>The list of certificates configured for the browser.</p>"
        },
        "status":{
          "shape":"BrowserStatus",
          "documentation":"<p>The current status of the browser.</p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p>The reason for failure if the browser is in a failed state.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the browser was last updated.</p>"
        }
      }
    },
    "GetCodeInterpreterRequest":{
      "type":"structure",
      "required":["codeInterpreterId"],
      "members":{
        "codeInterpreterId":{
          "shape":"CodeInterpreterId",
          "documentation":"<p>The unique identifier of the code interpreter to retrieve.</p>",
          "location":"uri",
          "locationName":"codeInterpreterId"
        }
      }
    },
    "GetCodeInterpreterResponse":{
      "type":"structure",
      "required":[
        "codeInterpreterId",
        "codeInterpreterArn",
        "name",
        "networkConfiguration",
        "status",
        "createdAt",
        "lastUpdatedAt"
      ],
      "members":{
        "codeInterpreterId":{
          "shape":"CodeInterpreterId",
          "documentation":"<p>The unique identifier of the code interpreter.</p>"
        },
        "codeInterpreterArn":{
          "shape":"CodeInterpreterArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the code interpreter.</p>"
        },
        "name":{
          "shape":"SandboxName",
          "documentation":"<p>The name of the code interpreter.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the code interpreter.</p>"
        },
        "executionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM role ARN that provides permissions for the code interpreter.</p>"
        },
        "networkConfiguration":{"shape":"CodeInterpreterNetworkConfiguration"},
        "status":{
          "shape":"CodeInterpreterStatus",
          "documentation":"<p>The current status of the code interpreter.</p>"
        },
        "certificates":{
          "shape":"Certificates",
          "documentation":"<p>The list of certificates configured for the code interpreter.</p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p>The reason for failure if the code interpreter is in a failed state.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the code interpreter was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the code interpreter was last updated.</p>"
        }
      }
    },
    "GetConfigurationBundleRequest":{
      "type":"structure",
      "required":["bundleId"],
      "members":{
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the configuration bundle to retrieve.</p>",
          "location":"uri",
          "locationName":"bundleId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p>The branch name to get the latest version from. If not specified, returns the latest version on the mainline branch.</p>",
          "location":"querystring",
          "locationName":"branchName"
        }
      }
    },
    "GetConfigurationBundleResponse":{
      "type":"structure",
      "required":[
        "bundleArn",
        "bundleId",
        "bundleName",
        "versionId",
        "components",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle.</p>"
        },
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the configuration bundle.</p>"
        },
        "bundleName":{
          "shape":"ConfigurationBundleName",
          "documentation":"<p>The name of the configuration bundle.</p>"
        },
        "description":{
          "shape":"ConfigurationBundleDescription",
          "documentation":"<p>The description of the configuration bundle.</p>"
        },
        "versionId":{
          "shape":"ConfigurationBundleVersion",
          "documentation":"<p>The version identifier of this configuration bundle.</p>"
        },
        "components":{
          "shape":"ComponentConfigurationMap",
          "documentation":"<p>A map of component identifiers to their configurations for this version.</p>"
        },
        "lineageMetadata":{
          "shape":"VersionLineageMetadata",
          "documentation":"<p>The version lineage metadata, including parent versions, branch name, and creation source.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the configuration bundle was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the configuration bundle was last updated.</p>"
        }
      }
    },
    "GetConfigurationBundleVersionRequest":{
      "type":"structure",
      "required":[
        "bundleId",
        "versionId"
      ],
      "members":{
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the configuration bundle.</p>",
          "location":"uri",
          "locationName":"bundleId"
        },
        "versionId":{
          "shape":"ConfigurationBundleVersion",
          "documentation":"<p>The version identifier of the configuration bundle version to retrieve.</p>",
          "location":"uri",
          "locationName":"versionId"
        }
      }
    },
    "GetConfigurationBundleVersionResponse":{
      "type":"structure",
      "required":[
        "bundleArn",
        "bundleId",
        "bundleName",
        "versionId",
        "components",
        "createdAt",
        "versionCreatedAt"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle.</p>"
        },
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the configuration bundle.</p>"
        },
        "bundleName":{
          "shape":"ConfigurationBundleName",
          "documentation":"<p>The name of the configuration bundle.</p>"
        },
        "description":{
          "shape":"ConfigurationBundleDescription",
          "documentation":"<p>The description of the configuration bundle.</p>"
        },
        "versionId":{
          "shape":"ConfigurationBundleVersion",
          "documentation":"<p>The version identifier of this configuration bundle version.</p>"
        },
        "components":{
          "shape":"ComponentConfigurationMap",
          "documentation":"<p>A map of component identifiers to their configurations for this version.</p>"
        },
        "lineageMetadata":{
          "shape":"VersionLineageMetadata",
          "documentation":"<p>The version lineage metadata, including parent versions, branch name, and creation source.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the configuration bundle was created.</p>"
        },
        "versionCreatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when this specific version was created.</p>"
        }
      }
    },
    "GetEvaluatorRequest":{
      "type":"structure",
      "required":["evaluatorId"],
      "members":{
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the evaluator to retrieve. Can be a built-in evaluator ID (e.g., Builtin.Helpfulness) or a custom evaluator ID. </p>",
          "location":"uri",
          "locationName":"evaluatorId"
        },
        "includedData":{
          "shape":"IncludedData",
          "documentation":"<p> Controls which data is returned in the response. <code>ALL_DATA</code> (default) returns the full evaluator including decrypted instructions and rating scale. For evaluators encrypted with a customer managed KMS key, this requires <code>kms:Decrypt</code> permission on the key. <code>METADATA_ONLY</code> returns evaluator metadata and model configuration without instructions or rating scale, and does not require any KMS permissions. </p>",
          "location":"querystring",
          "locationName":"includedData"
        }
      }
    },
    "GetEvaluatorResponse":{
      "type":"structure",
      "required":[
        "evaluatorArn",
        "evaluatorId",
        "evaluatorName",
        "evaluatorConfig",
        "level",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "evaluatorArn":{
          "shape":"EvaluatorArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the evaluator. </p>"
        },
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the evaluator. </p>"
        },
        "evaluatorName":{
          "shape":"EvaluatorName",
          "documentation":"<p> The name of the evaluator. </p>"
        },
        "description":{
          "shape":"EvaluatorDescription",
          "documentation":"<p> The description of the evaluator. </p>"
        },
        "evaluatorConfig":{
          "shape":"EvaluatorConfig",
          "documentation":"<p> The configuration of the evaluator, including LLM-as-a-Judge or code-based settings. </p>"
        },
        "level":{
          "shape":"EvaluatorLevel",
          "documentation":"<p> The evaluation level (<code>TOOL_CALL</code>, <code>TRACE</code>, or <code>SESSION</code>) that determines the scope of evaluation. </p>"
        },
        "status":{
          "shape":"EvaluatorStatus",
          "documentation":"<p> The current status of the evaluator. </p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the evaluator was created. </p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the evaluator was last updated. </p>"
        },
        "lockedForModification":{
          "shape":"Boolean",
          "documentation":"<p> Whether the evaluator is locked for modification due to being referenced by active online evaluation configurations. </p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the customer managed KMS key used to encrypt the evaluator's sensitive data. This field is only present for evaluators encrypted with a customer managed key. </p>"
        }
      }
    },
    "GetGatewayRequest":{
      "type":"structure",
      "required":["gatewayIdentifier"],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway to retrieve.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        }
      }
    },
    "GetGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayArn",
        "gatewayId",
        "createdAt",
        "updatedAt",
        "status",
        "name",
        "authorizerType"
      ],
      "members":{
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway.</p>"
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "gatewayUrl":{
          "shape":"GatewayUrl",
          "documentation":"<p>An endpoint for invoking gateway.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway was last updated.</p>"
        },
        "status":{
          "shape":"GatewayStatus",
          "documentation":"<p>The current status of the gateway.</p>"
        },
        "statusReasons":{
          "shape":"StatusReasons",
          "documentation":"<p>The reasons for the current status of the gateway.</p>"
        },
        "name":{
          "shape":"GatewayName",
          "documentation":"<p>The name of the gateway.</p>"
        },
        "description":{
          "shape":"GatewayDescription",
          "documentation":"<p>The description of the gateway.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM role ARN that provides permissions for the gateway.</p>"
        },
        "protocolType":{
          "shape":"GatewayProtocolType",
          "documentation":"<p>Protocol applied to a gateway.</p>"
        },
        "protocolConfiguration":{"shape":"GatewayProtocolConfiguration"},
        "authorizerType":{
          "shape":"AuthorizerType",
          "documentation":"<p>Authorizer type for the gateway.</p>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The authorizer configuration for the gateway.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the gateway.</p>"
        },
        "interceptorConfigurations":{
          "shape":"GatewayInterceptorConfigurations",
          "documentation":"<p>The interceptors configured on the gateway.</p>"
        },
        "policyEngineConfiguration":{
          "shape":"GatewayPolicyEngineConfiguration",
          "documentation":"<p>The policy engine configuration for the gateway.</p>"
        },
        "workloadIdentityDetails":{
          "shape":"WorkloadIdentityDetails",
          "documentation":"<p>The workload identity details for the gateway.</p>"
        },
        "exceptionLevel":{
          "shape":"ExceptionLevel",
          "documentation":"<p>The level of detail in error messages returned when invoking the gateway.</p> <ul> <li> <p>If the value is <code>DEBUG</code>, granular exception messages are returned to help a user debug the gateway.</p> </li> <li> <p>If the value is omitted, a generic error message is returned to the end user.</p> </li> </ul>"
        }
      }
    },
    "GetGatewayRuleRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "ruleId"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway containing the rule.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "ruleId":{
          "shape":"GatewayRuleId",
          "documentation":"<p>The unique identifier of the rule to retrieve.</p>",
          "location":"uri",
          "locationName":"ruleId"
        }
      }
    },
    "GetGatewayRuleResponse":{
      "type":"structure",
      "required":[
        "ruleId",
        "gatewayArn",
        "priority",
        "actions",
        "createdAt",
        "status"
      ],
      "members":{
        "ruleId":{
          "shape":"GatewayRuleId",
          "documentation":"<p>The unique identifier of the gateway rule.</p>"
        },
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway that the rule belongs to.</p>"
        },
        "priority":{
          "shape":"GatewayRulePriority",
          "documentation":"<p>The priority of the rule. Rules are evaluated in order of priority, with lower numbers evaluated first.</p>"
        },
        "conditions":{
          "shape":"Conditions",
          "documentation":"<p>The conditions that must be met for the rule to apply.</p>"
        },
        "actions":{
          "shape":"Actions",
          "documentation":"<p>The actions to take when the rule conditions are met.</p>"
        },
        "description":{
          "shape":"GatewayRuleDescription",
          "documentation":"<p>The description of the gateway rule.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the rule was created.</p>"
        },
        "status":{
          "shape":"GatewayRuleStatus",
          "documentation":"<p>The current status of the rule.</p>"
        },
        "system":{
          "shape":"SystemManagedBlock",
          "documentation":"<p>System-managed metadata for rules created by automated processes.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the rule was last updated.</p>"
        }
      },
      "documentation":"<p>Create response excludes updatedAt (redundant on create). Get/Update responses include it via their own output structures.</p>"
    },
    "GetGatewayTargetRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "targetId"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway that contains the target.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The unique identifier of the target to retrieve.</p>",
          "location":"uri",
          "locationName":"targetId"
        }
      }
    },
    "GetGatewayTargetResponse":{
      "type":"structure",
      "required":[
        "gatewayArn",
        "targetId",
        "createdAt",
        "updatedAt",
        "status",
        "name",
        "targetConfiguration",
        "credentialProviderConfigurations"
      ],
      "members":{
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway.</p>"
        },
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The unique identifier of the gateway target.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway target was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway target was last updated.</p>"
        },
        "status":{
          "shape":"TargetStatus",
          "documentation":"<p>The current status of the gateway target.</p>"
        },
        "statusReasons":{
          "shape":"StatusReasons",
          "documentation":"<p>The reasons for the current status of the gateway target.</p>"
        },
        "name":{
          "shape":"TargetName",
          "documentation":"<p>The name of the gateway target.</p>"
        },
        "description":{
          "shape":"TargetDescription",
          "documentation":"<p>The description of the gateway target.</p>"
        },
        "targetConfiguration":{"shape":"TargetConfiguration"},
        "credentialProviderConfigurations":{
          "shape":"CredentialProviderConfigurations",
          "documentation":"<p>The credential provider configurations for the gateway target.</p>"
        },
        "lastSynchronizedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The last synchronization of the target.</p>"
        },
        "metadataConfiguration":{
          "shape":"MetadataConfiguration",
          "documentation":"<p>The metadata configuration for HTTP header and query parameter propagation for the retrieved gateway target.</p>"
        },
        "privateEndpoint":{
          "shape":"PrivateEndpoint",
          "documentation":"<p>The private endpoint configuration for the gateway target.</p>"
        },
        "privateEndpointManagedResources":{
          "shape":"PrivateEndpointManagedResources",
          "documentation":"<p>The managed resources created by the gateway for private endpoint connectivity.</p>"
        },
        "authorizationData":{
          "shape":"AuthorizationData",
          "documentation":"<p>OAuth2 authorization data for the gateway target. This data is returned when a target is configured with a credential provider with authorization code grant type and requires user federation.</p>"
        },
        "protocolType":{
          "shape":"TargetProtocolType",
          "documentation":"<p>The protocol type of the gateway target.</p>"
        }
      }
    },
    "GetHarnessRequest":{
      "type":"structure",
      "required":["harnessId"],
      "members":{
        "harnessId":{
          "shape":"HarnessId",
          "documentation":"<p>The ID of the harness to retrieve.</p>",
          "location":"uri",
          "locationName":"harnessId"
        }
      }
    },
    "GetHarnessResponse":{
      "type":"structure",
      "required":["harness"],
      "members":{
        "harness":{
          "shape":"Harness",
          "documentation":"<p>The harness resource.</p>"
        }
      }
    },
    "GetMemoryInput":{
      "type":"structure",
      "required":["memoryId"],
      "members":{
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The unique identifier of the memory to retrieve.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "view":{
          "shape":"MemoryView",
          "documentation":"<p>The level of detail to return for the memory.</p>",
          "location":"querystring",
          "locationName":"view"
        }
      }
    },
    "GetMemoryOutput":{
      "type":"structure",
      "required":["memory"],
      "members":{
        "memory":{
          "shape":"Memory",
          "documentation":"<p>The retrieved AgentCore Memory resource details.</p>"
        }
      }
    },
    "GetOauth2CredentialProviderRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the OAuth2 credential provider to retrieve.</p>"
        }
      }
    },
    "GetOauth2CredentialProviderResponse":{
      "type":"structure",
      "required":[
        "clientSecretArn",
        "name",
        "credentialProviderArn",
        "credentialProviderVendor",
        "oauth2ProviderConfigOutput",
        "createdTime",
        "lastUpdatedTime"
      ],
      "members":{
        "clientSecretArn":{
          "shape":"Secret",
          "documentation":"<p>The Amazon Resource Name (ARN) of the client secret in AWS Secrets Manager.</p>"
        },
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the OAuth2 credential provider.</p>"
        },
        "credentialProviderArn":{
          "shape":"CredentialProviderArnType",
          "documentation":"<p>ARN of the credential provider requested.</p>"
        },
        "credentialProviderVendor":{
          "shape":"CredentialProviderVendorType",
          "documentation":"<p>The vendor of the OAuth2 credential provider.</p>"
        },
        "callbackUrl":{
          "shape":"String",
          "documentation":"<p>Callback URL to register on the OAuth2 credential provider as an allowed callback URL. This URL is where the OAuth2 authorization server redirects users after they complete the authorization flow.</p>"
        },
        "oauth2ProviderConfigOutput":{
          "shape":"Oauth2ProviderConfigOutput",
          "documentation":"<p>The configuration output for the OAuth2 provider.</p>"
        },
        "createdTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the OAuth2 credential provider was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the OAuth2 credential provider was last updated.</p>"
        },
        "status":{
          "shape":"Status",
          "documentation":"<p>The current status of the OAuth2 credential provider.</p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p>The reason for the failure if the OAuth2 credential provider is in a failed state.</p>"
        }
      }
    },
    "GetOnlineEvaluationConfigRequest":{
      "type":"structure",
      "required":["onlineEvaluationConfigId"],
      "members":{
        "onlineEvaluationConfigId":{
          "shape":"OnlineEvaluationConfigId",
          "documentation":"<p> The unique identifier of the online evaluation configuration to retrieve. </p>",
          "location":"uri",
          "locationName":"onlineEvaluationConfigId"
        }
      }
    },
    "GetOnlineEvaluationConfigResponse":{
      "type":"structure",
      "required":[
        "onlineEvaluationConfigArn",
        "onlineEvaluationConfigId",
        "onlineEvaluationConfigName",
        "rule",
        "dataSourceConfig",
        "evaluators",
        "status",
        "executionStatus",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "onlineEvaluationConfigArn":{
          "shape":"OnlineEvaluationConfigArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the online evaluation configuration. </p>"
        },
        "onlineEvaluationConfigId":{
          "shape":"OnlineEvaluationConfigId",
          "documentation":"<p> The unique identifier of the online evaluation configuration. </p>"
        },
        "onlineEvaluationConfigName":{
          "shape":"EvaluationConfigName",
          "documentation":"<p> The name of the online evaluation configuration. </p>"
        },
        "description":{
          "shape":"EvaluationConfigDescription",
          "documentation":"<p> The description of the online evaluation configuration. </p>"
        },
        "rule":{
          "shape":"Rule",
          "documentation":"<p> The evaluation rule containing sampling configuration, filters, and session settings. </p>"
        },
        "dataSourceConfig":{
          "shape":"DataSourceConfig",
          "documentation":"<p> The data source configuration specifying CloudWatch log groups and service names to monitor. </p>"
        },
        "evaluators":{
          "shape":"EvaluatorList",
          "documentation":"<p> The list of evaluators applied during online evaluation. </p>"
        },
        "outputConfig":{
          "shape":"OutputConfig",
          "documentation":"<p> The output configuration specifying where evaluation results are written. </p>"
        },
        "evaluationExecutionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the IAM role used for evaluation execution. </p>"
        },
        "status":{
          "shape":"OnlineEvaluationConfigStatus",
          "documentation":"<p> The status of the online evaluation configuration. </p>"
        },
        "executionStatus":{
          "shape":"OnlineEvaluationExecutionStatus",
          "documentation":"<p> The execution status indicating whether the online evaluation is currently running. </p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the online evaluation configuration was created. </p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the online evaluation configuration was last updated. </p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p> The reason for failure if the online evaluation configuration execution failed. </p>"
        }
      }
    },
    "GetPolicyEngineRequest":{
      "type":"structure",
      "required":["policyEngineId"],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy engine to be retrieved. This must be a valid policy engine ID that exists within the account.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        }
      }
    },
    "GetPolicyEngineResponse":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "name",
        "createdAt",
        "updatedAt",
        "policyEngineArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the retrieved policy engine. This matches the policy engine ID provided in the request and serves as the system identifier.</p>"
        },
        "name":{
          "shape":"PolicyEngineName",
          "documentation":"<p>The customer-assigned name of the policy engine. This is the human-readable identifier that was specified when the policy engine was created.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The human-readable description of the policy engine's purpose and scope. This helps administrators understand the policy engine's role in governance.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy engine was originally created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy engine was last modified. This tracks the most recent changes to the policy engine configuration.</p>"
        },
        "policyEngineArn":{
          "shape":"PolicyEngineArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy engine. This globally unique identifier can be used for cross-service references and IAM policy statements.</p>"
        },
        "status":{
          "shape":"PolicyEngineStatus",
          "documentation":"<p>The current status of the policy engine.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the policy engine status. This provides details about any failures or the current state of the policy engine.</p>"
        },
        "encryptionKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.</p>"
        }
      }
    },
    "GetPolicyGenerationRequest":{
      "type":"structure",
      "required":[
        "policyGenerationId",
        "policyEngineId"
      ],
      "members":{
        "policyGenerationId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy generation request to be retrieved. This must be a valid generation ID from a previous <a href=\"https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_StartPolicyGeneration.html\">StartPolicyGeneration</a> call.</p>",
          "location":"uri",
          "locationName":"policyGenerationId"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine associated with the policy generation request. This provides the context for the generation operation and schema validation.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        }
      }
    },
    "GetPolicyGenerationResponse":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "policyGenerationId",
        "name",
        "policyGenerationArn",
        "resource",
        "createdAt",
        "updatedAt",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine associated with this policy generation. This confirms the policy engine context for the generation operation.</p>"
        },
        "policyGenerationId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy generation request. This matches the generation ID provided in the request and serves as the tracking identifier.</p>"
        },
        "name":{
          "shape":"PolicyGenerationName",
          "documentation":"<p>The customer-assigned name for the policy generation request. This helps identify and track generation operations across multiple requests.</p>"
        },
        "policyGenerationArn":{
          "shape":"PolicyGenerationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy generation. This globally unique identifier can be used for tracking, auditing, and cross-service references.</p>"
        },
        "resource":{
          "shape":"Resource",
          "documentation":"<p>The resource information associated with the policy generation. This provides context about the target resources for which the policies are being generated.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy generation request was created. This is used for tracking and auditing generation operations and their lifecycle.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy generation was last updated. This tracks the progress of the generation process and any status changes.</p>"
        },
        "status":{
          "shape":"PolicyGenerationStatus",
          "documentation":"<p>The current status of the policy generation. This indicates whether the generation is in progress, completed successfully, or failed during processing.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the generation status. This provides details about any failures, warnings, or the current state of the generation process.</p>"
        },
        "findings":{
          "shape":"String",
          "documentation":"<p>The findings and results from the policy generation process. This includes any issues, recommendations, validation results, or insights from the generated policies.</p>"
        }
      }
    },
    "GetPolicyRequest":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "policyId"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine that manages the policy to be retrieved.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        },
        "policyId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy to be retrieved. This must be a valid policy ID that exists within the specified policy engine.</p>",
          "location":"uri",
          "locationName":"policyId"
        }
      }
    },
    "GetPolicyResponse":{
      "type":"structure",
      "required":[
        "policyId",
        "name",
        "policyEngineId",
        "definition",
        "createdAt",
        "updatedAt",
        "policyArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the retrieved policy. This matches the policy ID provided in the request and serves as the system identifier for the policy.</p>"
        },
        "name":{
          "shape":"PolicyName",
          "documentation":"<p>The customer-assigned name of the policy. This is the human-readable identifier that was specified when the policy was created.</p>"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine that manages this policy. This confirms the policy engine context for the retrieved policy.</p>"
        },
        "definition":{
          "shape":"PolicyDefinition",
          "documentation":"<p>The Cedar policy statement that defines the access control rules. This contains the actual policy logic used for agent behavior control and access decisions.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The human-readable description of the policy's purpose and functionality. This helps administrators understand and manage the policy.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy was originally created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy was last modified. This tracks the most recent changes to the policy configuration.</p>"
        },
        "policyArn":{
          "shape":"PolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy. This globally unique identifier can be used for cross-service references and IAM policy statements.</p>"
        },
        "status":{
          "shape":"PolicyStatus",
          "documentation":"<p>The current status of the policy.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the policy status. This provides details about any failures or the current state of the policy.</p>"
        }
      }
    },
    "GetRegistryRecordRequest":{
      "type":"structure",
      "required":[
        "registryId",
        "recordId"
      ],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry containing the record. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        },
        "recordId":{
          "shape":"RecordIdentifier",
          "documentation":"<p>The identifier of the registry record to retrieve. You can specify either the Amazon Resource Name (ARN) or the ID of the record.</p>",
          "location":"uri",
          "locationName":"recordId"
        }
      }
    },
    "GetRegistryRecordResponse":{
      "type":"structure",
      "required":[
        "registryArn",
        "recordArn",
        "recordId",
        "name",
        "descriptorType",
        "descriptors",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the registry that contains the record.</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>The description of the registry record.</p>"
        },
        "descriptorType":{
          "shape":"DescriptorType",
          "documentation":"<p>The descriptor type of the registry record. Possible values are <code>MCP</code>, <code>A2A</code>, <code>CUSTOM</code>, and <code>AGENT_SKILLS</code>.</p>"
        },
        "descriptors":{
          "shape":"Descriptors",
          "documentation":"<p>The descriptor-type-specific configuration containing the resource schema and metadata. For details, see the <code>Descriptors</code> data type.</p>"
        },
        "recordVersion":{
          "shape":"RegistryRecordVersion",
          "documentation":"<p>The version of the registry record.</p>"
        },
        "status":{
          "shape":"RegistryRecordStatus",
          "documentation":"<p>The current status of the registry record. Possible values include <code>CREATING</code>, <code>DRAFT</code>, <code>APPROVED</code>, <code>PENDING_APPROVAL</code>, <code>REJECTED</code>, <code>DEPRECATED</code>, <code>UPDATING</code>, <code>CREATE_FAILED</code>, and <code>UPDATE_FAILED</code>. A record transitions from <code>CREATING</code> to <code>DRAFT</code>, then to <code>PENDING_APPROVAL</code> (via <code>SubmitRegistryRecordForApproval</code>), and finally to <code>APPROVED</code> upon approval.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry record was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry record was last updated.</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>The reason for the current status, typically set when the status is a failure state.</p>"
        },
        "synchronizationType":{
          "shape":"SynchronizationType",
          "documentation":"<p>The type of synchronization used for this record.</p>"
        },
        "synchronizationConfiguration":{
          "shape":"SynchronizationConfiguration",
          "documentation":"<p>The configuration for synchronizing registry record metadata from an external source.</p>"
        }
      }
    },
    "GetRegistryRequest":{
      "type":"structure",
      "required":["registryId"],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry to retrieve. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        }
      }
    },
    "GetRegistryResponse":{
      "type":"structure",
      "required":[
        "name",
        "registryId",
        "registryArn",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "name":{
          "shape":"RegistryName",
          "documentation":"<p>The name of the registry.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the registry.</p>"
        },
        "registryId":{
          "shape":"RegistryId",
          "documentation":"<p>The unique identifier of the registry.</p>"
        },
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the registry.</p>"
        },
        "authorizerType":{
          "shape":"RegistryAuthorizerType",
          "documentation":"<p>The type of authorizer used by the registry. This controls the authorization method for the Search and Invoke APIs used by consumers.</p> <ul> <li> <p> <code>CUSTOM_JWT</code> - Authorize with a bearer token.</p> </li> <li> <p> <code>AWS_IAM</code> - Authorize with your Amazon Web Services IAM credentials.</p> </li> </ul>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The authorizer configuration for the registry. For details, see the <code>AuthorizerConfiguration</code> data type.</p>"
        },
        "approvalConfiguration":{
          "shape":"ApprovalConfiguration",
          "documentation":"<p>The approval configuration for registry records. For details, see the <code>ApprovalConfiguration</code> data type.</p>"
        },
        "status":{
          "shape":"RegistryStatus",
          "documentation":"<p>The current status of the registry. Possible values include <code>CREATING</code>, <code>READY</code>, <code>UPDATING</code>, <code>CREATE_FAILED</code>, <code>UPDATE_FAILED</code>, <code>DELETING</code>, and <code>DELETE_FAILED</code>.</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>The reason for the current status, typically set when the status is a failure state.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry was last updated.</p>"
        }
      }
    },
    "GetResourcePolicyRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"BedrockAgentcoreResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource for which to retrieve the resource policy.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "GetResourcePolicyResponse":{
      "type":"structure",
      "members":{
        "policy":{
          "shape":"ResourcePolicyBody",
          "documentation":"<p>The resource policy associated with the specified resource.</p>"
        }
      }
    },
    "GetTokenVaultRequest":{
      "type":"structure",
      "members":{
        "tokenVaultId":{
          "shape":"TokenVaultIdType",
          "documentation":"<p>The unique identifier of the token vault to retrieve.</p>"
        }
      }
    },
    "GetTokenVaultResponse":{
      "type":"structure",
      "required":[
        "tokenVaultId",
        "kmsConfiguration",
        "lastModifiedDate"
      ],
      "members":{
        "tokenVaultId":{
          "shape":"TokenVaultIdType",
          "documentation":"<p>The ID of the token vault.</p>"
        },
        "kmsConfiguration":{
          "shape":"KmsConfiguration",
          "documentation":"<p>The KMS configuration for the token vault.</p>"
        },
        "lastModifiedDate":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the token vault was last modified.</p>"
        }
      }
    },
    "GetWorkloadIdentityRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The name of the workload identity to retrieve.</p>"
        }
      }
    },
    "GetWorkloadIdentityResponse":{
      "type":"structure",
      "required":[
        "name",
        "workloadIdentityArn",
        "createdTime",
        "lastUpdatedTime"
      ],
      "members":{
        "name":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The name of the workload identity.</p>"
        },
        "workloadIdentityArn":{
          "shape":"WorkloadIdentityArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the workload identity.</p>"
        },
        "allowedResourceOauth2ReturnUrls":{
          "shape":"ResourceOauth2ReturnUrlListType",
          "documentation":"<p>The list of allowed OAuth2 return URLs for resources associated with this workload identity.</p>"
        },
        "createdTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the workload identity was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the workload identity was last updated.</p>"
        }
      }
    },
    "GithubOauth2ProviderConfigInput":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the GitHub OAuth2 provider.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecretType",
          "documentation":"<p>The client secret for the GitHub OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Input configuration for a GitHub OAuth2 provider.</p>"
    },
    "GithubOauth2ProviderConfigOutput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{
          "shape":"Oauth2Discovery",
          "documentation":"<p>The OAuth2 discovery information for the GitHub provider.</p>"
        },
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the GitHub OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Output configuration for a GitHub OAuth2 provider.</p>"
    },
    "GoogleOauth2ProviderConfigInput":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Google OAuth2 provider.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecretType",
          "documentation":"<p>The client secret for the Google OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Input configuration for a Google OAuth2 provider.</p>"
    },
    "GoogleOauth2ProviderConfigOutput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{
          "shape":"Oauth2Discovery",
          "documentation":"<p>The OAuth2 discovery information for the Google provider.</p>"
        },
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Google OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Output configuration for a Google OAuth2 provider.</p>"
    },
    "Harness":{
      "type":"structure",
      "required":[
        "harnessId",
        "harnessName",
        "arn",
        "status",
        "executionRoleArn",
        "createdAt",
        "updatedAt",
        "model",
        "systemPrompt",
        "tools",
        "skills",
        "allowedTools",
        "truncation",
        "environment"
      ],
      "members":{
        "harnessId":{
          "shape":"HarnessId",
          "documentation":"<p>The ID of the Harness.</p>"
        },
        "harnessName":{
          "shape":"HarnessName",
          "documentation":"<p>The name of the Harness.</p>"
        },
        "arn":{
          "shape":"HarnessArn",
          "documentation":"<p>The ARN of the Harness.</p>"
        },
        "status":{
          "shape":"HarnessStatus",
          "documentation":"<p>The status of the Harness.</p>"
        },
        "executionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>IAM role the Harness assumes when running.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The createdAt time of the Harness.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The updatedAt time of the Harness.</p>"
        },
        "model":{
          "shape":"HarnessModelConfiguration",
          "documentation":"<p>The configuration of the default model used by the Harness.</p>"
        },
        "systemPrompt":{
          "shape":"HarnessSystemPrompt",
          "documentation":"<p>The system prompt of the Harness.</p>"
        },
        "tools":{
          "shape":"HarnessTools",
          "documentation":"<p>The tools of the Harness.</p>"
        },
        "skills":{
          "shape":"HarnessSkills",
          "documentation":"<p>The skills of the Harness.</p>"
        },
        "allowedTools":{
          "shape":"HarnessAllowedTools",
          "documentation":"<p>The allowed tools of the Harness. All tools are allowed by default.</p>"
        },
        "truncation":{
          "shape":"HarnessTruncationConfiguration",
          "documentation":"<p>Configuration for truncating model context.</p>"
        },
        "environment":{
          "shape":"HarnessEnvironmentProvider",
          "documentation":"<p>The compute environment on which the Harness runs.</p>"
        },
        "environmentArtifact":{
          "shape":"HarnessEnvironmentArtifact",
          "documentation":"<p>The environment artifact (e.g., container) in which the Harness operates.</p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariablesMap",
          "documentation":"<p>Environment variables exposed in the environment in which the Harness operates.</p>"
        },
        "authorizerConfiguration":{"shape":"AuthorizerConfiguration"},
        "memory":{
          "shape":"HarnessMemoryConfiguration",
          "documentation":"<p>AgentCore Memory instance configuration for short and long term memory.</p>"
        },
        "maxIterations":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of iterations in the agent loop allowed before exiting per invocation.</p>"
        },
        "maxTokens":{
          "shape":"Integer",
          "documentation":"<p>The maximum total number of output tokens the agent can generate across all model calls within a single invocation.</p>"
        },
        "timeoutSeconds":{
          "shape":"Integer",
          "documentation":"<p>The maximum duration per invocation.</p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p>Reason why create or update operations fail.</p>"
        }
      },
      "documentation":"<p>Representation of a Harness.</p>"
    },
    "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>"
    },
    "HarnessAgentCoreMemoryConfiguration":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"MemoryArn",
          "documentation":"<p>The ARN of the AgentCore Memory resource.</p>"
        },
        "actorId":{
          "shape":"String",
          "documentation":"<p>The actor ID for memory operations.</p>"
        },
        "messagesCount":{
          "shape":"Integer",
          "documentation":"<p>The number of messages to retrieve from memory.</p>"
        },
        "retrievalConfig":{
          "shape":"HarnessAgentCoreMemoryRetrievalConfigs",
          "documentation":"<p>The retrieval configuration for long-term memory, mapping namespace path templates to retrieval settings.</p>"
        }
      },
      "documentation":"<p>Configuration for AgentCore Memory integration.</p>"
    },
    "HarnessAgentCoreMemoryRetrievalConfig":{
      "type":"structure",
      "members":{
        "topK":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of memory entries to retrieve.</p>"
        },
        "relevanceScore":{
          "shape":"Float",
          "documentation":"<p>The minimum relevance score for retrieved memories.</p>"
        },
        "strategyId":{
          "shape":"String",
          "documentation":"<p>The ID of the retrieval strategy to use.</p>"
        }
      },
      "documentation":"<p>Configuration for memory retrieval within a namespace.</p>"
    },
    "HarnessAgentCoreMemoryRetrievalConfigs":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"HarnessAgentCoreMemoryRetrievalConfig"}
    },
    "HarnessAgentCoreRuntimeEnvironment":{
      "type":"structure",
      "required":[
        "agentRuntimeArn",
        "agentRuntimeName",
        "agentRuntimeId",
        "lifecycleConfiguration",
        "networkConfiguration"
      ],
      "members":{
        "agentRuntimeArn":{
          "shape":"BedrockAgentcoreResourceArn",
          "documentation":"<p>The ARN of the underlying AgentCore Runtime.</p>"
        },
        "agentRuntimeName":{
          "shape":"String",
          "documentation":"<p>The name of the underlying AgentCore Runtime.</p>"
        },
        "agentRuntimeId":{
          "shape":"String",
          "documentation":"<p>The ID of the underlying AgentCore Runtime.</p>"
        },
        "lifecycleConfiguration":{"shape":"LifecycleConfiguration"},
        "networkConfiguration":{"shape":"NetworkConfiguration"},
        "filesystemConfigurations":{
          "shape":"FilesystemConfigurations",
          "documentation":"<p>The filesystem configurations for the runtime environment.</p>"
        }
      },
      "documentation":"<p>The AgentCore Runtime environment for a harness.</p>"
    },
    "HarnessAgentCoreRuntimeEnvironmentRequest":{
      "type":"structure",
      "members":{
        "lifecycleConfiguration":{"shape":"LifecycleConfiguration"},
        "networkConfiguration":{"shape":"NetworkConfiguration"},
        "filesystemConfigurations":{
          "shape":"FilesystemConfigurations",
          "documentation":"<p>The filesystem configurations for the runtime environment.</p>"
        }
      },
      "documentation":"<p>The AgentCore Runtime environment request configuration.</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 model call.</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>"
    },
    "HarnessEnvironmentArtifact":{
      "type":"structure",
      "members":{
        "containerConfiguration":{"shape":"ContainerConfiguration"}
      },
      "documentation":"<p>The environment artifact for a harness, such as a container image containing custom dependencies.</p>",
      "union":true
    },
    "HarnessEnvironmentProvider":{
      "type":"structure",
      "members":{
        "agentCoreRuntimeEnvironment":{
          "shape":"HarnessAgentCoreRuntimeEnvironment",
          "documentation":"<p>The AgentCore Runtime environment configuration.</p>"
        }
      },
      "documentation":"<p>The environment provider for a harness.</p>",
      "union":true
    },
    "HarnessEnvironmentProviderRequest":{
      "type":"structure",
      "members":{
        "agentCoreRuntimeEnvironment":{
          "shape":"HarnessAgentCoreRuntimeEnvironmentRequest",
          "documentation":"<p>The AgentCore Runtime environment configuration.</p>"
        }
      },
      "documentation":"<p>The environment provider request configuration.</p>",
      "union":true
    },
    "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>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 model call.</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>"
    },
    "HarnessId":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}"
    },
    "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
    },
    "HarnessMemoryConfiguration":{
      "type":"structure",
      "members":{
        "agentCoreMemoryConfiguration":{
          "shape":"HarnessAgentCoreMemoryConfiguration",
          "documentation":"<p>The AgentCore Memory configuration.</p>"
        }
      },
      "documentation":"<p>The memory configuration for a harness.</p>",
      "union":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
    },
    "HarnessName":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,39}"
    },
    "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 model call.</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>"
    },
    "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"}
    },
    "HarnessSlidingWindowConfiguration":{
      "type":"structure",
      "members":{
        "messagesCount":{
          "shape":"Integer",
          "documentation":"<p>The number of recent messages to retain in the context window.</p>"
        }
      },
      "documentation":"<p>Configuration for sliding window truncation strategy.</p>"
    },
    "HarnessStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "CREATE_FAILED",
        "UPDATING",
        "UPDATE_FAILED",
        "READY",
        "DELETING",
        "DELETE_FAILED"
      ]
    },
    "HarnessSummaries":{
      "type":"list",
      "member":{"shape":"HarnessSummary"}
    },
    "HarnessSummarizationConfiguration":{
      "type":"structure",
      "members":{
        "summaryRatio":{
          "shape":"Float",
          "documentation":"<p>The ratio of content to summarize.</p>"
        },
        "preserveRecentMessages":{
          "shape":"Integer",
          "documentation":"<p>The number of recent messages to preserve without summarization.</p>"
        },
        "summarizationSystemPrompt":{
          "shape":"String",
          "documentation":"<p>The system prompt used for generating summaries.</p>"
        }
      },
      "documentation":"<p>Configuration for summarization-based truncation strategy.</p>"
    },
    "HarnessSummary":{
      "type":"structure",
      "required":[
        "harnessId",
        "harnessName",
        "arn",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "harnessId":{
          "shape":"HarnessId",
          "documentation":"<p>The ID of the harness.</p>"
        },
        "harnessName":{
          "shape":"HarnessName",
          "documentation":"<p>The name of the harness.</p>"
        },
        "arn":{
          "shape":"HarnessArn",
          "documentation":"<p>The ARN of the harness.</p>"
        },
        "status":{
          "shape":"HarnessStatus",
          "documentation":"<p>The current status of the harness.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the harness was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the harness was last updated.</p>"
        }
      },
      "documentation":"<p>Summary information about a harness.</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"}
    },
    "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_-]+"
    },
    "HarnessToolType":{
      "type":"string",
      "enum":[
        "remote_mcp",
        "agentcore_browser",
        "agentcore_gateway",
        "inline_function",
        "agentcore_code_interpreter"
      ]
    },
    "HarnessTools":{
      "type":"list",
      "member":{"shape":"HarnessTool"}
    },
    "HarnessTruncationConfiguration":{
      "type":"structure",
      "required":["strategy"],
      "members":{
        "strategy":{
          "shape":"HarnessTruncationStrategy",
          "documentation":"<p>The truncation strategy to use.</p>"
        },
        "config":{
          "shape":"HarnessTruncationStrategyConfiguration",
          "documentation":"<p>The strategy-specific configuration.</p>"
        }
      },
      "documentation":"<p>Configuration for truncating conversation context when it exceeds model limits.</p>"
    },
    "HarnessTruncationStrategy":{
      "type":"string",
      "enum":[
        "sliding_window",
        "summarization",
        "none"
      ]
    },
    "HarnessTruncationStrategyConfiguration":{
      "type":"structure",
      "members":{
        "slidingWindow":{
          "shape":"HarnessSlidingWindowConfiguration",
          "documentation":"<p>Configuration for sliding window truncation.</p>"
        },
        "summarization":{
          "shape":"HarnessSummarizationConfiguration",
          "documentation":"<p>Configuration for summarization-based truncation.</p>"
        }
      },
      "documentation":"<p>Strategy-specific truncation configuration.</p>",
      "union":true
    },
    "HeaderName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[A-Za-z][A-Za-z0-9_-]{0,255}"
    },
    "HttpHeaderKey":{
      "type":"string",
      "documentation":"<p>The key of an HTTP header.</p>",
      "max":16383,
      "min":1
    },
    "HttpHeaderName":{
      "type":"string",
      "max":100,
      "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
    },
    "HttpQueryParameterName":{
      "type":"string",
      "max":40,
      "min":1
    },
    "HttpTargetConfiguration":{
      "type":"structure",
      "members":{
        "agentcoreRuntime":{
          "shape":"RuntimeTargetConfiguration",
          "documentation":"<p>The AgentCore Runtime target configuration for HTTP-based communication with an agent runtime.</p>"
        }
      },
      "documentation":"<p>The HTTP target configuration for a gateway target. Contains the configuration for HTTP-based target endpoints.</p>",
      "union":true
    },
    "IamCredentialProvider":{
      "type":"structure",
      "required":["service"],
      "members":{
        "service":{
          "shape":"IamCredentialProviderServiceString",
          "documentation":"<p>The target Amazon Web Services service name used for SigV4 signing. This value identifies the service that the gateway authenticates with when making requests to the target endpoint.</p>"
        },
        "region":{
          "shape":"IamCredentialProviderRegionString",
          "documentation":"<p>The Amazon Web Services Region used for SigV4 signing. If not specified, defaults to the gateway's Region.</p>"
        }
      },
      "documentation":"<p>An IAM credential provider for gateway authentication. This structure contains the configuration for authenticating with the target endpoint using IAM credentials and SigV4 signing.</p>"
    },
    "IamCredentialProviderRegionString":{
      "type":"string",
      "max":32,
      "min":1,
      "pattern":"[a-zA-Z0-9-]+"
    },
    "IamCredentialProviderServiceString":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9._-]+"
    },
    "IamPrincipal":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"IamPrincipalArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM principal. Supports user, role, and assumed-role ARNs. Wildcards can be used with the <code>StringLike</code> operator.</p>"
        },
        "operator":{
          "shape":"PrincipalMatchOperator",
          "documentation":"<p>The match operator. <code>StringEquals</code> requires an exact match. <code>StringLike</code> supports wildcard patterns using <code>*</code> and <code>?</code>.</p>"
        }
      },
      "documentation":"<p>An IAM principal specification for rule matching.</p>"
    },
    "IamPrincipalArn":{
      "type":"string",
      "max":2048,
      "min":0,
      "pattern":"(arn:aws[a-zA-Z-]*:iam::(\\d{12}|\\*):(user|role)/[\\w+=,.@*?/-]+|arn:aws[a-zA-Z-]*:sts::(\\d{12}|\\*):assumed-role/[\\w+=,.@*?/-]+)"
    },
    "IamRoleArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+"
    },
    "IamSigningRegion":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-z0-9-]+"
    },
    "IamSigningServiceName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "InboundTokenClaimNameType":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[A-Za-z0-9_.-:]+"
    },
    "InboundTokenClaimValueType":{
      "type":"string",
      "enum":[
        "STRING",
        "STRING_ARRAY"
      ]
    },
    "IncludedData":{
      "type":"string",
      "enum":[
        "ALL_DATA",
        "METADATA_ONLY"
      ]
    },
    "IncludedOauth2ProviderConfigInput":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the supported OAuth2 provider. This identifier is assigned by the OAuth2 provider when you register your application.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecretType",
          "documentation":"<p>The client secret for the supported OAuth2 provider. This secret is assigned by the OAuth2 provider and used along with the client ID to authenticate your application.</p>"
        },
        "issuer":{
          "shape":"IssuerUrlType",
          "documentation":"<p>Token issuer of your isolated OAuth2 application tenant. This URL identifies the authorization server that issues tokens for this provider.</p>"
        },
        "authorizationEndpoint":{
          "shape":"AuthorizationEndpointType",
          "documentation":"<p>OAuth2 authorization endpoint for your isolated OAuth2 application tenant. This is where users are redirected to authenticate and authorize access to their resources.</p>"
        },
        "tokenEndpoint":{
          "shape":"TokenEndpointType",
          "documentation":"<p>OAuth2 token endpoint for your isolated OAuth2 application tenant. This is where authorization codes are exchanged for access tokens.</p>"
        }
      },
      "documentation":"<p>Configuration settings for connecting to a supported OAuth2 provider. This includes client credentials and OAuth2 discovery information for providers that have built-in support.</p>"
    },
    "IncludedOauth2ProviderConfigOutput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{"shape":"Oauth2Discovery"},
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the supported OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>The configuration details returned for a supported OAuth2 provider, including client credentials and OAuth2 discovery information.</p>"
    },
    "IndexedKey":{
      "type":"structure",
      "required":[
        "key",
        "type"
      ],
      "members":{
        "key":{
          "shape":"MetadataKey",
          "documentation":"<p>The metadata key name to index.</p>"
        },
        "type":{
          "shape":"MetadataValueType",
          "documentation":"<p>The data type of the indexed key.</p>"
        }
      },
      "documentation":"<p>A metadata key indexed for filtering.</p>"
    },
    "IndexedKeysList":{
      "type":"list",
      "member":{"shape":"IndexedKey"},
      "max":10,
      "min":1
    },
    "InferenceConfiguration":{
      "type":"structure",
      "members":{
        "maxTokens":{
          "shape":"InferenceConfigurationMaxTokensInteger",
          "documentation":"<p> The maximum number of tokens to generate in the model response during evaluation. </p>"
        },
        "temperature":{
          "shape":"InferenceConfigurationTemperatureFloat",
          "documentation":"<p> The temperature value that controls randomness in the model's responses. Lower values produce more deterministic outputs. </p>"
        },
        "topP":{
          "shape":"InferenceConfigurationTopPFloat",
          "documentation":"<p> The top-p sampling parameter that controls the diversity of the model's responses by limiting the cumulative probability of token choices. </p>"
        },
        "stopSequences":{
          "shape":"InferenceConfigurationStopSequencesList",
          "documentation":"<p> The list of sequences that will cause the model to stop generating tokens when encountered. </p>"
        }
      },
      "documentation":"<p> The configuration parameters that control how the foundation model behaves during evaluation, including response generation settings. </p>"
    },
    "InferenceConfigurationMaxTokensInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "InferenceConfigurationStopSequencesList":{
      "type":"list",
      "member":{"shape":"NonEmptyString"},
      "max":2500,
      "min":0
    },
    "InferenceConfigurationTemperatureFloat":{
      "type":"float",
      "box":true,
      "max":1,
      "min":0
    },
    "InferenceConfigurationTopPFloat":{
      "type":"float",
      "box":true,
      "max":1,
      "min":0
    },
    "InlineContent":{
      "type":"string",
      "max":102400,
      "min":1
    },
    "InlinePayload":{
      "type":"string",
      "sensitive":true
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InterceptorConfiguration":{
      "type":"structure",
      "members":{
        "lambda":{
          "shape":"LambdaInterceptorConfiguration",
          "documentation":"<p>The details of the lambda function used for the interceptor.</p>"
        }
      },
      "documentation":"<p>The interceptor configuration.</p>",
      "union":true
    },
    "InterceptorInputConfiguration":{
      "type":"structure",
      "required":["passRequestHeaders"],
      "members":{
        "passRequestHeaders":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether to pass request headers as input into the interceptor. When set to true, request headers will be passed.</p>"
        }
      },
      "documentation":"<p>The input configuration of the interceptor.</p>"
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>This exception is thrown if there was an unexpected error during processing of request</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "InvocationConfiguration":{
      "type":"structure",
      "required":[
        "topicArn",
        "payloadDeliveryBucketName"
      ],
      "members":{
        "topicArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the SNS topic for job notifications.</p>"
        },
        "payloadDeliveryBucketName":{
          "shape":"String",
          "documentation":"<p>The S3 bucket name for event payload delivery.</p>"
        }
      },
      "documentation":"<p>The configuration to invoke a self-managed memory processing pipeline with.</p>"
    },
    "InvocationConfigurationInput":{
      "type":"structure",
      "required":[
        "topicArn",
        "payloadDeliveryBucketName"
      ],
      "members":{
        "topicArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the SNS topic for job notifications.</p>"
        },
        "payloadDeliveryBucketName":{
          "shape":"InvocationConfigurationInputPayloadDeliveryBucketNameString",
          "documentation":"<p>The S3 bucket name for event payload delivery.</p>"
        }
      },
      "documentation":"<p>The configuration to invoke a self-managed memory processing pipeline with.</p>"
    },
    "InvocationConfigurationInputPayloadDeliveryBucketNameString":{
      "type":"string",
      "pattern":"[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]"
    },
    "IssuerUrlType":{"type":"string"},
    "KeyType":{
      "type":"string",
      "enum":[
        "CustomerManagedKey",
        "ServiceManagedKey"
      ]
    },
    "KinesisResource":{
      "type":"structure",
      "required":[
        "dataStreamArn",
        "contentConfigurations"
      ],
      "members":{
        "dataStreamArn":{
          "shape":"Arn",
          "documentation":"<p>ARN of the Kinesis Data Stream.</p>"
        },
        "contentConfigurations":{
          "shape":"KinesisResourceContentConfigurationsList",
          "documentation":"<p>Content configurations for stream delivery.</p>"
        }
      },
      "documentation":"<p>Configuration for Kinesis Data Stream delivery.</p>"
    },
    "KinesisResourceContentConfigurationsList":{
      "type":"list",
      "member":{"shape":"ContentConfiguration"},
      "max":1,
      "min":1
    },
    "KmsConfiguration":{
      "type":"structure",
      "required":["keyType"],
      "members":{
        "keyType":{
          "shape":"KeyType",
          "documentation":"<p>The type of KMS key (CustomerManagedKey or ServiceManagedKey).</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key.</p>"
        }
      },
      "documentation":"<p>Contains the KMS configuration for a resource.</p>"
    },
    "KmsKeyArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}"
    },
    "LambdaArn":{
      "type":"string",
      "pattern":"arn:(aws[a-zA-Z-]*)?:lambda:([a-z]{2}(-gov)?-[a-z]+-\\d{1}):(\\d{12}):function:([a-zA-Z0-9-_.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?"
    },
    "LambdaEvaluatorConfig":{
      "type":"structure",
      "required":["lambdaArn"],
      "members":{
        "lambdaArn":{
          "shape":"LambdaArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the Lambda function that implements the evaluation logic. </p>"
        },
        "lambdaTimeoutInSeconds":{
          "shape":"LambdaEvaluatorConfigLambdaTimeoutInSecondsInteger",
          "documentation":"<p> The timeout in seconds for the Lambda function invocation. Defaults to 60. Must be between 1 and 300. </p>"
        }
      },
      "documentation":"<p> Configuration for a Lambda function used as a code-based evaluator. </p>"
    },
    "LambdaEvaluatorConfigLambdaTimeoutInSecondsInteger":{
      "type":"integer",
      "box":true,
      "max":300,
      "min":1
    },
    "LambdaFunctionArn":{
      "type":"string",
      "max":170,
      "min":1,
      "pattern":"arn:(aws[a-zA-Z-]*)?:lambda:([a-z]{2}(-gov)?-[a-z]+-\\d{1}):(\\d{12}):function:([a-zA-Z0-9-_.]+)(:(\\$LATEST|[a-zA-Z0-9-]+))?"
    },
    "LambdaInterceptorConfiguration":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"LambdaFunctionArn",
          "documentation":"<p>The arn of the lambda function to be invoked for the interceptor.</p>"
        }
      },
      "documentation":"<p>The lambda configuration for the interceptor</p>"
    },
    "LifecycleConfiguration":{
      "type":"structure",
      "members":{
        "idleRuntimeSessionTimeout":{
          "shape":"LifecycleConfigurationIdleRuntimeSessionTimeoutInteger",
          "documentation":"<p>Timeout in seconds for idle runtime sessions. When a session remains idle for this duration, it will be automatically terminated. Default: 900 seconds (15 minutes).</p>"
        },
        "maxLifetime":{
          "shape":"LifecycleConfigurationMaxLifetimeInteger",
          "documentation":"<p>Maximum lifetime for the instance in seconds. Once reached, instances will be automatically terminated and replaced. Default: 28800 seconds (8 hours).</p>"
        }
      },
      "documentation":"<p>LifecycleConfiguration lets you manage the lifecycle of runtime sessions and resources in AgentCore Runtime. This configuration helps optimize resource utilization by automatically cleaning up idle sessions and preventing long-running instances from consuming resources indefinitely.</p>"
    },
    "LifecycleConfigurationIdleRuntimeSessionTimeoutInteger":{
      "type":"integer",
      "box":true,
      "max":28800,
      "min":60
    },
    "LifecycleConfigurationMaxLifetimeInteger":{
      "type":"integer",
      "box":true,
      "max":28800,
      "min":60
    },
    "LinkedinOauth2ProviderConfigInput":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the LinkedIn OAuth2 provider. This identifier is assigned by LinkedIn when you register your application.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecretType",
          "documentation":"<p>The client secret for the LinkedIn OAuth2 provider. This secret is assigned by LinkedIn and used along with the client ID to authenticate your application.</p>"
        }
      },
      "documentation":"<p>Configuration settings for connecting to LinkedIn services using OAuth2 authentication. This includes the client credentials required to authenticate with LinkedIn's OAuth2 authorization server.</p>"
    },
    "LinkedinOauth2ProviderConfigOutput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{"shape":"Oauth2Discovery"},
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the LinkedIn OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>The configuration details returned for a LinkedIn OAuth2 provider, including the client ID and OAuth2 discovery information.</p>"
    },
    "ListAgentRuntimeEndpointsRequest":{
      "type":"structure",
      "required":["agentRuntimeId"],
      "members":{
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime to list endpoints for.</p>",
          "location":"uri",
          "locationName":"agentRuntimeId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in the response.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListAgentRuntimeEndpointsResponse":{
      "type":"structure",
      "required":["runtimeEndpoints"],
      "members":{
        "runtimeEndpoints":{
          "shape":"AgentRuntimeEndpoints",
          "documentation":"<p>The list of AgentCore Runtime endpoints.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>"
        }
      }
    },
    "ListAgentRuntimeVersionsRequest":{
      "type":"structure",
      "required":["agentRuntimeId"],
      "members":{
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime to list versions for.</p>",
          "location":"uri",
          "locationName":"agentRuntimeId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in the response.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListAgentRuntimeVersionsResponse":{
      "type":"structure",
      "required":["agentRuntimes"],
      "members":{
        "agentRuntimes":{
          "shape":"AgentRuntimes",
          "documentation":"<p>The list of AgentCore Runtime versions.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>"
        }
      }
    },
    "ListAgentRuntimesRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in the response.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListAgentRuntimesResponse":{
      "type":"structure",
      "required":["agentRuntimes"],
      "members":{
        "agentRuntimes":{
          "shape":"AgentRuntimes",
          "documentation":"<p>The list of AgentCore Runtime resources.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>"
        }
      }
    },
    "ListApiKeyCredentialProvidersRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Pagination token.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>Maximum number of results to return.</p>"
        }
      }
    },
    "ListApiKeyCredentialProvidersResponse":{
      "type":"structure",
      "required":["credentialProviders"],
      "members":{
        "credentialProviders":{
          "shape":"ApiKeyCredentialProviders",
          "documentation":"<p>The list of API key credential providers.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Pagination token for the next page of results.</p>"
        }
      }
    },
    "ListBrowserProfilesRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in the response.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "name":{
          "shape":"BrowserProfileName",
          "documentation":"<p>The name of the browser profile to filter results by.</p>"
        }
      }
    },
    "ListBrowserProfilesResponse":{
      "type":"structure",
      "required":["profileSummaries"],
      "members":{
        "profileSummaries":{
          "shape":"BrowserProfileSummaries",
          "documentation":"<p>The list of browser profile summaries.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>"
        }
      }
    },
    "ListBrowsersRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 10. The maximum value is 50.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "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.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "type":{
          "shape":"ResourceType",
          "documentation":"<p>The type of browsers to list. If not specified, all browser types are returned.</p>",
          "location":"querystring",
          "locationName":"type"
        }
      }
    },
    "ListBrowsersResponse":{
      "type":"structure",
      "required":["browserSummaries"],
      "members":{
        "browserSummaries":{
          "shape":"BrowserSummaries",
          "documentation":"<p>The list of browser summaries.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>"
        }
      }
    },
    "ListCodeInterpretersRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in the response.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "type":{
          "shape":"ResourceType",
          "documentation":"<p>The type of code interpreters to list.</p>",
          "location":"querystring",
          "locationName":"type"
        }
      }
    },
    "ListCodeInterpretersResponse":{
      "type":"structure",
      "required":["codeInterpreterSummaries"],
      "members":{
        "codeInterpreterSummaries":{
          "shape":"CodeInterpreterSummaries",
          "documentation":"<p>The list of code interpreter summaries.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to retrieve the next page of results.</p>"
        }
      }
    },
    "ListConfigurationBundleVersionsRequest":{
      "type":"structure",
      "required":["bundleId"],
      "members":{
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the configuration bundle to list versions for.</p>",
          "location":"uri",
          "locationName":"bundleId"
        },
        "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"
        },
        "maxResults":{
          "shape":"ListConfigurationBundleVersionsRequestMaxResultsInteger",
          "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"
        },
        "filter":{
          "shape":"VersionFilter",
          "documentation":"<p>An optional filter for listing versions, including branch name, creation source, and whether to return only the latest version per branch.</p>"
        }
      }
    },
    "ListConfigurationBundleVersionsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListConfigurationBundleVersionsResponse":{
      "type":"structure",
      "required":["versions"],
      "members":{
        "versions":{
          "shape":"ConfigurationBundleVersionSummaryList",
          "documentation":"<p>The list of configuration bundle version 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>"
        }
      }
    },
    "ListConfigurationBundlesRequest":{
      "type":"structure",
      "members":{
        "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"
        },
        "maxResults":{
          "shape":"ListConfigurationBundlesRequestMaxResultsInteger",
          "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"
        }
      }
    },
    "ListConfigurationBundlesRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListConfigurationBundlesResponse":{
      "type":"structure",
      "required":["bundles"],
      "members":{
        "bundles":{
          "shape":"ConfigurationBundleSummaryList",
          "documentation":"<p>The list of configuration bundle 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>"
        }
      }
    },
    "ListEvaluatorsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p> The pagination token from a previous request to retrieve the next page of results. </p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"ListEvaluatorsRequestMaxResultsInteger",
          "documentation":"<p> The maximum number of evaluators to return in a single response. </p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListEvaluatorsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListEvaluatorsResponse":{
      "type":"structure",
      "required":["evaluators"],
      "members":{
        "evaluators":{
          "shape":"EvaluatorSummaryList",
          "documentation":"<p> The list of evaluator summaries containing basic information about each evaluator. </p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p> The pagination token to use in a subsequent request to retrieve the next page of results. </p>"
        }
      }
    },
    "ListGatewayRulesRequest":{
      "type":"structure",
      "required":["gatewayIdentifier"],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway to list rules for.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "maxResults":{
          "shape":"GatewayRuleMaxResults",
          "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":"GatewayRuleNextToken",
          "documentation":"<p>The pagination token from a previous request.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListGatewayRulesResponse":{
      "type":"structure",
      "required":["gatewayRules"],
      "members":{
        "gatewayRules":{
          "shape":"GatewayRules",
          "documentation":"<p>The list of gateway rules.</p>"
        },
        "nextToken":{
          "shape":"GatewayRuleNextToken",
          "documentation":"<p>The pagination token to use in a subsequent request.</p>"
        }
      }
    },
    "ListGatewayTargetsRequest":{
      "type":"structure",
      "required":["gatewayIdentifier"],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway to list targets for.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "maxResults":{
          "shape":"TargetMaxResults",
          "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":"TargetNextToken",
          "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"
        }
      }
    },
    "ListGatewayTargetsResponse":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"TargetSummaries",
          "documentation":"<p>The list of gateway target summaries.</p>"
        },
        "nextToken":{
          "shape":"TargetNextToken",
          "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>"
        }
      }
    },
    "ListGatewaysRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"GatewayMaxResults",
          "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":"GatewayNextToken",
          "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"
        }
      }
    },
    "ListGatewaysResponse":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"GatewaySummaries",
          "documentation":"<p>The list of gateway summaries.</p>"
        },
        "nextToken":{
          "shape":"GatewayNextToken",
          "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>"
        }
      }
    },
    "ListHarnessesRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListHarnessesResponse":{
      "type":"structure",
      "required":["harnesses"],
      "members":{
        "harnesses":{
          "shape":"HarnessSummaries",
          "documentation":"<p>The list of harness summaries.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of results.</p>"
        }
      }
    },
    "ListMemoriesInput":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"ListMemoriesInputMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single call. The default value is 10. The maximum value is 50.</p>"
        },
        "nextToken":{
          "shape":"String",
          "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>"
        }
      }
    },
    "ListMemoriesInputMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListMemoriesOutput":{
      "type":"structure",
      "required":["memories"],
      "members":{
        "memories":{
          "shape":"MemorySummaryList",
          "documentation":"<p>The list of AgentCore Memory resource summaries.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>A token to retrieve the next page of results.</p>"
        }
      }
    },
    "ListOauth2CredentialProvidersRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Pagination token.</p>"
        },
        "maxResults":{
          "shape":"ListOauth2CredentialProvidersRequestMaxResultsInteger",
          "documentation":"<p>Maximum number of results to return.</p>"
        }
      }
    },
    "ListOauth2CredentialProvidersRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":20,
      "min":1
    },
    "ListOauth2CredentialProvidersResponse":{
      "type":"structure",
      "required":["credentialProviders"],
      "members":{
        "credentialProviders":{
          "shape":"Oauth2CredentialProviders",
          "documentation":"<p>The list of OAuth2 credential providers.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Pagination token for the next page of results.</p>"
        }
      }
    },
    "ListOnlineEvaluationConfigsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p> The pagination token from a previous request to retrieve the next page of results. </p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"ListOnlineEvaluationConfigsRequestMaxResultsInteger",
          "documentation":"<p> The maximum number of online evaluation configurations to return in a single response. </p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListOnlineEvaluationConfigsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListOnlineEvaluationConfigsResponse":{
      "type":"structure",
      "required":["onlineEvaluationConfigs"],
      "members":{
        "onlineEvaluationConfigs":{
          "shape":"OnlineEvaluationConfigSummaryList",
          "documentation":"<p> The list of online evaluation configuration summaries containing basic information about each configuration. </p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p> The pagination token to use in a subsequent request to retrieve the next page of results. </p>"
        }
      }
    },
    "ListPoliciesRequest":{
      "type":"structure",
      "required":["policyEngineId"],
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token returned from a previous <a href=\"https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListPolicies.html\">ListPolicies</a> call. Use this token to retrieve the next page of results when the response is paginated.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of policies to return in a single response. If not specified, the default is 10 policies per page, with a maximum of 100 per page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine whose policies to retrieve.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        },
        "targetResourceScope":{
          "shape":"BedrockAgentcoreResourceArn",
          "documentation":"<p>Optional filter to list policies that apply to a specific resource scope or resource type. This helps narrow down policy results to those relevant for particular Amazon Web Services resources, agent tools, or operational contexts within the policy engine ecosystem.</p>",
          "location":"querystring",
          "locationName":"targetResourceScope"
        }
      }
    },
    "ListPoliciesResponse":{
      "type":"structure",
      "required":["policies"],
      "members":{
        "policies":{
          "shape":"Policies",
          "documentation":"<p>An array of policy objects that match the specified criteria. Each policy object contains the policy metadata, status, and key identifiers for further operations.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token that can be used in subsequent ListPolicies calls to retrieve additional results. This token is only present when there are more results available.</p>"
        }
      }
    },
    "ListPolicyEnginesRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token returned from a previous <a href=\"https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListPolicyEngines.html\">ListPolicyEngines</a> call. Use this token to retrieve the next page of results when the response is paginated.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of policy engines to return in a single response. If not specified, the default is 10 policy engines per page, with a maximum of 100 per page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListPolicyEnginesResponse":{
      "type":"structure",
      "required":["policyEngines"],
      "members":{
        "policyEngines":{
          "shape":"PolicyEngines",
          "documentation":"<p>An array of policy engine objects that exist in the account. Each policy engine object contains the engine metadata, status, and key identifiers for further operations.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token that can be used in subsequent <a href=\"https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListPolicyEngines.html\">ListPolicyEngines</a> calls to retrieve additional results. This token is only present when there are more results available. </p>"
        }
      }
    },
    "ListPolicyGenerationAssetsRequest":{
      "type":"structure",
      "required":[
        "policyGenerationId",
        "policyEngineId"
      ],
      "members":{
        "policyGenerationId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy generation request whose assets are to be retrieved. This must be a valid generation ID from a previous <a href=\"https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_StartPolicyGeneration.html\">StartPolicyGeneration</a> call that has completed processing.</p>",
          "location":"uri",
          "locationName":"policyGenerationId"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy engine associated with the policy generation request. This provides the context for the generation operation and ensures assets are retrieved from the correct policy engine.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token returned from a previous <a href=\"https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListPolicyGenerationAssets.html\">ListPolicyGenerationAssets</a> call. Use this token to retrieve the next page of assets when the response is paginated due to large numbers of generated policy options.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of policy generation assets to return in a single response. If not specified, the default is 10 assets per page, with a maximum of 100 per page. This helps control response size when dealing with policy generations that produce many alternative policy options.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListPolicyGenerationAssetsResponse":{
      "type":"structure",
      "members":{
        "policyGenerationAssets":{
          "shape":"PolicyGenerationAssets",
          "documentation":"<p>An array of generated policy assets including Cedar policies and related artifacts from the AI-powered policy generation process. Each asset represents a different policy option or variation generated from the original natural language input.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token that can be used in subsequent <a href=\"https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListPolicyGenerationAssets.html\">ListPolicyGenerationAssets</a> calls to retrieve additional assets. This token is only present when there are more generated policy assets available beyond the current response.</p>"
        }
      }
    },
    "ListPolicyGenerationsRequest":{
      "type":"structure",
      "required":["policyEngineId"],
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token for retrieving additional policy generations when results are paginated.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of policy generations to return in a single response.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine whose policy generations to retrieve.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        }
      }
    },
    "ListPolicyGenerationsResponse":{
      "type":"structure",
      "required":["policyGenerations"],
      "members":{
        "policyGenerations":{
          "shape":"PolicyGenerations",
          "documentation":"<p>An array of policy generation objects that match the specified criteria.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token for retrieving additional policy generations if more results are available.</p>"
        }
      }
    },
    "ListRegistriesRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "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"
        },
        "status":{
          "shape":"RegistryStatus",
          "documentation":"<p>Filter registries by their current status. Possible values include <code>CREATING</code>, <code>READY</code>, <code>UPDATING</code>, <code>CREATE_FAILED</code>, <code>UPDATE_FAILED</code>, <code>DELETING</code>, and <code>DELETE_FAILED</code>.</p>",
          "location":"querystring",
          "locationName":"status"
        }
      }
    },
    "ListRegistriesResponse":{
      "type":"structure",
      "required":["registries"],
      "members":{
        "registries":{
          "shape":"RegistrySummaryList",
          "documentation":"<p>The list of registry summaries. For details about the fields in each summary, see the <code>RegistrySummary</code> data type.</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>"
        }
      }
    },
    "ListRegistryRecordsRequest":{
      "type":"structure",
      "required":["registryId"],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry to list records from. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "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"
        },
        "name":{
          "shape":"RegistryRecordName",
          "documentation":"<p>Filter registry records by name.</p>",
          "location":"querystring",
          "locationName":"name"
        },
        "status":{
          "shape":"RegistryRecordStatus",
          "documentation":"<p>Filter registry records by their current status. Possible values include <code>CREATING</code>, <code>DRAFT</code>, <code>APPROVED</code>, <code>PENDING_APPROVAL</code>, <code>REJECTED</code>, <code>DEPRECATED</code>, <code>UPDATING</code>, <code>CREATE_FAILED</code>, and <code>UPDATE_FAILED</code>.</p>",
          "location":"querystring",
          "locationName":"status"
        },
        "descriptorType":{
          "shape":"DescriptorType",
          "documentation":"<p>Filter registry records by their descriptor type. Possible values are <code>MCP</code>, <code>A2A</code>, <code>CUSTOM</code>, and <code>AGENT_SKILLS</code>.</p>",
          "location":"querystring",
          "locationName":"descriptorType"
        }
      }
    },
    "ListRegistryRecordsResponse":{
      "type":"structure",
      "required":["registryRecords"],
      "members":{
        "registryRecords":{
          "shape":"RegistryRecordSummaryList",
          "documentation":"<p>The list of registry record summaries. For details about the fields in each summary, see the <code>RegistryRecordSummary</code> data type.</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>"
        }
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"TaggableResourcesArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource for which you want to list tags.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>The tags associated with the resource.</p>"
        }
      }
    },
    "ListWorkloadIdentitiesRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Pagination token.</p>"
        },
        "maxResults":{
          "shape":"ListWorkloadIdentitiesRequestMaxResultsInteger",
          "documentation":"<p>Maximum number of results to return.</p>"
        }
      }
    },
    "ListWorkloadIdentitiesRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":20,
      "min":1
    },
    "ListWorkloadIdentitiesResponse":{
      "type":"structure",
      "required":["workloadIdentities"],
      "members":{
        "workloadIdentities":{
          "shape":"WorkloadIdentityList",
          "documentation":"<p>The list of workload identities.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Pagination token for the next page of results.</p>"
        }
      }
    },
    "ListingMode":{
      "type":"string",
      "enum":[
        "DEFAULT",
        "DYNAMIC"
      ]
    },
    "LlmAsAJudgeEvaluatorConfig":{
      "type":"structure",
      "required":[
        "instructions",
        "ratingScale",
        "modelConfig"
      ],
      "members":{
        "instructions":{
          "shape":"EvaluatorInstructions",
          "documentation":"<p> The evaluation instructions that guide the language model in assessing agent performance, including criteria and evaluation guidelines. </p>"
        },
        "ratingScale":{
          "shape":"RatingScale",
          "documentation":"<p> The rating scale that defines how the evaluator should score agent performance, either numerical or categorical. </p>"
        },
        "modelConfig":{
          "shape":"EvaluatorModelConfig",
          "documentation":"<p> The model configuration that specifies which foundation model to use and how to configure it for evaluation. </p>"
        }
      },
      "documentation":"<p> The configuration for LLM-as-a-Judge evaluation that uses a language model to assess agent performance based on custom instructions and rating scales. </p>"
    },
    "LlmExtractionConfig":{
      "type":"structure",
      "required":["definition"],
      "members":{
        "llmExtractionInstruction":{
          "shape":"LlmExtractionInstruction",
          "documentation":"<p>Instructions for extraction. Supports built-in operators like LATEST_VALUE or custom natural-language instructions.</p>"
        },
        "definition":{
          "shape":"Definition",
          "documentation":"<p>Description of what this metadata field represents.</p>"
        },
        "validation":{
          "shape":"Validation",
          "documentation":"<p>Validation rules to constrain extracted values.</p>"
        }
      },
      "documentation":"<p>Model-based metadata extraction configuration.</p>"
    },
    "LlmExtractionInstruction":{
      "type":"string",
      "max":1000,
      "min":1,
      "sensitive":true
    },
    "LogGroupName":{
      "type":"string",
      "max":512,
      "min":1,
      "pattern":"[.\\-_/#A-Za-z0-9]+"
    },
    "MCPGatewayConfiguration":{
      "type":"structure",
      "members":{
        "supportedVersions":{
          "shape":"McpSupportedVersions",
          "documentation":"<p>The supported versions of the Model Context Protocol. This field specifies which versions of the protocol the gateway can use.</p>"
        },
        "instructions":{
          "shape":"McpInstructions",
          "documentation":"<p>The instructions for using the Model Context Protocol gateway. These instructions provide guidance on how to interact with the gateway.</p>"
        },
        "searchType":{
          "shape":"SearchType",
          "documentation":"<p>The search type for the Model Context Protocol gateway. This field specifies how the gateway handles search operations.</p>"
        },
        "sessionConfiguration":{
          "shape":"SessionConfiguration",
          "documentation":"<p>The session configuration for the MCP gateway. This configuration controls session behavior, including session timeout settings.</p>"
        },
        "streamingConfiguration":{
          "shape":"StreamingConfiguration",
          "documentation":"<p>The streaming configuration for the MCP gateway. This configuration controls whether response streaming is enabled for the gateway.</p>"
        }
      },
      "documentation":"<p>The configuration for a Model Context Protocol (MCP) gateway. This structure defines how the gateway implements the MCP protocol.</p>"
    },
    "ManagedResourceDetails":{
      "type":"structure",
      "members":{
        "domain":{
          "shape":"DomainName",
          "documentation":"<p>The domain associated with this managed resource.</p>"
        },
        "resourceGatewayArn":{
          "shape":"ResourceGatewayArn",
          "documentation":"<p>The ARN of the VPC Lattice resource gateway created in your account.</p>"
        },
        "resourceAssociationArn":{
          "shape":"ResourceAssociationArn",
          "documentation":"<p>The ARN of the service network resource association.</p>"
        }
      },
      "documentation":"<p>Details of a resource created and managed by the gateway for private endpoint connectivity.</p>"
    },
    "ManagedVpcResource":{
      "type":"structure",
      "required":[
        "vpcIdentifier",
        "subnetIds",
        "endpointIpAddressType"
      ],
      "members":{
        "vpcIdentifier":{
          "shape":"VpcIdentifier",
          "documentation":"<p>The ID of the VPC that contains your private resource.</p>"
        },
        "subnetIds":{
          "shape":"SubnetIds",
          "documentation":"<p>The subnet IDs within the VPC where the VPC Lattice resource gateway is placed.</p>"
        },
        "endpointIpAddressType":{
          "shape":"EndpointIpAddressType",
          "documentation":"<p>The IP address type for the resource configuration endpoint.</p>"
        },
        "securityGroupIds":{
          "shape":"SecurityGroupIds",
          "documentation":"<p>The security group IDs to associate with the VPC Lattice resource gateway. If not specified, the default security group for the VPC is used.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags to apply to the managed VPC Lattice resource gateway.</p>"
        },
        "routingDomain":{
          "shape":"RoutingDomain",
          "documentation":"<p>An intermediate domain to use as the resource configuration endpoint instead of the actual target domain. Use this when you want to route traffic through an intermediate component such as a VPC endpoint or internal load balancer. For more information, see xref:lattice-vpc-egress-routing-domain[Route traffic through an intermediate domain].</p>"
        }
      },
      "documentation":"<p>Configuration for a managed VPC Lattice resource. The gateway creates and manages the VPC Lattice resource gateway and resource configuration on your behalf using a service-linked role.</p>"
    },
    "MatchPathPattern":{
      "type":"string",
      "max":512,
      "min":0,
      "pattern":"/[\\w\\-.]+/\\*"
    },
    "MatchPaths":{
      "type":"structure",
      "required":["anyOf"],
      "members":{
        "anyOf":{
          "shape":"MatchPathsAnyOfList",
          "documentation":"<p>A list of path patterns. The condition is met if the request path matches any of the patterns.</p>"
        }
      },
      "documentation":"<p>A condition that matches requests based on the request path.</p>"
    },
    "MatchPathsAnyOfList":{
      "type":"list",
      "member":{"shape":"MatchPathPattern"},
      "max":10,
      "min":1
    },
    "MatchPrincipalEntry":{
      "type":"structure",
      "members":{
        "iamPrincipal":{
          "shape":"IamPrincipal",
          "documentation":"<p>An IAM principal to match against, specified by ARN.</p>"
        }
      },
      "documentation":"<p>Union for principal matching. Currently supports IAM principal ARN glob matching. Extensible for future principal types (e.g., OAuth client ID).</p>",
      "union":true
    },
    "MatchPrincipals":{
      "type":"structure",
      "required":["anyOf"],
      "members":{
        "anyOf":{
          "shape":"MatchPrincipalsAnyOfList",
          "documentation":"<p>A list of principal entries. The condition is met if any of the entries match the caller's identity.</p>"
        }
      },
      "documentation":"<p>A condition that matches requests based on the caller's identity.</p>"
    },
    "MatchPrincipalsAnyOfList":{
      "type":"list",
      "member":{"shape":"MatchPrincipalEntry"},
      "max":100,
      "min":1
    },
    "MatchValueString":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[A-Za-z0-9_.-]+"
    },
    "MatchValueStringList":{
      "type":"list",
      "member":{"shape":"MatchValueString"},
      "min":1
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "MaxTokens":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "McpDescriptor":{
      "type":"structure",
      "members":{
        "server":{
          "shape":"ServerDefinition",
          "documentation":"<p>The MCP server definition, containing the server configuration and schema as defined by the MCP protocol specification.</p>"
        },
        "tools":{
          "shape":"ToolsDefinition",
          "documentation":"<p>The MCP tools definition, containing the tools available on the MCP server as defined by the MCP protocol specification.</p>"
        }
      },
      "documentation":"<p>The Model Context Protocol (MCP) descriptor for a registry record. Contains the server definition and tools definition for an MCP-compatible server. The schema is validated against the MCP protocol specification.</p>"
    },
    "McpInstructions":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "McpLambdaTargetConfiguration":{
      "type":"structure",
      "required":[
        "lambdaArn",
        "toolSchema"
      ],
      "members":{
        "lambdaArn":{
          "shape":"LambdaFunctionArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Lambda function. This function is invoked by the gateway to communicate with the target.</p>"
        },
        "toolSchema":{
          "shape":"ToolSchema",
          "documentation":"<p>The tool schema for the Lambda function. This schema defines the structure of the tools that the Lambda function provides.</p>"
        }
      },
      "documentation":"<p>The Lambda configuration for a Model Context Protocol target. This structure defines how the gateway uses a Lambda function to communicate with the target.</p>"
    },
    "McpServerTargetConfiguration":{
      "type":"structure",
      "required":["endpoint"],
      "members":{
        "endpoint":{
          "shape":"McpServerTargetConfigurationEndpointString",
          "documentation":"<p>The endpoint for the MCP server target configuration.</p>"
        },
        "mcpToolSchema":{
          "shape":"McpToolSchemaConfiguration",
          "documentation":"<p>The tool schema configuration for the MCP server target. Supported only when the credential provider is configured with an authorization code grant type. Dynamic tool discovery/synchronization will be disabled when target is configured with mcpToolSchema.</p>"
        },
        "listingMode":{
          "shape":"ListingMode",
          "documentation":"<p>The listing mode for the MCP server target configuration. MCP resources for default targets are cached at the control plane for faster access. MCP resources for dynamic targets will be dynamically retrieved when listing tools.</p>"
        },
        "resourcePriority":{
          "shape":"TargetResourcePriority",
          "documentation":"<p>Priority for resolving MCP server targets with shared resource URIs. Lower values take precedence. Defaults to 1000 when not set.</p>"
        }
      },
      "documentation":"<p>The target configuration for the MCP server.</p>"
    },
    "McpServerTargetConfigurationEndpointString":{
      "type":"string",
      "pattern":"https://.*"
    },
    "McpServerUrl":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"https://.*"
    },
    "McpSupportedVersions":{
      "type":"list",
      "member":{"shape":"McpVersion"}
    },
    "McpTargetConfiguration":{
      "type":"structure",
      "members":{
        "openApiSchema":{
          "shape":"ApiSchemaConfiguration",
          "documentation":"<p>The OpenAPI schema for the Model Context Protocol target. This schema defines the API structure of the target.</p>"
        },
        "smithyModel":{
          "shape":"ApiSchemaConfiguration",
          "documentation":"<p>The Smithy model for the Model Context Protocol target. This model defines the API structure of the target using the Smithy specification.</p>"
        },
        "lambda":{
          "shape":"McpLambdaTargetConfiguration",
          "documentation":"<p>The Lambda configuration for the Model Context Protocol target. This configuration defines how the gateway uses a Lambda function to communicate with the target.</p>"
        },
        "mcpServer":{
          "shape":"McpServerTargetConfiguration",
          "documentation":"<p>The MCP server specified as the gateway target.</p>"
        },
        "apiGateway":{
          "shape":"ApiGatewayTargetConfiguration",
          "documentation":"<p>The configuration for an Amazon API Gateway target.</p>"
        }
      },
      "documentation":"<p>The Model Context Protocol (MCP) configuration for a target. This structure defines how the gateway uses MCP to communicate with the target.</p>",
      "union":true
    },
    "McpToolSchemaConfiguration":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"S3Configuration",
          "documentation":"<p>The Amazon S3 location of the tool schema. This location contains the schema definition file.</p>"
        },
        "inlinePayload":{
          "shape":"InlinePayload",
          "documentation":"<p>The inline payload containing the MCP tool schema definition.</p>"
        }
      },
      "documentation":"<p>The MCP tool schema configuration for an MCP server target. The tool schema must be aligned with the MCP specification.</p>",
      "union":true
    },
    "McpVersion":{"type":"string"},
    "Memory":{
      "type":"structure",
      "required":[
        "arn",
        "id",
        "name",
        "eventExpiryDuration",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "arn":{
          "shape":"MemoryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the memory.</p>"
        },
        "id":{
          "shape":"MemoryId",
          "documentation":"<p>The unique identifier of the memory.</p>"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the memory.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the memory.</p>"
        },
        "encryptionKeyArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the KMS key used to encrypt the memory.</p>"
        },
        "memoryExecutionRoleArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the IAM role that provides permissions for the memory.</p>"
        },
        "eventExpiryDuration":{
          "shape":"MemoryEventExpiryDurationInteger",
          "documentation":"<p>The number of days after which memory events will expire.</p>"
        },
        "status":{
          "shape":"MemoryStatus",
          "documentation":"<p>The current status of the memory.</p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p>The reason for failure if the memory is in a failed state.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the memory was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the memory was last updated.</p>"
        },
        "strategies":{
          "shape":"MemoryStrategyList",
          "documentation":"<p>The list of memory strategies associated with this memory.</p>"
        },
        "indexedKeys":{
          "shape":"IndexedKeysList",
          "documentation":"<p>The indexed metadata keys for this memory. Only indexed keys can be used in metadata filters.</p>"
        },
        "streamDeliveryResources":{
          "shape":"StreamDeliveryResources",
          "documentation":"<p>Configuration for streaming memory record data to external resources.</p>"
        }
      },
      "documentation":"<p>Contains information about a memory resource.</p>"
    },
    "MemoryArn":{
      "type":"string",
      "pattern":"arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:memory\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "MemoryEventExpiryDurationInteger":{
      "type":"integer",
      "box":true,
      "max":365,
      "min":1
    },
    "MemoryId":{
      "type":"string",
      "min":12,
      "pattern":"[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "MemoryRecordSchema":{
      "type":"structure",
      "members":{
        "metadataSchema":{
          "shape":"MetadataSchemaList",
          "documentation":"<p>The metadata field definitions for this strategy.</p>"
        }
      },
      "documentation":"<p>Schema for metadata on memory records generated by a strategy.</p>"
    },
    "MemoryStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "ACTIVE",
        "FAILED",
        "DELETING"
      ]
    },
    "MemoryStrategy":{
      "type":"structure",
      "required":[
        "strategyId",
        "name",
        "type",
        "namespaces",
        "namespaceTemplates"
      ],
      "members":{
        "strategyId":{
          "shape":"MemoryStrategyId",
          "documentation":"<p>The unique identifier of the memory strategy.</p>"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the memory strategy.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the memory strategy.</p>"
        },
        "configuration":{
          "shape":"StrategyConfiguration",
          "documentation":"<p>The configuration of the memory strategy.</p>"
        },
        "type":{
          "shape":"MemoryStrategyType",
          "documentation":"<p>The type of the memory strategy.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces associated with the memory strategy.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates associated with the memory strategy.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the memory strategy was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the memory strategy was last updated.</p>"
        },
        "status":{
          "shape":"MemoryStrategyStatus",
          "documentation":"<p>The current status of the memory strategy.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>Schema for metadata fields on records generated by this strategy.</p>"
        }
      },
      "documentation":"<p>Contains information about a memory strategy.</p>"
    },
    "MemoryStrategyId":{
      "type":"string",
      "min":12,
      "pattern":"[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "MemoryStrategyInput":{
      "type":"structure",
      "members":{
        "semanticMemoryStrategy":{
          "shape":"SemanticMemoryStrategyInput",
          "documentation":"<p>Input for creating a semantic memory strategy.</p>"
        },
        "summaryMemoryStrategy":{
          "shape":"SummaryMemoryStrategyInput",
          "documentation":"<p>Input for creating a summary memory strategy.</p>"
        },
        "userPreferenceMemoryStrategy":{
          "shape":"UserPreferenceMemoryStrategyInput",
          "documentation":"<p>Input for creating a user preference memory strategy.</p>"
        },
        "customMemoryStrategy":{
          "shape":"CustomMemoryStrategyInput",
          "documentation":"<p>Input for creating a custom memory strategy.</p>"
        },
        "episodicMemoryStrategy":{
          "shape":"EpisodicMemoryStrategyInput",
          "documentation":"<p>Input for creating an episodic memory strategy</p>"
        }
      },
      "documentation":"<p>Contains input information for creating a memory strategy.</p>",
      "union":true
    },
    "MemoryStrategyInputList":{
      "type":"list",
      "member":{"shape":"MemoryStrategyInput"}
    },
    "MemoryStrategyList":{
      "type":"list",
      "member":{"shape":"MemoryStrategy"}
    },
    "MemoryStrategyStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "ACTIVE",
        "DELETING",
        "FAILED"
      ]
    },
    "MemoryStrategyType":{
      "type":"string",
      "enum":[
        "SEMANTIC",
        "SUMMARIZATION",
        "USER_PREFERENCE",
        "CUSTOM",
        "EPISODIC"
      ]
    },
    "MemorySummary":{
      "type":"structure",
      "required":[
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "arn":{
          "shape":"MemoryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the memory.</p>"
        },
        "id":{
          "shape":"MemoryId",
          "documentation":"<p>The unique identifier of the memory.</p>"
        },
        "status":{
          "shape":"MemoryStatus",
          "documentation":"<p>The current status of the memory.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the memory was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the memory was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a memory resource.</p>"
    },
    "MemorySummaryList":{
      "type":"list",
      "member":{"shape":"MemorySummary"}
    },
    "MemoryView":{
      "type":"string",
      "enum":[
        "full",
        "without_decryption"
      ]
    },
    "MessageBasedTrigger":{
      "type":"structure",
      "members":{
        "messageCount":{
          "shape":"Integer",
          "documentation":"<p>The number of messages that trigger memory processing.</p>"
        }
      },
      "documentation":"<p>The trigger configuration based on a message.</p>"
    },
    "MessageBasedTriggerInput":{
      "type":"structure",
      "members":{
        "messageCount":{
          "shape":"MessageBasedTriggerInputMessageCountInteger",
          "documentation":"<p>The number of messages that trigger memory processing.</p>"
        }
      },
      "documentation":"<p>The trigger configuration based on a message.</p>"
    },
    "MessageBasedTriggerInputMessageCountInteger":{
      "type":"integer",
      "box":true,
      "max":50,
      "min":1
    },
    "MetadataConfiguration":{
      "type":"structure",
      "members":{
        "allowedRequestHeaders":{
          "shape":"AllowedRequestHeaders",
          "documentation":"<p>A list of HTTP headers that are allowed to be propagated from incoming client requests to the target.</p>"
        },
        "allowedQueryParameters":{
          "shape":"AllowedQueryParameters",
          "documentation":"<p>A list of URL query parameters that are allowed to be propagated from incoming gateway URL to the target.</p>"
        },
        "allowedResponseHeaders":{
          "shape":"AllowedResponseHeaders",
          "documentation":"<p>A list of HTTP headers that are allowed to be propagated from the target response back to the client.</p>"
        }
      },
      "documentation":"<p>Configuration for HTTP header and query parameter propagation between the gateway and target servers.</p>"
    },
    "MetadataKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "MetadataSchemaEntry":{
      "type":"structure",
      "required":["key"],
      "members":{
        "key":{
          "shape":"MetadataKey",
          "documentation":"<p>The metadata field name. Must match an indexed key to be queryable via metadata filters.</p>"
        },
        "type":{
          "shape":"MetadataValueType",
          "documentation":"<p>The MetadataValueType.</p>"
        },
        "extractionConfig":{
          "shape":"ExtractionConfig",
          "documentation":"<p>Configuration for extracting this metadata value from conversational content.</p>"
        }
      },
      "documentation":"<p>A metadata field definition within a strategy's schema.</p>"
    },
    "MetadataSchemaList":{
      "type":"list",
      "member":{"shape":"MetadataSchemaEntry"},
      "max":20,
      "min":1
    },
    "MetadataValueType":{
      "type":"string",
      "enum":[
        "STRING",
        "STRINGLIST",
        "NUMBER"
      ]
    },
    "MicrosoftOauth2ProviderConfigInput":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Microsoft OAuth2 provider.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecretType",
          "documentation":"<p>The client secret for the Microsoft OAuth2 provider.</p>"
        },
        "tenantId":{
          "shape":"TenantIdType",
          "documentation":"<p>The Microsoft Entra ID (formerly Azure AD) tenant ID for your organization. This identifies the specific tenant within Microsoft's identity platform where your application is registered.</p>"
        }
      },
      "documentation":"<p>Input configuration for a Microsoft OAuth2 provider.</p>"
    },
    "MicrosoftOauth2ProviderConfigOutput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{
          "shape":"Oauth2Discovery",
          "documentation":"<p>The OAuth2 discovery information for the Microsoft provider.</p>"
        },
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Microsoft OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Output configuration for a Microsoft OAuth2 provider.</p>"
    },
    "ModelId":{"type":"string"},
    "ModifyConsolidationConfiguration":{
      "type":"structure",
      "members":{
        "customConsolidationConfiguration":{
          "shape":"CustomConsolidationConfigurationInput",
          "documentation":"<p>The updated custom consolidation configuration.</p>"
        }
      },
      "documentation":"<p>Contains information for modifying a consolidation configuration.</p>",
      "union":true
    },
    "ModifyExtractionConfiguration":{
      "type":"structure",
      "members":{
        "customExtractionConfiguration":{
          "shape":"CustomExtractionConfigurationInput",
          "documentation":"<p>The updated custom extraction configuration.</p>"
        }
      },
      "documentation":"<p>Contains information for modifying an extraction configuration.</p>",
      "union":true
    },
    "ModifyInvocationConfigurationInput":{
      "type":"structure",
      "members":{
        "topicArn":{
          "shape":"Arn",
          "documentation":"<p>The updated ARN of the SNS topic for job notifications.</p>"
        },
        "payloadDeliveryBucketName":{
          "shape":"ModifyInvocationConfigurationInputPayloadDeliveryBucketNameString",
          "documentation":"<p>The updated S3 bucket name for event payload delivery.</p>"
        }
      },
      "documentation":"<p>The configuration for updating invocation settings.</p>"
    },
    "ModifyInvocationConfigurationInputPayloadDeliveryBucketNameString":{
      "type":"string",
      "pattern":"[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]"
    },
    "ModifyMemoryStrategies":{
      "type":"structure",
      "members":{
        "addMemoryStrategies":{
          "shape":"MemoryStrategyInputList",
          "documentation":"<p>The list of memory strategies to add.</p>"
        },
        "modifyMemoryStrategies":{
          "shape":"ModifyMemoryStrategiesList",
          "documentation":"<p>The list of memory strategies to modify.</p>"
        },
        "deleteMemoryStrategies":{
          "shape":"DeleteMemoryStrategiesList",
          "documentation":"<p>The list of memory strategies to delete.</p>"
        }
      },
      "documentation":"<p>Contains information for modifying memory strategies.</p>"
    },
    "ModifyMemoryStrategiesList":{
      "type":"list",
      "member":{"shape":"ModifyMemoryStrategyInput"}
    },
    "ModifyMemoryStrategyInput":{
      "type":"structure",
      "required":["memoryStrategyId"],
      "members":{
        "memoryStrategyId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the memory strategy to modify.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the memory strategy.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The updated namespaces for the memory strategy.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The updated namespaceTemplates for the memory strategy.</p>"
        },
        "configuration":{
          "shape":"ModifyStrategyConfiguration",
          "documentation":"<p>The updated configuration for the memory strategy.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>Updated metadata schema for records generated by this strategy.</p>"
        }
      },
      "documentation":"<p>Input for modifying a memory strategy.</p>"
    },
    "ModifyReflectionConfiguration":{
      "type":"structure",
      "members":{
        "episodicReflectionConfiguration":{
          "shape":"EpisodicReflectionConfigurationInput",
          "documentation":"<p>The updated episodic reflection configuration.</p>"
        },
        "customReflectionConfiguration":{
          "shape":"CustomReflectionConfigurationInput",
          "documentation":"<p>The updated custom reflection configuration.</p>"
        }
      },
      "documentation":"<p>Contains information for modifying a reflection configuration.</p>",
      "union":true
    },
    "ModifySelfManagedConfiguration":{
      "type":"structure",
      "members":{
        "triggerConditions":{
          "shape":"TriggerConditionInputList",
          "documentation":"<p>The updated list of conditions that trigger memory processing.</p>"
        },
        "invocationConfiguration":{
          "shape":"ModifyInvocationConfigurationInput",
          "documentation":"<p>The updated configuration to invoke self-managed memory processing pipeline.</p>"
        },
        "historicalContextWindowSize":{
          "shape":"ModifySelfManagedConfigurationHistoricalContextWindowSizeInteger",
          "documentation":"<p>The updated number of historical messages to include in processing context.</p>"
        }
      },
      "documentation":"<p>The configuration for updating the self-managed memory strategy.</p>"
    },
    "ModifySelfManagedConfigurationHistoricalContextWindowSizeInteger":{
      "type":"integer",
      "box":true,
      "max":50,
      "min":0
    },
    "ModifyStrategyConfiguration":{
      "type":"structure",
      "members":{
        "extraction":{
          "shape":"ModifyExtractionConfiguration",
          "documentation":"<p>The updated extraction configuration.</p>"
        },
        "consolidation":{
          "shape":"ModifyConsolidationConfiguration",
          "documentation":"<p>The updated consolidation configuration.</p>"
        },
        "reflection":{
          "shape":"ModifyReflectionConfiguration",
          "documentation":"<p>The updated reflection configuration.</p>"
        },
        "selfManagedConfiguration":{
          "shape":"ModifySelfManagedConfiguration",
          "documentation":"<p>The updated self-managed configuration.</p>"
        }
      },
      "documentation":"<p>Contains information for modifying a strategy configuration.</p>"
    },
    "MountPath":{
      "type":"string",
      "max":200,
      "min":6,
      "pattern":"/mnt/[a-zA-Z0-9._-]+/?"
    },
    "Name":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}"
    },
    "Namespace":{
      "type":"string",
      "max":512,
      "min":1,
      "pattern":"[a-zA-Z0-9\\-_\\/]*(\\{(actorId|sessionId|memoryStrategyId)\\}[a-zA-Z0-9\\-_\\/]*)*"
    },
    "NamespacesList":{
      "type":"list",
      "member":{"shape":"Namespace"},
      "max":1,
      "min":1
    },
    "NaturalLanguage":{
      "type":"string",
      "max":2000,
      "min":1
    },
    "NetworkConfiguration":{
      "type":"structure",
      "required":["networkMode"],
      "members":{
        "networkMode":{
          "shape":"NetworkMode",
          "documentation":"<p>The network mode for the AgentCore Runtime.</p>"
        },
        "networkModeConfig":{
          "shape":"VpcConfig",
          "documentation":"<p>The network mode configuration for the AgentCore Runtime.</p>"
        }
      },
      "documentation":"<p>SecurityConfig for the Agent.</p>"
    },
    "NetworkMode":{
      "type":"string",
      "enum":[
        "PUBLIC",
        "VPC"
      ]
    },
    "NextToken":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\S*"
    },
    "NonBlankString":{
      "type":"string",
      "pattern":"[\\s\\S]+"
    },
    "NonEmptyString":{
      "type":"string",
      "min":1
    },
    "NumberValidation":{
      "type":"structure",
      "members":{
        "minValue":{
          "shape":"Double",
          "documentation":"<p>Minimum allowed value.</p>"
        },
        "maxValue":{
          "shape":"Double",
          "documentation":"<p>Maximum allowed value.</p>"
        }
      },
      "documentation":"<p>Validation for NUMBER fields.</p>"
    },
    "NumericalScaleDefinition":{
      "type":"structure",
      "required":[
        "definition",
        "value",
        "label"
      ],
      "members":{
        "definition":{
          "shape":"String",
          "documentation":"<p> The description that explains what this numerical rating represents and when it should be used. </p>"
        },
        "value":{
          "shape":"NumericalScaleDefinitionValueDouble",
          "documentation":"<p> The numerical value for this rating scale option. </p>"
        },
        "label":{
          "shape":"NumericalScaleDefinitionLabelString",
          "documentation":"<p> The label or name that describes this numerical rating option. </p>"
        }
      },
      "documentation":"<p> The definition of a numerical rating scale option that provides a numeric value with its description for evaluation scoring. </p>"
    },
    "NumericalScaleDefinitionLabelString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "NumericalScaleDefinitionValueDouble":{
      "type":"double",
      "box":true,
      "min":0
    },
    "NumericalScaleDefinitions":{
      "type":"list",
      "member":{"shape":"NumericalScaleDefinition"}
    },
    "OAuth2AuthorizationData":{
      "type":"structure",
      "required":["authorizationUrl"],
      "members":{
        "authorizationUrl":{
          "shape":"OAuth2AuthorizationDataAuthorizationUrlString",
          "documentation":"<p>The URL to initiate the authorization process. This URL is provided when the OAuth2 access token requires user authorization.</p>"
        },
        "userId":{
          "shape":"OAuth2AuthorizationDataUserIdString",
          "documentation":"<p>The user identifier associated with the OAuth2 authorization session that is defined by AgentCore Gateway.</p>"
        }
      },
      "documentation":"<p>OAuth2-specific authorization data, including the authorization URL and user identifier for the authorization session.</p>"
    },
    "OAuth2AuthorizationDataAuthorizationUrlString":{
      "type":"string",
      "min":1
    },
    "OAuth2AuthorizationDataUserIdString":{
      "type":"string",
      "max":128,
      "min":1
    },
    "OAuthCredentialProvider":{
      "type":"structure",
      "required":[
        "providerArn",
        "scopes"
      ],
      "members":{
        "providerArn":{
          "shape":"OAuthCredentialProviderArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the OAuth credential provider. This ARN identifies the provider in Amazon Web Services.</p>"
        },
        "scopes":{
          "shape":"OAuthScopes",
          "documentation":"<p>The OAuth scopes for the credential provider. These scopes define the level of access requested from the OAuth provider.</p>"
        },
        "customParameters":{
          "shape":"OAuthCustomParameters",
          "documentation":"<p>The custom parameters for the OAuth credential provider. These parameters provide additional configuration for the OAuth authentication process.</p>"
        },
        "grantType":{
          "shape":"OAuthGrantType",
          "documentation":"<p>Specifies the kind of credentials to use for authorization:</p> <ul> <li> <p> <code>CLIENT_CREDENTIALS</code> - Authorization with a client ID and secret.</p> </li> <li> <p> <code>AUTHORIZATION_CODE</code> - Authorization with a token that is specific to an individual end user.</p> </li> </ul>"
        },
        "defaultReturnUrl":{
          "shape":"OAuthDefaultReturnUrl",
          "documentation":"<p>The URL where the end user's browser is redirected after obtaining the authorization code. Generally points to the customer's application.</p>"
        }
      },
      "documentation":"<p>An OAuth credential provider for gateway authentication. This structure contains the configuration for authenticating with the target endpoint using OAuth.</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",
        "TOKEN_EXCHANGE"
      ]
    },
    "OAuthScope":{
      "type":"string",
      "max":64,
      "min":1
    },
    "OAuthScopes":{
      "type":"list",
      "member":{"shape":"OAuthScope"},
      "max":100,
      "min":0
    },
    "Oauth2AuthorizationServerMetadata":{
      "type":"structure",
      "required":[
        "issuer",
        "authorizationEndpoint",
        "tokenEndpoint"
      ],
      "members":{
        "issuer":{
          "shape":"IssuerUrlType",
          "documentation":"<p>The issuer URL for the OAuth2 authorization server.</p>"
        },
        "authorizationEndpoint":{
          "shape":"AuthorizationEndpointType",
          "documentation":"<p>The authorization endpoint URL for the OAuth2 authorization server.</p>"
        },
        "tokenEndpoint":{
          "shape":"TokenEndpointType",
          "documentation":"<p>The token endpoint URL for the OAuth2 authorization server.</p>"
        },
        "responseTypes":{
          "shape":"ResponseListType",
          "documentation":"<p>The supported response types for the OAuth2 authorization server.</p>"
        },
        "tokenEndpointAuthMethods":{
          "shape":"TokenEndpointAuthMethodsType",
          "documentation":"<p>The authentication methods supported by the token endpoint. This specifies how clients can authenticate when requesting tokens from the authorization server.</p>"
        }
      },
      "documentation":"<p>Contains the authorization server metadata for an OAuth2 provider.</p>"
    },
    "Oauth2CredentialProviderItem":{
      "type":"structure",
      "required":[
        "name",
        "credentialProviderVendor",
        "credentialProviderArn",
        "createdTime",
        "lastUpdatedTime"
      ],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the OAuth2 credential provider.</p>"
        },
        "credentialProviderVendor":{
          "shape":"CredentialProviderVendorType",
          "documentation":"<p>The vendor of the OAuth2 credential provider.</p>"
        },
        "credentialProviderArn":{
          "shape":"CredentialProviderArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the OAuth2 credential provider.</p>"
        },
        "createdTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the OAuth2 credential provider was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the OAuth2 credential provider was last updated.</p>"
        }
      },
      "documentation":"<p>Contains information about an OAuth2 credential provider.</p>"
    },
    "Oauth2CredentialProviders":{
      "type":"list",
      "member":{"shape":"Oauth2CredentialProviderItem"}
    },
    "Oauth2Discovery":{
      "type":"structure",
      "members":{
        "discoveryUrl":{
          "shape":"DiscoveryUrlType",
          "documentation":"<p>The discovery URL for the OAuth2 provider.</p>"
        },
        "authorizationServerMetadata":{
          "shape":"Oauth2AuthorizationServerMetadata",
          "documentation":"<p>The authorization server metadata for the OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Contains the discovery information for an OAuth2 provider.</p>",
      "union":true
    },
    "Oauth2ProviderConfigInput":{
      "type":"structure",
      "members":{
        "customOauth2ProviderConfig":{
          "shape":"CustomOauth2ProviderConfigInput",
          "documentation":"<p>The configuration for a custom OAuth2 provider.</p>"
        },
        "googleOauth2ProviderConfig":{
          "shape":"GoogleOauth2ProviderConfigInput",
          "documentation":"<p>The configuration for a Google OAuth2 provider.</p>"
        },
        "githubOauth2ProviderConfig":{
          "shape":"GithubOauth2ProviderConfigInput",
          "documentation":"<p>The configuration for a GitHub OAuth2 provider.</p>"
        },
        "slackOauth2ProviderConfig":{
          "shape":"SlackOauth2ProviderConfigInput",
          "documentation":"<p>The configuration for a Slack OAuth2 provider.</p>"
        },
        "salesforceOauth2ProviderConfig":{
          "shape":"SalesforceOauth2ProviderConfigInput",
          "documentation":"<p>The configuration for a Salesforce OAuth2 provider.</p>"
        },
        "microsoftOauth2ProviderConfig":{
          "shape":"MicrosoftOauth2ProviderConfigInput",
          "documentation":"<p>The configuration for a Microsoft OAuth2 provider.</p>"
        },
        "atlassianOauth2ProviderConfig":{
          "shape":"AtlassianOauth2ProviderConfigInput",
          "documentation":"<p>Configuration settings for Atlassian OAuth2 provider integration.</p>"
        },
        "linkedinOauth2ProviderConfig":{
          "shape":"LinkedinOauth2ProviderConfigInput",
          "documentation":"<p>Configuration settings for LinkedIn OAuth2 provider integration.</p>"
        },
        "includedOauth2ProviderConfig":{
          "shape":"IncludedOauth2ProviderConfigInput",
          "documentation":"<p>The configuration for a non-custom OAuth2 provider. This includes settings for supported OAuth2 providers that have built-in integration support.</p>"
        }
      },
      "documentation":"<p>Contains the input configuration for an OAuth2 provider.</p>",
      "union":true
    },
    "Oauth2ProviderConfigOutput":{
      "type":"structure",
      "members":{
        "customOauth2ProviderConfig":{
          "shape":"CustomOauth2ProviderConfigOutput",
          "documentation":"<p>The output configuration for a custom OAuth2 provider.</p>"
        },
        "googleOauth2ProviderConfig":{
          "shape":"GoogleOauth2ProviderConfigOutput",
          "documentation":"<p>The output configuration for a Google OAuth2 provider.</p>"
        },
        "githubOauth2ProviderConfig":{
          "shape":"GithubOauth2ProviderConfigOutput",
          "documentation":"<p>The output configuration for a GitHub OAuth2 provider.</p>"
        },
        "slackOauth2ProviderConfig":{
          "shape":"SlackOauth2ProviderConfigOutput",
          "documentation":"<p>The output configuration for a Slack OAuth2 provider.</p>"
        },
        "salesforceOauth2ProviderConfig":{
          "shape":"SalesforceOauth2ProviderConfigOutput",
          "documentation":"<p>The output configuration for a Salesforce OAuth2 provider.</p>"
        },
        "microsoftOauth2ProviderConfig":{
          "shape":"MicrosoftOauth2ProviderConfigOutput",
          "documentation":"<p>The output configuration for a Microsoft OAuth2 provider.</p>"
        },
        "atlassianOauth2ProviderConfig":{
          "shape":"AtlassianOauth2ProviderConfigOutput",
          "documentation":"<p>The configuration details for the Atlassian OAuth2 provider.</p>"
        },
        "linkedinOauth2ProviderConfig":{
          "shape":"LinkedinOauth2ProviderConfigOutput",
          "documentation":"<p>The configuration details for the LinkedIn OAuth2 provider.</p>"
        },
        "includedOauth2ProviderConfig":{
          "shape":"IncludedOauth2ProviderConfigOutput",
          "documentation":"<p>The configuration for a non-custom OAuth2 provider. This includes the configuration details for supported OAuth2 providers that have built-in integration support.</p>"
        }
      },
      "documentation":"<p>Contains the output configuration for an OAuth2 provider.</p>",
      "union":true
    },
    "OnBehalfOfTokenExchangeConfigType":{
      "type":"structure",
      "required":["grantType"],
      "members":{
        "grantType":{
          "shape":"OnBehalfOfTokenExchangeGrantTypeType",
          "documentation":"<p>The grant type for the on-behalf-of token exchange.</p>"
        },
        "tokenExchangeGrantTypeConfig":{
          "shape":"TokenExchangeGrantTypeConfigType",
          "documentation":"<p>Configuration specific to the TOKEN_EXCHANGE grant type (RFC 8693).</p>"
        }
      },
      "documentation":"<p>Configuration for on-behalf-of token exchange.</p>"
    },
    "OnBehalfOfTokenExchangeGrantTypeType":{
      "type":"string",
      "enum":[
        "TOKEN_EXCHANGE",
        "JWT_AUTHORIZATION_GRANT"
      ]
    },
    "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}"
    },
    "OnlineEvaluationConfigId":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}"
    },
    "OnlineEvaluationConfigStatus":{
      "type":"string",
      "enum":[
        "ACTIVE",
        "CREATING",
        "CREATE_FAILED",
        "UPDATING",
        "UPDATE_FAILED",
        "DELETING",
        "ERROR"
      ]
    },
    "OnlineEvaluationConfigSummary":{
      "type":"structure",
      "required":[
        "onlineEvaluationConfigArn",
        "onlineEvaluationConfigId",
        "onlineEvaluationConfigName",
        "status",
        "executionStatus",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "onlineEvaluationConfigArn":{
          "shape":"OnlineEvaluationConfigArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the online evaluation configuration. </p>"
        },
        "onlineEvaluationConfigId":{
          "shape":"OnlineEvaluationConfigId",
          "documentation":"<p> The unique identifier of the online evaluation configuration. </p>"
        },
        "onlineEvaluationConfigName":{
          "shape":"EvaluationConfigName",
          "documentation":"<p> The name of the online evaluation configuration. </p>"
        },
        "description":{
          "shape":"EvaluationConfigDescription",
          "documentation":"<p> The description of the online evaluation configuration. </p>"
        },
        "status":{
          "shape":"OnlineEvaluationConfigStatus",
          "documentation":"<p> The status of the online evaluation configuration. </p>"
        },
        "executionStatus":{
          "shape":"OnlineEvaluationExecutionStatus",
          "documentation":"<p> The execution status indicating whether the online evaluation is currently running. </p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the online evaluation configuration was created. </p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the online evaluation configuration was last updated. </p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p> The reason for failure if the online evaluation configuration execution failed. </p>"
        }
      },
      "documentation":"<p> The summary information about an online evaluation configuration, including basic metadata and execution status. </p>"
    },
    "OnlineEvaluationConfigSummaryList":{
      "type":"list",
      "member":{"shape":"OnlineEvaluationConfigSummary"}
    },
    "OnlineEvaluationExecutionStatus":{
      "type":"string",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "OutputConfig":{
      "type":"structure",
      "required":["cloudWatchConfig"],
      "members":{
        "cloudWatchConfig":{
          "shape":"CloudWatchOutputConfig",
          "documentation":"<p> The CloudWatch configuration for writing evaluation results to CloudWatch logs with embedded metric format. </p>"
        }
      },
      "documentation":"<p> The configuration that specifies where evaluation results should be written for monitoring and analysis. </p>"
    },
    "OverrideType":{
      "type":"string",
      "enum":[
        "SEMANTIC_OVERRIDE",
        "SUMMARY_OVERRIDE",
        "USER_PREFERENCE_OVERRIDE",
        "SELF_MANAGED",
        "EPISODIC_OVERRIDE"
      ]
    },
    "Policies":{
      "type":"list",
      "member":{"shape":"Policy"},
      "max":100,
      "min":0
    },
    "Policy":{
      "type":"structure",
      "required":[
        "policyId",
        "name",
        "policyEngineId",
        "definition",
        "createdAt",
        "updatedAt",
        "policyArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for the policy. This system-generated identifier consists of the user name plus a 10-character generated suffix and serves as the primary key for policy operations.</p>"
        },
        "name":{
          "shape":"PolicyName",
          "documentation":"<p>The customer-assigned immutable name for the policy. This human-readable identifier must be unique within the account and cannot exceed 48 characters.</p>"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine that manages this policy. This establishes the policy engine context for policy evaluation and management.</p>"
        },
        "definition":{
          "shape":"PolicyDefinition",
          "documentation":"<p>The Cedar policy statement that defines the access control rules. This contains the actual policy logic used for agent behavior control and access decisions.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A human-readable description of the policy's purpose and functionality. Limited to 4,096 characters, this helps administrators understand and manage the policy.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy was originally created. This is automatically set by the service and used for auditing and lifecycle management.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy was last modified. This tracks the most recent changes to the policy configuration or metadata.</p>"
        },
        "policyArn":{
          "shape":"PolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy. This globally unique identifier can be used for cross-service references and IAM policy statements.</p>"
        },
        "status":{
          "shape":"PolicyStatus",
          "documentation":"<p>The current status of the policy.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the policy status. This provides details about any failures or the current state of the policy lifecycle.</p>"
        }
      },
      "documentation":"<p>Represents a complete policy resource within the AgentCore Policy system. Policies are ARN-able resources that contain Cedar policy statements and associated metadata for controlling agent behavior and access decisions. Each policy belongs to a policy engine and defines fine-grained authorization rules that are evaluated in real-time as agents interact with tools through Gateway. Policies use the Cedar policy language to specify who (principals based on OAuth claims like username, role, or scope) can perform what actions (tool calls) on which resources (Gateways), with optional conditions for attribute-based access control. Multiple policies can apply to a single request, with Cedar's forbid-wins semantics ensuring that security restrictions are never accidentally overridden.</p>"
    },
    "PolicyArn":{
      "type":"string",
      "max":203,
      "min":96,
      "pattern":"arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}/policy/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}"
    },
    "PolicyDefinition":{
      "type":"structure",
      "members":{
        "cedar":{
          "shape":"CedarPolicy",
          "documentation":"<p>The Cedar policy definition within the policy definition structure. This contains the Cedar policy statement that defines the authorization logic using Cedar's human-readable, analyzable policy language. Cedar policies specify principals (who can access), actions (what operations are allowed), resources (what can be accessed), and optional conditions for fine-grained control. Cedar provides a formal policy language designed for authorization with deterministic evaluation, making policies testable, reviewable, and auditable. All Cedar policies follow a default-deny model where actions are denied unless explicitly permitted, and forbid policies always override permit policies.</p>"
        },
        "policyGeneration":{
          "shape":"PolicyGenerationDetails",
          "documentation":"<p>The generated policy asset information within the policy definition structure. This contains information identifying a generated policy asset from the AI-powered policy generation process within the AgentCore Policy system. Each asset contains a Cedar policy statement generated from natural language input, along with associated metadata and analysis findings to help users evaluate and select the most appropriate policy option.</p>"
        }
      },
      "documentation":"<p>Represents the definition structure for policies within the AgentCore Policy system. This structure encapsulates different policy formats and languages that can be used to define access control rules.</p>",
      "union":true
    },
    "PolicyEngine":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "name",
        "createdAt",
        "updatedAt",
        "policyEngineArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for the policy engine. This system-generated identifier consists of the user name plus a 10-character generated suffix and serves as the primary key for policy engine operations.</p>"
        },
        "name":{
          "shape":"PolicyEngineName",
          "documentation":"<p>The customer-assigned immutable name for the policy engine. This human-readable identifier must be unique within the account and cannot exceed 48 characters.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A human-readable description of the policy engine's purpose and scope. Limited to 4,096 characters, this helps administrators understand the policy engine's role in the overall governance strategy.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy engine was originally created. This is automatically set by the service and used for auditing and lifecycle management.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy engine was last modified. This tracks the most recent changes to the policy engine configuration or metadata.</p>"
        },
        "policyEngineArn":{
          "shape":"PolicyEngineArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy engine. This globally unique identifier can be used for cross-service references and IAM policy statements.</p>"
        },
        "status":{
          "shape":"PolicyEngineStatus",
          "documentation":"<p>The current status of the policy engine.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the policy engine status. This provides details about any failures or the current state of the policy engine lifecycle.</p>"
        },
        "encryptionKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.</p>"
        }
      },
      "documentation":"<p>Represents a policy engine resource within the AgentCore Policy system. Policy engines serve as containers for grouping related policies and provide the execution context for policy evaluation and management. Each policy engine can be associated with one Gateway (one engine per Gateway), where it intercepts all agent tool calls and evaluates them against the contained policies before allowing tools to execute. The policy engine maintains the Cedar schema generated from the Gateway's tool manifest, ensuring that policies are validated against the actual tools and parameters available. Policy engines support two enforcement modes that can be configured when associating with a Gateway: log-only mode for testing (evaluates decisions without blocking) and enforce mode for production (actively allows or denies based on policy evaluation).</p>"
    },
    "PolicyEngineArn":{
      "type":"string",
      "max":136,
      "min":76,
      "pattern":"arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}"
    },
    "PolicyEngineName":{
      "type":"string",
      "max":48,
      "min":1,
      "pattern":"[A-Za-z][A-Za-z0-9_]*"
    },
    "PolicyEngineStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "ACTIVE",
        "UPDATING",
        "DELETING",
        "CREATE_FAILED",
        "UPDATE_FAILED",
        "DELETE_FAILED"
      ]
    },
    "PolicyEngines":{
      "type":"list",
      "member":{"shape":"PolicyEngine"},
      "max":100,
      "min":0
    },
    "PolicyGeneration":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "policyGenerationId",
        "name",
        "policyGenerationArn",
        "resource",
        "createdAt",
        "updatedAt",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine associated with this generation request.</p>"
        },
        "policyGenerationId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for this policy generation request.</p>"
        },
        "name":{
          "shape":"PolicyGenerationName",
          "documentation":"<p>The customer-assigned name for this policy generation request.</p>"
        },
        "policyGenerationArn":{
          "shape":"PolicyGenerationArn",
          "documentation":"<p>The ARN of this policy generation request.</p>"
        },
        "resource":{
          "shape":"Resource",
          "documentation":"<p>The resource information associated with this policy generation.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when this policy generation request was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when this policy generation was last updated.</p>"
        },
        "status":{
          "shape":"PolicyGenerationStatus",
          "documentation":"<p>The current status of this policy generation request.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the generation status.</p>"
        },
        "findings":{
          "shape":"String",
          "documentation":"<p>Findings and insights from this policy generation process.</p>"
        }
      },
      "documentation":"<p>Represents a policy generation request within the AgentCore Policy system. Tracks the AI-powered conversion of natural language descriptions into Cedar policy statements, enabling users to author policies by describing authorization requirements in plain English. The generation process analyzes the natural language input along with the Gateway's tool context and Cedar schema to produce one or more validated policy options. Each generation request tracks the status of the conversion process and maintains findings about the generated policies, including validation results and potential issues. Generated policy assets remain available for one week after successful generation, allowing time to review and create policies from the generated options.</p>"
    },
    "PolicyGenerationArn":{
      "type":"string",
      "max":210,
      "min":103,
      "pattern":"arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}/policy-generation/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}"
    },
    "PolicyGenerationAsset":{
      "type":"structure",
      "required":[
        "policyGenerationAssetId",
        "rawTextFragment",
        "findings"
      ],
      "members":{
        "policyGenerationAssetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for this generated policy asset within the policy generation request. This ID can be used to reference specific generated policy options when creating actual policies from the generation results.</p>"
        },
        "definition":{"shape":"PolicyDefinition"},
        "rawTextFragment":{
          "shape":"NaturalLanguage",
          "documentation":"<p>The portion of the original natural language input that this generated policy asset addresses. This helps users understand which part of their policy description was translated into this specific Cedar policy statement, enabling better policy selection and refinement. When a single natural language input describes multiple authorization requirements, the generation process creates separate policy assets for each requirement, with each asset's rawTextFragment showing which requirement it addresses. Use this mapping to verify that all parts of your natural language input were correctly translated into Cedar policies.</p>"
        },
        "findings":{
          "shape":"Findings",
          "documentation":"<p>Analysis findings and insights related to this specific generated policy asset. These findings may include validation results, potential issues, or recommendations for improvement to help users evaluate the quality and appropriateness of the generated policy.</p>"
        }
      },
      "documentation":"<p>Represents a generated policy asset from the AI-powered policy generation process within the AgentCore Policy system. Each asset contains a Cedar policy statement generated from natural language input, along with associated metadata and analysis findings to help users evaluate and select the most appropriate policy option.</p>"
    },
    "PolicyGenerationAssets":{
      "type":"list",
      "member":{"shape":"PolicyGenerationAsset"}
    },
    "PolicyGenerationDetails":{
      "type":"structure",
      "required":[
        "policyGenerationId",
        "policyGenerationAssetId"
      ],
      "members":{
        "policyGenerationId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for this policy generation request.</p>"
        },
        "policyGenerationAssetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for this generated policy asset within the policy generation request.</p>"
        }
      },
      "documentation":"<p>Represents the information identifying a generated policy asset from the AI-powered policy generation process within the AgentCore Policy system. Each asset contains a Cedar policy statement generated from natural language input, along with associated metadata and analysis findings to help users evaluate and select the most appropriate policy option.</p>"
    },
    "PolicyGenerationName":{
      "type":"string",
      "max":48,
      "min":1,
      "pattern":"[A-Za-z][A-Za-z0-9_]*"
    },
    "PolicyGenerationStatus":{
      "type":"string",
      "enum":[
        "GENERATING",
        "GENERATED",
        "GENERATE_FAILED",
        "DELETE_FAILED"
      ]
    },
    "PolicyGenerations":{
      "type":"list",
      "member":{"shape":"PolicyGeneration"},
      "max":100,
      "min":0
    },
    "PolicyName":{
      "type":"string",
      "max":48,
      "min":1,
      "pattern":"[A-Za-z][A-Za-z0-9_]*"
    },
    "PolicyStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "ACTIVE",
        "UPDATING",
        "DELETING",
        "CREATE_FAILED",
        "UPDATE_FAILED",
        "DELETE_FAILED"
      ]
    },
    "PolicyStatusReasons":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "PolicyValidationMode":{
      "type":"string",
      "enum":[
        "FAIL_ON_ANY_FINDINGS",
        "IGNORE_ALL_FINDINGS"
      ]
    },
    "PrincipalMatchOperator":{
      "type":"string",
      "enum":[
        "StringEquals",
        "StringLike"
      ]
    },
    "PrivateEndpoint":{
      "type":"structure",
      "members":{
        "selfManagedLatticeResource":{
          "shape":"SelfManagedLatticeResource",
          "documentation":"<p>Configuration for connecting to a private resource using a self-managed VPC Lattice resource configuration.</p>"
        },
        "managedVpcResource":{
          "shape":"ManagedVpcResource",
          "documentation":"<p>Configuration for connecting to a private resource using a managed VPC Lattice resource. The gateway creates and manages the VPC Lattice resources on your behalf.</p>"
        }
      },
      "documentation":"<p>The private endpoint configuration for a gateway target. Defines how the gateway connects to private resources in your VPC.</p>",
      "union":true
    },
    "PrivateEndpointManagedResources":{
      "type":"list",
      "member":{"shape":"ManagedResourceDetails"},
      "documentation":"<p>A list of managed resources created by the gateway for private endpoint connectivity.</p>"
    },
    "PrivateEndpointOverride":{
      "type":"structure",
      "required":[
        "domain",
        "privateEndpoint"
      ],
      "members":{
        "domain":{
          "shape":"PrivateEndpointOverrideDomain",
          "documentation":"<p>The domain to override with a private endpoint.</p>"
        },
        "privateEndpoint":{
          "shape":"PrivateEndpoint",
          "documentation":"<p>The private endpoint configuration for the specified domain.</p>"
        }
      },
      "documentation":"<p>A mapping of a specific domain to a private endpoint for secure connectivity through a VPC Lattice resource configuration.</p>"
    },
    "PrivateEndpointOverrideDomain":{
      "type":"string",
      "max":253,
      "min":1
    },
    "PrivateEndpointOverrides":{
      "type":"list",
      "member":{"shape":"PrivateEndpointOverride"},
      "max":5,
      "min":0
    },
    "Prompt":{
      "type":"string",
      "max":30000,
      "min":1,
      "sensitive":true
    },
    "ProtocolConfiguration":{
      "type":"structure",
      "required":["serverProtocol"],
      "members":{
        "serverProtocol":{
          "shape":"ServerProtocol",
          "documentation":"<p>The server protocol for the agent runtime. This field specifies which protocol the agent runtime uses to communicate with clients.</p>"
        }
      },
      "documentation":"<p>The protocol configuration for an agent runtime. This structure defines how the agent runtime communicates with clients.</p>"
    },
    "PutResourcePolicyRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "policy"
      ],
      "members":{
        "resourceArn":{
          "shape":"BedrockAgentcoreResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource for which to create or update the resource policy.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "policy":{
          "shape":"ResourcePolicyBody",
          "documentation":"<p>The resource policy to create or update.</p>"
        }
      }
    },
    "PutResourcePolicyResponse":{
      "type":"structure",
      "required":["policy"],
      "members":{
        "policy":{
          "shape":"ResourcePolicyBody",
          "documentation":"<p>The resource policy that was created or updated.</p>"
        }
      }
    },
    "RatingScale":{
      "type":"structure",
      "members":{
        "numerical":{
          "shape":"NumericalScaleDefinitions",
          "documentation":"<p> The numerical rating scale with defined score values and descriptions for quantitative evaluation. </p>"
        },
        "categorical":{
          "shape":"CategoricalScaleDefinitions",
          "documentation":"<p> The categorical rating scale with named categories and definitions for qualitative evaluation. </p>"
        }
      },
      "documentation":"<p> The rating scale that defines how evaluators should score agent performance, supporting both numerical and categorical scales. </p>",
      "sensitive":true,
      "union":true
    },
    "RecordIdentifier":{
      "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}"
    },
    "RecordingConfig":{
      "type":"structure",
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether recording is enabled for the browser. When set to true, browser sessions are recorded.</p>"
        },
        "s3Location":{
          "shape":"S3Location",
          "documentation":"<p>The Amazon S3 location where browser recordings are stored. This location contains the recorded browser sessions.</p>"
        }
      },
      "documentation":"<p>The recording configuration for a browser. This structure defines how browser sessions are recorded.</p>"
    },
    "ReflectionConfiguration":{
      "type":"structure",
      "members":{
        "customReflectionConfiguration":{
          "shape":"CustomReflectionConfiguration",
          "documentation":"<p>The configuration for a custom reflection strategy.</p>"
        },
        "episodicReflectionConfiguration":{
          "shape":"EpisodicReflectionConfiguration",
          "documentation":"<p>The configuration for the episodic reflection strategy.</p>"
        }
      },
      "documentation":"<p>Contains reflection configuration information for a memory strategy.</p>",
      "union":true
    },
    "RegistryArn":{
      "type":"string",
      "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}"
    },
    "RegistryAuthorizerType":{
      "type":"string",
      "enum":[
        "CUSTOM_JWT",
        "AWS_IAM"
      ]
    },
    "RegistryId":{
      "type":"string",
      "max":16,
      "min":12,
      "pattern":"[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}"
    },
    "RegistryName":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9][a-zA-Z0-9_\\-\\.\\/]*"
    },
    "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}"
    },
    "RegistryRecordCredentialProviderConfiguration":{
      "type":"structure",
      "required":[
        "credentialProviderType",
        "credentialProvider"
      ],
      "members":{
        "credentialProviderType":{
          "shape":"RegistryRecordCredentialProviderType",
          "documentation":"<p>The type of credential provider.</p> <ul> <li> <p> <code>OAUTH</code> - OAuth-based authentication.</p> </li> <li> <p> <code>IAM</code> - Amazon Web Services IAM-based authentication using SigV4 signing.</p> </li> </ul>"
        },
        "credentialProvider":{
          "shape":"RegistryRecordCredentialProviderUnion",
          "documentation":"<p>The credential provider configuration details. The structure depends on the <code>credentialProviderType</code>.</p>"
        }
      },
      "documentation":"<p>A pairing of a credential provider type with its corresponding provider details for authenticating with external sources.</p>"
    },
    "RegistryRecordCredentialProviderConfigurationList":{
      "type":"list",
      "member":{"shape":"RegistryRecordCredentialProviderConfiguration"},
      "max":1,
      "min":0
    },
    "RegistryRecordCredentialProviderType":{
      "type":"string",
      "enum":[
        "OAUTH",
        "IAM"
      ]
    },
    "RegistryRecordCredentialProviderUnion":{
      "type":"structure",
      "members":{
        "oauthCredentialProvider":{
          "shape":"RegistryRecordOAuthCredentialProvider",
          "documentation":"<p>The OAuth credential provider configuration for authenticating with the external source.</p>"
        },
        "iamCredentialProvider":{
          "shape":"RegistryRecordIamCredentialProvider",
          "documentation":"<p>The IAM credential provider configuration for authenticating with the external source using SigV4 signing.</p>"
        }
      },
      "documentation":"<p>Union of supported credential provider types for registry record synchronization.</p>",
      "union":true
    },
    "RegistryRecordIamCredentialProvider":{
      "type":"structure",
      "members":{
        "roleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role to assume for SigV4 signing.</p>"
        },
        "service":{
          "shape":"IamSigningServiceName",
          "documentation":"<p>The SigV4 signing service name (for example, <code>execute-api</code> or <code>bedrock-agentcore</code>).</p>"
        },
        "region":{
          "shape":"IamSigningRegion",
          "documentation":"<p>The Amazon Web Services region for SigV4 signing (for example, <code>us-west-2</code>). If not specified, the region is extracted from the MCP server URL hostname, with fallback to the service's own region.</p>"
        }
      },
      "documentation":"<p>IAM credential provider configuration for authenticating with an external source using SigV4 signing during synchronization.</p>"
    },
    "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_\\-\\.\\/]*"
    },
    "RegistryRecordOAuthCredentialProvider":{
      "type":"structure",
      "required":["providerArn"],
      "members":{
        "providerArn":{
          "shape":"CredentialProviderArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the OAuth credential provider resource.</p>"
        },
        "grantType":{
          "shape":"RegistryRecordOAuthGrantType",
          "documentation":"<p>The OAuth grant type. Currently only <code>CLIENT_CREDENTIALS</code> is supported.</p>"
        },
        "scopes":{
          "shape":"ScopeList",
          "documentation":"<p>The OAuth scopes to request during authentication.</p>"
        },
        "customParameters":{
          "shape":"CustomParameterMap",
          "documentation":"<p>Additional custom parameters for the OAuth flow.</p>"
        }
      },
      "documentation":"<p>OAuth credential provider configuration for authenticating with an external source during synchronization.</p>"
    },
    "RegistryRecordOAuthGrantType":{
      "type":"string",
      "enum":["CLIENT_CREDENTIALS"]
    },
    "RegistryRecordStatus":{
      "type":"string",
      "enum":[
        "DRAFT",
        "PENDING_APPROVAL",
        "APPROVED",
        "REJECTED",
        "DEPRECATED",
        "CREATING",
        "UPDATING",
        "CREATE_FAILED",
        "UPDATE_FAILED"
      ]
    },
    "RegistryRecordSummary":{
      "type":"structure",
      "required":[
        "registryArn",
        "recordArn",
        "recordId",
        "name",
        "descriptorType",
        "recordVersion",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the registry that contains the record.</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>The description of the registry record.</p>"
        },
        "descriptorType":{
          "shape":"DescriptorType",
          "documentation":"<p>The descriptor type of the registry record. Possible values are <code>MCP</code>, <code>A2A</code>, <code>CUSTOM</code>, and <code>AGENT_SKILLS</code>.</p>"
        },
        "recordVersion":{
          "shape":"RegistryRecordVersion",
          "documentation":"<p>The version of the registry record.</p>"
        },
        "status":{
          "shape":"RegistryRecordStatus",
          "documentation":"<p>The current status of the registry record. Possible values include <code>CREATING</code>, <code>DRAFT</code>, <code>APPROVED</code>, <code>PENDING_APPROVAL</code>, <code>REJECTED</code>, <code>DEPRECATED</code>, <code>UPDATING</code>, <code>CREATE_FAILED</code>, and <code>UPDATE_FAILED</code>.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry record was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry record was last updated.</p>"
        }
      },
      "documentation":"<p>Contains 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.-]+"
    },
    "RegistryStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "READY",
        "UPDATING",
        "CREATE_FAILED",
        "UPDATE_FAILED",
        "DELETING",
        "DELETE_FAILED"
      ]
    },
    "RegistrySummary":{
      "type":"structure",
      "required":[
        "name",
        "registryId",
        "registryArn",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "name":{
          "shape":"RegistryName",
          "documentation":"<p>The name of the registry.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the registry.</p>"
        },
        "registryId":{
          "shape":"RegistryId",
          "documentation":"<p>The unique identifier of the registry.</p>"
        },
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the registry.</p>"
        },
        "authorizerType":{
          "shape":"RegistryAuthorizerType",
          "documentation":"<p>The type of authorizer used by the registry. This controls the authorization method for the Search and Invoke APIs used by consumers.</p> <ul> <li> <p> <code>CUSTOM_JWT</code> - Authorize with a bearer token.</p> </li> <li> <p> <code>AWS_IAM</code> - Authorize with your Amazon Web Services IAM credentials.</p> </li> </ul>"
        },
        "status":{
          "shape":"RegistryStatus",
          "documentation":"<p>The current status of the registry. Possible values include <code>CREATING</code>, <code>READY</code>, <code>UPDATING</code>, <code>CREATE_FAILED</code>, <code>UPDATE_FAILED</code>, <code>DELETING</code>, and <code>DELETE_FAILED</code>.</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>The reason for the current status, typically set when the status is a failure state.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a registry.</p>"
    },
    "RegistrySummaryList":{
      "type":"list",
      "member":{"shape":"RegistrySummary"}
    },
    "RequestHeaderAllowlist":{
      "type":"list",
      "member":{"shape":"HeaderName"},
      "max":20,
      "min":1
    },
    "RequestHeaderConfiguration":{
      "type":"structure",
      "members":{
        "requestHeaderAllowlist":{
          "shape":"RequestHeaderAllowlist",
          "documentation":"<p>A list of HTTP request headers that are allowed to be passed through to the runtime.</p>"
        }
      },
      "documentation":"<p>Configuration for HTTP request headers that will be passed through to the runtime.</p>",
      "union":true
    },
    "RequiredProperties":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "Resource":{
      "type":"structure",
      "members":{
        "arn":{
          "shape":"BedrockAgentcoreResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource. This globally unique identifier specifies the exact resource that policies will be evaluated against for access control decisions. </p>"
        }
      },
      "documentation":"<p>Represents a resource within the AgentCore Policy system. Resources are the targets of policy evaluation. Currently, only AgentCore Gateways are supported as resources for policy enforcement.</p>",
      "union":true
    },
    "ResourceAssociationArn":{
      "type":"string",
      "pattern":"arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkresourceassociation/snra-[0-9a-f]{17}"
    },
    "ResourceConfigurationIdentifier":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"((rcfg-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}))"
    },
    "ResourceGatewayArn":{
      "type":"string",
      "pattern":"arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}"
    },
    "ResourceId":{
      "type":"string",
      "max":59,
      "min":12,
      "pattern":"[A-Za-z][A-Za-z0-9_]*-[a-z0-9_]{10}"
    },
    "ResourceLimitExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Exception thrown when a resource limit is exceeded.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceLocation":{
      "type":"structure",
      "members":{
        "s3":{"shape":"S3Location"}
      },
      "documentation":"<p>The location of a resource.</p>",
      "union":true
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>This exception is thrown when a resource referenced by the operation does not exist</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceOauth2ReturnUrlListType":{
      "type":"list",
      "member":{"shape":"ResourceOauth2ReturnUrlType"}
    },
    "ResourceOauth2ReturnUrlType":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\w+:(\\/?\\/?)[^\\s]+"
    },
    "ResourcePolicyBody":{
      "type":"string",
      "max":20480,
      "min":1
    },
    "ResourceType":{
      "type":"string",
      "enum":[
        "SYSTEM",
        "CUSTOM"
      ]
    },
    "ResponseListType":{
      "type":"list",
      "member":{"shape":"ResponseType"}
    },
    "ResponseType":{"type":"string"},
    "RestApiMethod":{
      "type":"string",
      "enum":[
        "GET",
        "DELETE",
        "HEAD",
        "OPTIONS",
        "PATCH",
        "PUT",
        "POST"
      ]
    },
    "RestApiMethods":{
      "type":"list",
      "member":{"shape":"RestApiMethod"}
    },
    "RoleArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+"
    },
    "RouteToTargetAction":{
      "type":"structure",
      "members":{
        "staticRoute":{
          "shape":"StaticRoute",
          "documentation":"<p>A static route that sends all matching requests to a single target.</p>"
        },
        "weightedRoute":{
          "shape":"WeightedRoute",
          "documentation":"<p>A weighted route that splits traffic between multiple targets.</p>"
        }
      },
      "documentation":"<p>An action that routes requests to a gateway target, either statically or with weighted traffic splitting.</p>",
      "union":true
    },
    "RoutingDomain":{
      "type":"string",
      "max":255,
      "min":3
    },
    "Rule":{
      "type":"structure",
      "required":["samplingConfig"],
      "members":{
        "samplingConfig":{
          "shape":"SamplingConfig",
          "documentation":"<p> The sampling configuration that determines what percentage of agent traces to evaluate. </p>"
        },
        "filters":{
          "shape":"FilterList",
          "documentation":"<p> The list of filters that determine which agent traces should be included in the evaluation based on trace properties. </p>"
        },
        "sessionConfig":{
          "shape":"SessionConfig",
          "documentation":"<p> The session configuration that defines timeout settings for detecting when agent sessions are complete and ready for evaluation. </p>"
        }
      },
      "documentation":"<p> The evaluation rule that defines sampling configuration, filtering criteria, and session detection settings for online evaluation. </p>"
    },
    "RuntimeArn":{
      "type":"string",
      "pattern":"arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:runtime/[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}"
    },
    "RuntimeContainerUri":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"(([0-9]{12})\\.dkr\\.ecr\\.([a-z0-9-]+)\\.amazonaws\\.com(\\.cn)?|public\\.ecr\\.aws)/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(?::([^:@]{1,300}))?(?:@(.+))?"
    },
    "RuntimeMetadataConfiguration":{
      "type":"structure",
      "required":["requireMMDSV2"],
      "members":{
        "requireMMDSV2":{
          "shape":"Boolean",
          "documentation":"<p>Enables MMDSv2 (microVM Metadata Service Version 2) requirement for the agent runtime. When set to <code>true</code>, the runtime microVM will only accept MMDSv2 requests.</p>"
        }
      },
      "documentation":"<p>Configuration for microVM metadata service settings.</p>"
    },
    "RuntimeQualifier":{
      "type":"string",
      "pattern":".*([1-9][0-9]{0,4})|([a-zA-Z][a-zA-Z0-9_]{0,47}).*"
    },
    "RuntimeTargetConfiguration":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"RuntimeArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the AgentCore Runtime to route requests to.</p>"
        },
        "qualifier":{
          "shape":"RuntimeQualifier",
          "documentation":"<p>The qualifier for the agent runtime, used to target a specific endpoint version. If not specified, the default endpoint is used.</p>"
        }
      },
      "documentation":"<p>Configuration for an AgentCore Runtime target. Specifies the agent runtime to route requests to via HTTP.</p>"
    },
    "S3BucketUri":{
      "type":"string",
      "pattern":"s3://.{1,2043}"
    },
    "S3Configuration":{
      "type":"structure",
      "members":{
        "uri":{
          "shape":"S3BucketUri",
          "documentation":"<p>The URI of the Amazon S3 object. This URI specifies the location of the object in Amazon S3.</p>"
        },
        "bucketOwnerAccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The account ID of the Amazon S3 bucket owner. This ID is used for cross-account access to the bucket.</p>"
        }
      },
      "documentation":"<p>The Amazon S3 configuration for a gateway. This structure defines how the gateway accesses files in Amazon S3.</p>"
    },
    "S3FilesAccessPointArn":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}/access-point/fsap-[0-9a-f]{17,40}"
    },
    "S3FilesAccessPointConfiguration":{
      "type":"structure",
      "required":[
        "accessPointArn",
        "mountPath"
      ],
      "members":{
        "accessPointArn":{
          "shape":"S3FilesAccessPointArn",
          "documentation":"<p>The ARN of the S3 Files access point to mount into the AgentCore Runtime.</p>"
        },
        "mountPath":{
          "shape":"MountPath",
          "documentation":"<p>The mount path for the S3 Files access point inside the AgentCore Runtime. The path must be under <code>/mnt</code> with exactly one subdirectory level (for example, <code>/mnt/data</code>).</p>"
        }
      },
      "documentation":"<p>Configuration for an Amazon S3 Files access point filesystem mounted into the AgentCore Runtime. S3 Files access points provide shared file storage accessible from your AgentCore Runtime sessions.</p>"
    },
    "S3Location":{
      "type":"structure",
      "required":[
        "bucket",
        "prefix"
      ],
      "members":{
        "bucket":{
          "shape":"S3LocationBucketString",
          "documentation":"<p>The name of the Amazon S3 bucket. This bucket contains the stored data.</p>"
        },
        "prefix":{
          "shape":"S3LocationPrefixString",
          "documentation":"<p>The prefix for objects in the Amazon S3 bucket. This prefix is added to the object keys to organize the data.</p>"
        },
        "versionId":{
          "shape":"S3LocationVersionIdString",
          "documentation":"<p>The version ID of the Amazon Amazon S3 object. If not specified, the latest version of the object is used.</p>"
        }
      },
      "documentation":"<p>The Amazon S3 location for storing data. This structure defines where in Amazon S3 data is stored.</p>"
    },
    "S3LocationBucketString":{
      "type":"string",
      "pattern":"[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]"
    },
    "S3LocationPrefixString":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "S3LocationVersionIdString":{
      "type":"string",
      "max":1024,
      "min":3
    },
    "SalesforceOauth2ProviderConfigInput":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Salesforce OAuth2 provider.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecretType",
          "documentation":"<p>The client secret for the Salesforce OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Input configuration for a Salesforce OAuth2 provider.</p>"
    },
    "SalesforceOauth2ProviderConfigOutput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{
          "shape":"Oauth2Discovery",
          "documentation":"<p>The OAuth2 discovery information for the Salesforce provider.</p>"
        },
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Salesforce OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Output configuration for a Salesforce OAuth2 provider.</p>"
    },
    "SamplingConfig":{
      "type":"structure",
      "required":["samplingPercentage"],
      "members":{
        "samplingPercentage":{
          "shape":"SamplingConfigSamplingPercentageDouble",
          "documentation":"<p> The percentage of agent traces to sample for evaluation, ranging from 0.01% to 100%. </p>"
        }
      },
      "documentation":"<p> The configuration that controls what percentage of agent traces are sampled for evaluation to manage evaluation volume and costs. </p>"
    },
    "SamplingConfigSamplingPercentageDouble":{
      "type":"double",
      "box":true,
      "max":100.0,
      "min":0.01
    },
    "SandboxName":{
      "type":"string",
      "pattern":"[a-zA-Z][a-zA-Z0-9_]{0,47}"
    },
    "SchemaDefinition":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"SchemaType",
          "documentation":"<p>The type of the schema definition. This field specifies the data type of the schema.</p>"
        },
        "properties":{
          "shape":"SchemaProperties",
          "documentation":"<p>The properties of the schema definition. These properties define the fields in the schema.</p>"
        },
        "required":{
          "shape":"RequiredProperties",
          "documentation":"<p>The required fields in the schema definition. These fields must be provided when using the schema.</p>"
        },
        "items":{
          "shape":"SchemaDefinition",
          "documentation":"<p>The items in the schema definition. This field is used for array types to define the structure of the array elements.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description of the schema definition. This description provides information about the purpose and usage of the schema.</p>"
        }
      },
      "documentation":"<p>A schema definition for a gateway target. This structure defines the structure of the API that the target exposes.</p>"
    },
    "SchemaProperties":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"SchemaDefinition"}
    },
    "SchemaType":{
      "type":"string",
      "enum":[
        "string",
        "number",
        "object",
        "array",
        "boolean",
        "integer"
      ]
    },
    "SchemaVersion":{
      "type":"string",
      "max":255,
      "min":1
    },
    "ScopeList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "ScopeType":{
      "type":"string",
      "max":128,
      "min":1
    },
    "ScopesListType":{
      "type":"list",
      "member":{"shape":"ScopeType"}
    },
    "SearchType":{
      "type":"string",
      "enum":["SEMANTIC"]
    },
    "Secret":{
      "type":"structure",
      "required":["secretArn"],
      "members":{
        "secretArn":{
          "shape":"SecretArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the secret in AWS Secrets Manager.</p>"
        }
      },
      "documentation":"<p>Contains information about a secret in AWS Secrets Manager.</p>"
    },
    "SecretArn":{
      "type":"string",
      "pattern":"arn:(aws|aws-us-gov):secretsmanager:[A-Za-z0-9-]{1,64}:[0-9]{12}:secret:[a-zA-Z0-9-_/+=.@!]+"
    },
    "SecretsManagerLocation":{
      "type":"structure",
      "required":["secretArn"],
      "members":{
        "secretArn":{
          "shape":"ToolSecretArn",
          "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>"
    },
    "SecurityGroupId":{
      "type":"string",
      "pattern":"sg-[0-9a-zA-Z]{8,17}"
    },
    "SecurityGroupIdentifier":{
      "type":"string",
      "pattern":"sg-(([0-9a-z]{8})|([0-9a-z]{17}))"
    },
    "SecurityGroupIds":{
      "type":"list",
      "member":{"shape":"SecurityGroupIdentifier"},
      "max":5,
      "min":0
    },
    "SecurityGroups":{
      "type":"list",
      "member":{"shape":"SecurityGroupId"},
      "max":16,
      "min":1
    },
    "SelfManagedConfiguration":{
      "type":"structure",
      "required":[
        "triggerConditions",
        "invocationConfiguration",
        "historicalContextWindowSize"
      ],
      "members":{
        "triggerConditions":{
          "shape":"TriggerConditionsList",
          "documentation":"<p>A list of conditions that trigger memory processing.</p>"
        },
        "invocationConfiguration":{
          "shape":"InvocationConfiguration",
          "documentation":"<p>The configuration to use when invoking memory processing.</p>"
        },
        "historicalContextWindowSize":{
          "shape":"Integer",
          "documentation":"<p>The number of historical messages to include in processing context.</p>"
        }
      },
      "documentation":"<p>A configuration for a self-managed memory strategy.</p>"
    },
    "SelfManagedConfigurationInput":{
      "type":"structure",
      "required":["invocationConfiguration"],
      "members":{
        "triggerConditions":{
          "shape":"TriggerConditionInputList",
          "documentation":"<p>A list of conditions that trigger memory processing.</p>"
        },
        "invocationConfiguration":{
          "shape":"InvocationConfigurationInput",
          "documentation":"<p>Configuration to invoke a self-managed memory processing pipeline with.</p>"
        },
        "historicalContextWindowSize":{
          "shape":"SelfManagedConfigurationInputHistoricalContextWindowSizeInteger",
          "documentation":"<p>Number of historical messages to include in processing context.</p>"
        }
      },
      "documentation":"<p>Input configuration for a self-managed memory strategy.</p>"
    },
    "SelfManagedConfigurationInputHistoricalContextWindowSizeInteger":{
      "type":"integer",
      "box":true,
      "max":50,
      "min":0
    },
    "SelfManagedLatticeResource":{
      "type":"structure",
      "members":{
        "resourceConfigurationIdentifier":{
          "shape":"ResourceConfigurationIdentifier",
          "documentation":"<p>The ARN or ID of the VPC Lattice resource configuration.</p>"
        }
      },
      "documentation":"<p>Configuration for a self-managed VPC Lattice resource. You create and manage the VPC Lattice resource gateway and resource configuration, then provide the resource configuration identifier.</p>",
      "union":true
    },
    "SemanticConsolidationOverride":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for semantic consolidation.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for semantic consolidation.</p>"
        }
      },
      "documentation":"<p>Contains semantic consolidation override configuration.</p>"
    },
    "SemanticExtractionOverride":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for semantic extraction.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for semantic extraction.</p>"
        }
      },
      "documentation":"<p>Contains semantic extraction override configuration.</p>"
    },
    "SemanticMemoryStrategyInput":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the semantic memory strategy.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the semantic memory strategy.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces associated with the semantic memory strategy.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates associated with the semantic memory strategy.</p>"
        },
        "memoryRecordSchema":{"shape":"MemoryRecordSchema"}
      },
      "documentation":"<p>Input for creating a semantic memory strategy.</p>"
    },
    "SemanticOverrideConfigurationInput":{
      "type":"structure",
      "members":{
        "extraction":{
          "shape":"SemanticOverrideExtractionConfigurationInput",
          "documentation":"<p>The extraction configuration for a semantic override.</p>"
        },
        "consolidation":{
          "shape":"SemanticOverrideConsolidationConfigurationInput",
          "documentation":"<p>The consolidation configuration for a semantic override.</p>"
        }
      },
      "documentation":"<p>Input for semantic override configuration in a memory strategy.</p>"
    },
    "SemanticOverrideConsolidationConfigurationInput":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for semantic consolidation.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for semantic consolidation.</p>"
        }
      },
      "documentation":"<p>Input for semantic override consolidation configuration in a memory strategy.</p>"
    },
    "SemanticOverrideExtractionConfigurationInput":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for semantic extraction.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for semantic extraction.</p>"
        }
      },
      "documentation":"<p>Input for semantic override extraction configuration in a memory strategy.</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 server definition based on the MCP protocol specification. If not specified, the version is auto-detected from the content.</p>"
        },
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p>The JSON content containing the MCP server definition, conforming to the MCP protocol specification.</p>"
        }
      },
      "documentation":"<p>The server definition for an MCP descriptor. Contains the schema version and inline content for the MCP server configuration.</p>"
    },
    "ServerProtocol":{
      "type":"string",
      "enum":[
        "MCP",
        "HTTP",
        "A2A",
        "AGUI"
      ]
    },
    "ServiceException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>An internal error occurred.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "ServiceName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9._-]+"
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>This exception is thrown when a request is made beyond the service quota</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "SessionConfig":{
      "type":"structure",
      "required":["sessionTimeoutMinutes"],
      "members":{
        "sessionTimeoutMinutes":{
          "shape":"SessionConfigSessionTimeoutMinutesInteger",
          "documentation":"<p> The number of minutes of inactivity after which an agent session is considered complete and ready for evaluation. Default is 15 minutes. </p>"
        }
      },
      "documentation":"<p> The configuration that defines how agent sessions are detected and when they are considered complete for evaluation. </p>"
    },
    "SessionConfigSessionTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "max":1440,
      "min":1
    },
    "SessionConfiguration":{
      "type":"structure",
      "members":{
        "sessionTimeoutInSeconds":{
          "shape":"SessionConfigurationSessionTimeoutInSecondsInteger",
          "documentation":"<p>The session timeout in seconds. After this timeout, the session expires and subsequent requests to this session will receive an error. The minimum value is 900 seconds (15 minutes), the maximum value is 28800 seconds (8 hours), and the default value is 3600 seconds (1 hour).</p>"
        }
      },
      "documentation":"<p>The session configuration for an MCP gateway. This structure defines settings that control session behavior.</p>"
    },
    "SessionConfigurationSessionTimeoutInSecondsInteger":{
      "type":"integer",
      "box":true,
      "max":28800,
      "min":900
    },
    "SessionStorageConfiguration":{
      "type":"structure",
      "required":["mountPath"],
      "members":{
        "mountPath":{
          "shape":"MountPath",
          "documentation":"<p>The mount path for the session storage filesystem inside the AgentCore Runtime. The path must be under <code>/mnt</code> with exactly one subdirectory level (for example, <code>/mnt/data</code>).</p>"
        }
      },
      "documentation":"<p>Configuration for a session storage filesystem mounted into the AgentCore Runtime. Session storage provides persistent storage that is preserved across AgentCore Runtime session invocations.</p>"
    },
    "SetTokenVaultCMKRequest":{
      "type":"structure",
      "required":["kmsConfiguration"],
      "members":{
        "tokenVaultId":{
          "shape":"TokenVaultIdType",
          "documentation":"<p>The unique identifier of the token vault to update.</p>"
        },
        "kmsConfiguration":{
          "shape":"KmsConfiguration",
          "documentation":"<p>The KMS configuration for the token vault, including the key type and KMS key ARN.</p>"
        }
      }
    },
    "SetTokenVaultCMKResponse":{
      "type":"structure",
      "required":[
        "tokenVaultId",
        "kmsConfiguration",
        "lastModifiedDate"
      ],
      "members":{
        "tokenVaultId":{
          "shape":"TokenVaultIdType",
          "documentation":"<p>The ID of the token vault.</p>"
        },
        "kmsConfiguration":{
          "shape":"KmsConfiguration",
          "documentation":"<p>The KMS configuration for the token vault.</p>"
        },
        "lastModifiedDate":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the token vault was last modified.</p>"
        }
      }
    },
    "SkillDefinition":{
      "type":"structure",
      "members":{
        "schemaVersion":{
          "shape":"SchemaVersion",
          "documentation":"<p>The version of the skill definition schema.</p>"
        },
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p>The JSON content containing the structured skill definition.</p>"
        }
      },
      "documentation":"<p>The structured skill definition with schema version and content.</p>"
    },
    "SkillMdDefinition":{
      "type":"structure",
      "members":{
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p>The markdown content describing the agent's skills in a human-readable format.</p>"
        }
      },
      "documentation":"<p>The skill markdown definition for an agent skills descriptor.</p>"
    },
    "SlackOauth2ProviderConfigInput":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Slack OAuth2 provider.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecretType",
          "documentation":"<p>The client secret for the Slack OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Input configuration for a Slack OAuth2 provider.</p>"
    },
    "SlackOauth2ProviderConfigOutput":{
      "type":"structure",
      "required":["oauthDiscovery"],
      "members":{
        "oauthDiscovery":{
          "shape":"Oauth2Discovery",
          "documentation":"<p>The OAuth2 discovery information for the Slack provider.</p>"
        },
        "clientId":{
          "shape":"ClientIdType",
          "documentation":"<p>The client ID for the Slack OAuth2 provider.</p>"
        }
      },
      "documentation":"<p>Output configuration for a Slack OAuth2 provider.</p>"
    },
    "StartPolicyGenerationRequest":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "resource",
        "content",
        "name"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine that provides the context for policy generation. This engine's schema and tool context are used to ensure generated policies are valid and applicable.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        },
        "resource":{
          "shape":"Resource",
          "documentation":"<p>The resource information that provides context for policy generation. This helps the AI understand the target resources and generate appropriate access control rules.</p>"
        },
        "content":{
          "shape":"Content",
          "documentation":"<p>The natural language description of the desired policy behavior. This content is processed by AI to generate corresponding Cedar policy statements that match the described intent.</p>"
        },
        "name":{
          "shape":"PolicyGenerationName",
          "documentation":"<p>A customer-assigned name for the policy generation request. This helps track and identify generation operations, especially when running multiple generations simultaneously.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure the idempotency of the request. The AWS SDK automatically generates this token, so you don't need to provide it in most cases. If you retry a request with the same client token, the service returns the same response without starting a duplicate generation.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StartPolicyGenerationResponse":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "policyGenerationId",
        "name",
        "policyGenerationArn",
        "resource",
        "createdAt",
        "updatedAt",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine associated with the started policy generation. </p>"
        },
        "policyGenerationId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier assigned to the policy generation request for tracking progress. </p>"
        },
        "name":{
          "shape":"PolicyGenerationName",
          "documentation":"<p>The customer-assigned name for the policy generation request.</p>"
        },
        "policyGenerationArn":{
          "shape":"PolicyGenerationArn",
          "documentation":"<p>The ARN of the created policy generation request.</p>"
        },
        "resource":{
          "shape":"Resource",
          "documentation":"<p>The resource information associated with the policy generation request.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy generation request was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy generation was last updated.</p>"
        },
        "status":{
          "shape":"PolicyGenerationStatus",
          "documentation":"<p>The initial status of the policy generation request.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the generation status.</p>"
        },
        "findings":{
          "shape":"String",
          "documentation":"<p>Initial findings from the policy generation process.</p>"
        }
      }
    },
    "Statement":{
      "type":"string",
      "max":10000,
      "min":35
    },
    "StaticOverride":{
      "type":"structure",
      "required":[
        "bundleArn",
        "bundleVersion"
      ],
      "members":{
        "bundleArn":{
          "shape":"GatewayConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configuration bundle to apply.</p>"
        },
        "bundleVersion":{
          "shape":"StaticOverrideBundleVersionString",
          "documentation":"<p>The version of the configuration bundle to apply.</p>"
        }
      },
      "documentation":"<p>A static configuration bundle override.</p>"
    },
    "StaticOverrideBundleVersionString":{
      "type":"string",
      "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "StaticRoute":{
      "type":"structure",
      "required":["targetName"],
      "members":{
        "targetName":{
          "shape":"TargetName",
          "documentation":"<p>The name of the target to route requests to.</p>"
        }
      },
      "documentation":"<p>A static route to a single gateway target.</p>"
    },
    "Status":{
      "type":"string",
      "enum":[
        "CREATING",
        "CREATE_FAILED",
        "UPDATING",
        "UPDATE_FAILED",
        "READY",
        "DELETING",
        "DELETE_FAILED"
      ]
    },
    "StatusReason":{
      "type":"string",
      "max":2048,
      "min":0
    },
    "StatusReasons":{
      "type":"list",
      "member":{"shape":"StatusReason"},
      "max":100,
      "min":0
    },
    "StrategyConfiguration":{
      "type":"structure",
      "members":{
        "type":{
          "shape":"OverrideType",
          "documentation":"<p>The type of override for the strategy configuration.</p>"
        },
        "extraction":{
          "shape":"ExtractionConfiguration",
          "documentation":"<p>The extraction configuration for the memory strategy.</p>"
        },
        "consolidation":{
          "shape":"ConsolidationConfiguration",
          "documentation":"<p>The consolidation configuration for the memory strategy.</p>"
        },
        "reflection":{
          "shape":"ReflectionConfiguration",
          "documentation":"<p>The reflection configuration for the memory strategy.</p>"
        },
        "selfManagedConfiguration":{
          "shape":"SelfManagedConfiguration",
          "documentation":"<p>Self-managed configuration settings.</p>"
        }
      },
      "documentation":"<p>Contains configuration information for a memory strategy.</p>"
    },
    "StreamDeliveryResource":{
      "type":"structure",
      "members":{
        "kinesis":{
          "shape":"KinesisResource",
          "documentation":"<p>Kinesis Data Stream configuration.</p>"
        }
      },
      "documentation":"<p>Supported stream delivery resource types.</p>",
      "union":true
    },
    "StreamDeliveryResources":{
      "type":"structure",
      "required":["resources"],
      "members":{
        "resources":{
          "shape":"StreamDeliveryResourcesList",
          "documentation":"<p>List of stream delivery resource configurations.</p>"
        }
      },
      "documentation":"<p>Configuration for streaming memory record data to external resources.</p>"
    },
    "StreamDeliveryResourcesList":{
      "type":"list",
      "member":{"shape":"StreamDeliveryResource"},
      "max":1,
      "min":0
    },
    "StreamingConfiguration":{
      "type":"structure",
      "members":{
        "enableResponseStreaming":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether response streaming is enabled for the gateway. When set to <code>true</code>, the gateway streams responses from targets back to the client.</p>"
        }
      },
      "documentation":"<p>The streaming configuration for an MCP gateway. This structure defines settings that control response streaming behavior.</p>"
    },
    "String":{"type":"string"},
    "StringListValidation":{
      "type":"structure",
      "members":{
        "allowedValues":{
          "shape":"AllowedStringListValuesList",
          "documentation":"<p>Allowed values for items in this STRINGLIST field.</p>"
        },
        "maxItems":{
          "shape":"StringListValidationMaxItemsInteger",
          "documentation":"<p>Maximum number of items in the string list.</p>"
        }
      },
      "documentation":"<p>Validation for STRINGLIST fields.</p>"
    },
    "StringListValidationMaxItemsInteger":{
      "type":"integer",
      "box":true,
      "max":5,
      "min":1
    },
    "StringValidation":{
      "type":"structure",
      "required":["allowedValues"],
      "members":{
        "allowedValues":{
          "shape":"AllowedStringValuesList",
          "documentation":"<p>Allowed values for this STRING field.</p>"
        }
      },
      "documentation":"<p>Validation for STRING fields.</p>"
    },
    "SubmitRegistryRecordForApprovalRequest":{
      "type":"structure",
      "required":[
        "registryId",
        "recordId"
      ],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry containing the record. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        },
        "recordId":{
          "shape":"RecordIdentifier",
          "documentation":"<p>The identifier of the registry record to submit for approval. You can specify either the Amazon Resource Name (ARN) or the ID of the record.</p>",
          "location":"uri",
          "locationName":"recordId"
        }
      }
    },
    "SubmitRegistryRecordForApprovalResponse":{
      "type":"structure",
      "required":[
        "registryArn",
        "recordArn",
        "recordId",
        "status",
        "updatedAt"
      ],
      "members":{
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the registry that contains the record.</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>"
        },
        "status":{
          "shape":"RegistryRecordStatus",
          "documentation":"<p>The resulting status of the registry record after submission.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the record was last updated.</p>"
        }
      }
    },
    "SubnetId":{
      "type":"string",
      "pattern":"subnet-[0-9a-zA-Z]{8,17}"
    },
    "SubnetIds":{
      "type":"list",
      "member":{"shape":"SubnetId"}
    },
    "Subnets":{
      "type":"list",
      "member":{"shape":"SubnetId"},
      "max":16,
      "min":1
    },
    "SummaryConsolidationOverride":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for summary consolidation.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for summary consolidation.</p>"
        }
      },
      "documentation":"<p>Contains summary consolidation override configuration.</p>"
    },
    "SummaryMemoryStrategyInput":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the summary memory strategy.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the summary memory strategy.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces associated with the summary memory strategy.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates associated with the summary memory strategy.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>Schema for metadata fields on records generated by this strategy.</p>"
        }
      },
      "documentation":"<p>Input for creating a summary memory strategy.</p>"
    },
    "SummaryOverrideConfigurationInput":{
      "type":"structure",
      "members":{
        "consolidation":{
          "shape":"SummaryOverrideConsolidationConfigurationInput",
          "documentation":"<p>The consolidation configuration for a summary override.</p>"
        }
      },
      "documentation":"<p>Input for summary override configuration in a memory strategy.</p>"
    },
    "SummaryOverrideConsolidationConfigurationInput":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for summary consolidation.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for summary consolidation.</p>"
        }
      },
      "documentation":"<p>Input for summary override consolidation configuration in a memory strategy.</p>"
    },
    "SynchronizationConfiguration":{
      "type":"structure",
      "members":{
        "fromUrl":{
          "shape":"FromUrlSynchronizationConfiguration",
          "documentation":"<p>Configuration for synchronizing from a URL-based source.</p>"
        }
      },
      "documentation":"<p>Configuration for synchronizing registry record metadata from an external source.</p>"
    },
    "SynchronizationType":{
      "type":"string",
      "enum":["URL"]
    },
    "SynchronizeGatewayTargetsRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "targetIdList"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The gateway Identifier.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "targetIdList":{
          "shape":"TargetIdList",
          "documentation":"<p>The target ID list.</p>"
        }
      }
    },
    "SynchronizeGatewayTargetsResponse":{
      "type":"structure",
      "members":{
        "targets":{
          "shape":"GatewayTargetList",
          "documentation":"<p>The gateway targets for synchronization.</p>"
        }
      }
    },
    "SystemManagedBlock":{
      "type":"structure",
      "required":["managedBy"],
      "members":{
        "managedBy":{
          "shape":"String",
          "documentation":"<p>The identifier of the system or process that manages this rule.</p>"
        }
      },
      "documentation":"<p>System-managed metadata for rules created by automated processes such as A/B tests.</p>"
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "max":200,
      "min":0
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"TaggableResourcesArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource that you want to tag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>The tags to add to the resource. A tag is a key-value pair.</p>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "TaggableResourcesArn":{
      "type":"string",
      "max":1011,
      "min":20,
      "pattern":"arn:(?:[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:([a-z-]+/[^/]+)(?:/[a-z-]+/[^/]+)*"
    },
    "TagsMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "max":50,
      "min":0
    },
    "TargetConfiguration":{
      "type":"structure",
      "members":{
        "mcp":{
          "shape":"McpTargetConfiguration",
          "documentation":"<p>The Model Context Protocol (MCP) configuration for the target. This configuration defines how the gateway uses MCP to communicate with the target.</p>"
        },
        "http":{
          "shape":"HttpTargetConfiguration",
          "documentation":"<p>The HTTP target configuration. Use this to route gateway requests to an HTTP-based endpoint such as an AgentCore Runtime.</p>"
        }
      },
      "documentation":"<p>The configuration for a gateway target. This structure defines how the gateway connects to and interacts with the target endpoint.</p>",
      "union":true
    },
    "TargetDescription":{
      "type":"string",
      "max":200,
      "min":1,
      "sensitive":true
    },
    "TargetId":{
      "type":"string",
      "pattern":"[0-9a-zA-Z]{10}"
    },
    "TargetIdList":{
      "type":"list",
      "member":{"shape":"TargetId"},
      "max":1,
      "min":1
    },
    "TargetMaxResults":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "TargetName":{
      "type":"string",
      "pattern":"([0-9a-zA-Z][-]?){1,100}",
      "sensitive":true
    },
    "TargetNextToken":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\S*"
    },
    "TargetProtocolType":{
      "type":"string",
      "enum":[
        "MCP",
        "HTTP"
      ]
    },
    "TargetResourcePriority":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":0
    },
    "TargetStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "UPDATING",
        "UPDATE_UNSUCCESSFUL",
        "DELETING",
        "READY",
        "FAILED",
        "SYNCHRONIZING",
        "SYNCHRONIZE_UNSUCCESSFUL",
        "CREATE_PENDING_AUTH",
        "UPDATE_PENDING_AUTH",
        "SYNCHRONIZE_PENDING_AUTH"
      ]
    },
    "TargetSummaries":{
      "type":"list",
      "member":{"shape":"TargetSummary"}
    },
    "TargetSummary":{
      "type":"structure",
      "required":[
        "targetId",
        "name",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The unique identifier of the target.</p>"
        },
        "name":{
          "shape":"TargetName",
          "documentation":"<p>The name of the target.</p>"
        },
        "status":{
          "shape":"TargetStatus",
          "documentation":"<p>The current status of the target.</p>"
        },
        "description":{
          "shape":"TargetDescription",
          "documentation":"<p>The description of the target.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the target was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the target was last updated.</p>"
        },
        "resourcePriority":{
          "shape":"TargetResourcePriority",
          "documentation":"<p>Priority for resolving resource URI conflicts across targets. Lower values take precedence. Defaults to 1000 when not set.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a gateway target. A target represents an endpoint that the gateway can connect to.</p>"
    },
    "TargetTrafficSplitEntries":{
      "type":"list",
      "member":{"shape":"TargetTrafficSplitEntry"},
      "max":2,
      "min":2
    },
    "TargetTrafficSplitEntry":{
      "type":"structure",
      "required":[
        "name",
        "weight",
        "targetName"
      ],
      "members":{
        "name":{
          "shape":"TargetTrafficSplitEntryNameString",
          "documentation":"<p>The name of this traffic split variant.</p>"
        },
        "weight":{
          "shape":"TargetTrafficSplitEntryWeightInteger",
          "documentation":"<p>The percentage of traffic to route to this variant.</p>"
        },
        "targetName":{
          "shape":"TargetName",
          "documentation":"<p>The name of the target to route traffic to.</p>"
        },
        "description":{
          "shape":"TargetTrafficSplitEntryDescriptionString",
          "documentation":"<p>The description of this traffic split variant.</p>"
        },
        "metadata":{
          "shape":"TrafficSplitMetadataMap",
          "documentation":"<p>Key-value metadata associated with this traffic split variant.</p>"
        }
      },
      "documentation":"<p>An entry in a target traffic split configuration.</p>"
    },
    "TargetTrafficSplitEntryDescriptionString":{
      "type":"string",
      "max":200,
      "min":1
    },
    "TargetTrafficSplitEntryNameString":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?"
    },
    "TargetTrafficSplitEntryWeightInteger":{
      "type":"integer",
      "box":true,
      "max":99,
      "min":1
    },
    "Temperature":{
      "type":"float",
      "box":true,
      "max":2.0,
      "min":0.0
    },
    "TenantIdType":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "ThrottledException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>API rate limit has been exceeded.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":false}
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>This exception is thrown when the number of requests exceeds the limit</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "TimeBasedTrigger":{
      "type":"structure",
      "members":{
        "idleSessionTimeout":{
          "shape":"Integer",
          "documentation":"<p>Idle session timeout (seconds) that triggers memory processing.</p>"
        }
      },
      "documentation":"<p>Trigger configuration based on time.</p>"
    },
    "TimeBasedTriggerInput":{
      "type":"structure",
      "members":{
        "idleSessionTimeout":{
          "shape":"TimeBasedTriggerInputIdleSessionTimeoutInteger",
          "documentation":"<p>Idle session timeout (seconds) that triggers memory processing.</p>"
        }
      },
      "documentation":"<p>Trigger configuration based on time.</p>"
    },
    "TimeBasedTriggerInputIdleSessionTimeoutInteger":{
      "type":"integer",
      "box":true,
      "max":3000,
      "min":10
    },
    "Timestamp":{"type":"timestamp"},
    "TokenAuthMethod":{
      "type":"string",
      "pattern":"(client_secret_post|client_secret_basic)"
    },
    "TokenBasedTrigger":{
      "type":"structure",
      "members":{
        "tokenCount":{
          "shape":"Integer",
          "documentation":"<p>Number of tokens that trigger memory processing.</p>"
        }
      },
      "documentation":"<p>Trigger configuration based on tokens.</p>"
    },
    "TokenBasedTriggerInput":{
      "type":"structure",
      "members":{
        "tokenCount":{
          "shape":"TokenBasedTriggerInputTokenCountInteger",
          "documentation":"<p>Number of tokens that trigger memory processing.</p>"
        }
      },
      "documentation":"<p>Trigger configuration based on tokens.</p>"
    },
    "TokenBasedTriggerInputTokenCountInteger":{
      "type":"integer",
      "box":true,
      "max":500000,
      "min":100
    },
    "TokenEndpointAuthMethodsType":{
      "type":"list",
      "member":{"shape":"TokenAuthMethod"},
      "max":2,
      "min":1
    },
    "TokenEndpointType":{"type":"string"},
    "TokenExchangeGrantTypeConfigType":{
      "type":"structure",
      "required":["actorTokenContent"],
      "members":{
        "actorTokenContent":{
          "shape":"ActorTokenContentType",
          "documentation":"<p>The content type for the actor token in the token exchange.</p>"
        },
        "actorTokenScopes":{
          "shape":"ScopesListType",
          "documentation":"<p>The scopes for the actor token. Only valid when actorTokenContent is M2M.</p>"
        }
      },
      "documentation":"<p>Configuration for RFC 8693 token exchange.</p>"
    },
    "TokenVaultIdType":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9\\-_]+"
    },
    "ToolDefinition":{
      "type":"structure",
      "required":[
        "name",
        "description",
        "inputSchema"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the tool. This name identifies the tool in the Model Context Protocol.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description of the tool. This description provides information about the purpose and usage of the tool.</p>"
        },
        "inputSchema":{
          "shape":"SchemaDefinition",
          "documentation":"<p>The input schema for the tool. This schema defines the structure of the input that the tool accepts.</p>"
        },
        "outputSchema":{
          "shape":"SchemaDefinition",
          "documentation":"<p>The output schema for the tool. This schema defines the structure of the output that the tool produces.</p>"
        }
      },
      "documentation":"<p>A tool definition for a gateway target. This structure defines a tool that the target exposes through the Model Context Protocol.</p>"
    },
    "ToolDefinitions":{
      "type":"list",
      "member":{"shape":"ToolDefinition"}
    },
    "ToolSchema":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"S3Configuration",
          "documentation":"<p>The Amazon S3 location of the tool schema. This location contains the schema definition file.</p>"
        },
        "inlinePayload":{
          "shape":"ToolDefinitions",
          "documentation":"<p>The inline payload of the tool schema. This payload contains the schema definition directly in the request.</p>"
        }
      },
      "documentation":"<p>A tool schema for a gateway target. This structure defines the schema for a tool that the target exposes through the Model Context Protocol.</p>",
      "union":true
    },
    "ToolSecretArn":{
      "type":"string",
      "pattern":"arn:aws(-[a-z-]+)?:secretsmanager:[a-z0-9-]+:[0-9]{12}:secret:[a-zA-Z0-9/_+=.@-]+"
    },
    "ToolsDefinition":{
      "type":"structure",
      "members":{
        "protocolVersion":{
          "shape":"SchemaVersion",
          "documentation":"<p>The protocol version of the tools definition based on the MCP protocol specification. If not specified, the version is auto-detected from the content.</p>"
        },
        "inlineContent":{
          "shape":"InlineContent",
          "documentation":"<p>The JSON content containing the MCP tools definition, conforming to the MCP protocol specification.</p>"
        }
      },
      "documentation":"<p>The tools definition for an MCP descriptor. Contains the protocol version and inline content describing the available tools.</p>"
    },
    "TopK":{
      "type":"integer",
      "box":true,
      "max":500,
      "min":0
    },
    "TopP":{
      "type":"float",
      "box":true,
      "max":1.0,
      "min":0.0
    },
    "TrafficSplitEntries":{
      "type":"list",
      "member":{"shape":"TrafficSplitEntry"},
      "max":2,
      "min":2
    },
    "TrafficSplitEntry":{
      "type":"structure",
      "required":[
        "name",
        "weight",
        "configurationBundle"
      ],
      "members":{
        "name":{
          "shape":"TrafficSplitEntryNameString",
          "documentation":"<p>The name of this traffic split variant.</p>"
        },
        "weight":{
          "shape":"TrafficSplitEntryWeightInteger",
          "documentation":"<p>The percentage of traffic to route to this variant. Weights across all entries must sum to 100.</p>"
        },
        "configurationBundle":{
          "shape":"ConfigurationBundleReference",
          "documentation":"<p>The configuration bundle reference for this variant.</p>"
        },
        "description":{
          "shape":"TrafficSplitEntryDescriptionString",
          "documentation":"<p>The description of this traffic split variant.</p>"
        },
        "metadata":{
          "shape":"TrafficSplitMetadataMap",
          "documentation":"<p>Key-value metadata associated with this traffic split variant.</p>"
        }
      },
      "documentation":"<p>An entry in a traffic split configuration, defining a named variant with a weight and configuration bundle reference.</p>"
    },
    "TrafficSplitEntryDescriptionString":{
      "type":"string",
      "max":200,
      "min":1
    },
    "TrafficSplitEntryNameString":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?"
    },
    "TrafficSplitEntryWeightInteger":{
      "type":"integer",
      "box":true,
      "max":99,
      "min":1
    },
    "TrafficSplitMetadataKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TrafficSplitMetadataMap":{
      "type":"map",
      "key":{"shape":"TrafficSplitMetadataKey"},
      "value":{"shape":"TrafficSplitMetadataValue"},
      "max":25,
      "min":0
    },
    "TrafficSplitMetadataValue":{
      "type":"string",
      "max":256,
      "min":1
    },
    "TriggerCondition":{
      "type":"structure",
      "members":{
        "messageBasedTrigger":{
          "shape":"MessageBasedTrigger",
          "documentation":"<p>Message based trigger configuration.</p>"
        },
        "tokenBasedTrigger":{
          "shape":"TokenBasedTrigger",
          "documentation":"<p>Token based trigger configuration.</p>"
        },
        "timeBasedTrigger":{
          "shape":"TimeBasedTrigger",
          "documentation":"<p>Time based trigger configuration.</p>"
        }
      },
      "documentation":"<p>Condition that triggers memory processing.</p>",
      "union":true
    },
    "TriggerConditionInput":{
      "type":"structure",
      "members":{
        "messageBasedTrigger":{
          "shape":"MessageBasedTriggerInput",
          "documentation":"<p>Message based trigger configuration.</p>"
        },
        "tokenBasedTrigger":{
          "shape":"TokenBasedTriggerInput",
          "documentation":"<p>Token based trigger configuration.</p>"
        },
        "timeBasedTrigger":{
          "shape":"TimeBasedTriggerInput",
          "documentation":"<p>Time based trigger configuration.</p>"
        }
      },
      "documentation":"<p>Condition that triggers memory processing.</p>",
      "union":true
    },
    "TriggerConditionInputList":{
      "type":"list",
      "member":{"shape":"TriggerConditionInput"},
      "min":1
    },
    "TriggerConditionsList":{
      "type":"list",
      "member":{"shape":"TriggerCondition"},
      "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":{}
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"TaggableResourcesArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource that you want to untag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>The tag keys of the tags to remove from the resource.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdateAgentRuntimeEndpointRequest":{
      "type":"structure",
      "required":[
        "agentRuntimeId",
        "endpointName"
      ],
      "members":{
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime associated with the endpoint.</p>",
          "location":"uri",
          "locationName":"agentRuntimeId"
        },
        "endpointName":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the AgentCore Runtime endpoint to update.</p>",
          "location":"uri",
          "locationName":"endpointName"
        },
        "agentRuntimeVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The updated version of the AgentCore Runtime for the endpoint.</p>"
        },
        "description":{
          "shape":"AgentEndpointDescription",
          "documentation":"<p>The updated description of the AgentCore Runtime endpoint.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateAgentRuntimeEndpointResponse":{
      "type":"structure",
      "required":[
        "agentRuntimeEndpointArn",
        "agentRuntimeArn",
        "status",
        "createdAt",
        "lastUpdatedAt"
      ],
      "members":{
        "liveVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The currently deployed version of the AgentCore Runtime on the endpoint.</p>"
        },
        "targetVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The target version of the AgentCore Runtime for the endpoint.</p>"
        },
        "agentRuntimeEndpointArn":{
          "shape":"AgentRuntimeEndpointArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the AgentCore Runtime endpoint.</p>"
        },
        "agentRuntimeArn":{
          "shape":"AgentRuntimeArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the AgentCore Runtime.</p>"
        },
        "status":{
          "shape":"AgentRuntimeEndpointStatus",
          "documentation":"<p>The current status of the updated AgentCore Runtime endpoint.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime endpoint was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime endpoint was last updated.</p>"
        }
      }
    },
    "UpdateAgentRuntimeRequest":{
      "type":"structure",
      "required":[
        "agentRuntimeId",
        "agentRuntimeArtifact",
        "roleArn",
        "networkConfiguration"
      ],
      "members":{
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the AgentCore Runtime to update.</p>",
          "location":"uri",
          "locationName":"agentRuntimeId"
        },
        "agentRuntimeArtifact":{
          "shape":"AgentRuntimeArtifact",
          "documentation":"<p>The updated artifact of the AgentCore Runtime.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The updated IAM role ARN that provides permissions for the AgentCore Runtime.</p>"
        },
        "networkConfiguration":{
          "shape":"NetworkConfiguration",
          "documentation":"<p>The updated network configuration for the AgentCore Runtime.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the AgentCore Runtime.</p>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The updated authorizer configuration for the AgentCore Runtime.</p>"
        },
        "requestHeaderConfiguration":{
          "shape":"RequestHeaderConfiguration",
          "documentation":"<p>The updated configuration for HTTP request headers that will be passed through to the runtime.</p>"
        },
        "protocolConfiguration":{"shape":"ProtocolConfiguration"},
        "lifecycleConfiguration":{
          "shape":"LifecycleConfiguration",
          "documentation":"<p>The updated life cycle configuration for the AgentCore Runtime.</p>"
        },
        "metadataConfiguration":{
          "shape":"RuntimeMetadataConfiguration",
          "documentation":"<p>The updated configuration for microVM Metadata Service (MMDS) settings for the AgentCore Runtime.</p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariablesMap",
          "documentation":"<p>Updated environment variables to set in the AgentCore Runtime environment.</p>"
        },
        "filesystemConfigurations":{
          "shape":"FilesystemConfigurations",
          "documentation":"<p>The updated filesystem configurations to mount into the AgentCore Runtime.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateAgentRuntimeResponse":{
      "type":"structure",
      "required":[
        "agentRuntimeArn",
        "agentRuntimeId",
        "agentRuntimeVersion",
        "createdAt",
        "lastUpdatedAt",
        "status"
      ],
      "members":{
        "agentRuntimeArn":{
          "shape":"AgentRuntimeArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated AgentCore Runtime.</p>"
        },
        "agentRuntimeId":{
          "shape":"AgentRuntimeId",
          "documentation":"<p>The unique identifier of the updated AgentCore Runtime.</p>"
        },
        "workloadIdentityDetails":{
          "shape":"WorkloadIdentityDetails",
          "documentation":"<p>The workload identity details for the updated AgentCore Runtime.</p>"
        },
        "agentRuntimeVersion":{
          "shape":"AgentRuntimeVersion",
          "documentation":"<p>The version of the updated AgentCore Runtime.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime was created.</p>"
        },
        "lastUpdatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the AgentCore Runtime was last updated.</p>"
        },
        "status":{
          "shape":"AgentRuntimeStatus",
          "documentation":"<p>The current status of the updated AgentCore Runtime.</p>"
        }
      }
    },
    "UpdateApiKeyCredentialProviderRequest":{
      "type":"structure",
      "required":[
        "name",
        "apiKey"
      ],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the API key credential provider to update.</p>"
        },
        "apiKey":{
          "shape":"ApiKeyType",
          "documentation":"<p>The new API key to use for authentication. This value replaces the existing API key and is encrypted and stored securely.</p>"
        }
      }
    },
    "UpdateApiKeyCredentialProviderResponse":{
      "type":"structure",
      "required":[
        "apiKeySecretArn",
        "name",
        "credentialProviderArn",
        "createdTime",
        "lastUpdatedTime"
      ],
      "members":{
        "apiKeySecretArn":{
          "shape":"Secret",
          "documentation":"<p>The Amazon Resource Name (ARN) of the API key secret in AWS Secrets Manager.</p>"
        },
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the API key credential provider.</p>"
        },
        "credentialProviderArn":{
          "shape":"ApiKeyCredentialProviderArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the API key credential provider.</p>"
        },
        "createdTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the API key credential provider was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the API key credential provider was last updated.</p>"
        }
      }
    },
    "UpdateConfigurationBundleRequest":{
      "type":"structure",
      "required":["bundleId"],
      "members":{
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the configuration bundle to update.</p>",
          "location":"uri",
          "locationName":"bundleId"
        },
        "bundleName":{
          "shape":"ConfigurationBundleName",
          "documentation":"<p>The updated name for the configuration bundle.</p>"
        },
        "description":{
          "shape":"ConfigurationBundleDescription",
          "documentation":"<p>The updated description for the configuration bundle.</p>"
        },
        "components":{
          "shape":"ComponentConfigurationMap",
          "documentation":"<p>The updated component configurations. Creates a new version of the bundle.</p>"
        },
        "parentVersionIds":{
          "shape":"ConfigurationBundleVersionList",
          "documentation":"<p>A list of parent version identifiers for lineage tracking. Regular commits have a single parent. Merge commits have two parents: the target branch parent and the source branch parent. If the branch already exists, the first parent must be the latest version on that branch.</p>"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p>The branch name for this version. If not specified, inherits the parent's branch or defaults to <code>mainline</code>.</p>"
        },
        "commitMessage":{
          "shape":"UpdateConfigurationBundleRequestCommitMessageString",
          "documentation":"<p>A commit message describing the changes in this version.</p>"
        },
        "createdBy":{
          "shape":"VersionCreatedBySource",
          "documentation":"<p>The source that created this version, including the source name and optional ARN.</p>"
        }
      }
    },
    "UpdateConfigurationBundleRequestCommitMessageString":{
      "type":"string",
      "max":500,
      "min":1
    },
    "UpdateConfigurationBundleResponse":{
      "type":"structure",
      "required":[
        "bundleArn",
        "bundleId",
        "versionId",
        "updatedAt"
      ],
      "members":{
        "bundleArn":{
          "shape":"ConfigurationBundleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated configuration bundle.</p>"
        },
        "bundleId":{
          "shape":"ConfigurationBundleId",
          "documentation":"<p>The unique identifier of the updated configuration bundle.</p>"
        },
        "versionId":{
          "shape":"ConfigurationBundleVersion",
          "documentation":"<p>The new version identifier created by this update.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the configuration bundle was updated.</p>"
        }
      }
    },
    "UpdateEvaluatorRequest":{
      "type":"structure",
      "required":["evaluatorId"],
      "members":{
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the evaluator to update. </p>",
          "location":"uri",
          "locationName":"evaluatorId"
        },
        "description":{
          "shape":"EvaluatorDescription",
          "documentation":"<p> The updated description of the evaluator. </p>"
        },
        "evaluatorConfig":{
          "shape":"EvaluatorConfig",
          "documentation":"<p> The updated configuration for the evaluator. Specify either LLM-as-a-Judge settings with instructions, rating scale, and model configuration, or code-based settings with a customer-managed Lambda function. </p>"
        },
        "level":{
          "shape":"EvaluatorLevel",
          "documentation":"<p> The updated evaluation level (<code>TOOL_CALL</code>, <code>TRACE</code>, or <code>SESSION</code>) that determines the scope of evaluation. </p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of a customer managed KMS key to use for encrypting sensitive evaluator data. Specify a new key ARN to rotate the encryption key, or specify a key ARN to add encryption to an evaluator that was previously created without one. When you rotate to a new key, the service decrypts the existing data with the old key and re-encrypts it with the new key. Only symmetric encryption KMS keys are supported. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/evaluations-encryption.html\">Encryption at rest for AgentCore Evaluations</a>. </p>"
        }
      }
    },
    "UpdateEvaluatorResponse":{
      "type":"structure",
      "required":[
        "evaluatorArn",
        "evaluatorId",
        "updatedAt",
        "status"
      ],
      "members":{
        "evaluatorArn":{
          "shape":"EvaluatorArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the updated evaluator. </p>"
        },
        "evaluatorId":{
          "shape":"EvaluatorId",
          "documentation":"<p> The unique identifier of the updated evaluator. </p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the evaluator was last updated. </p>"
        },
        "status":{
          "shape":"EvaluatorStatus",
          "documentation":"<p> The status of the evaluator update operation. </p>"
        }
      }
    },
    "UpdateGatewayRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "name",
        "roleArn",
        "authorizerType"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway to update.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "name":{
          "shape":"GatewayName",
          "documentation":"<p>The name of the gateway. This name must be the same as the one when the gateway was created.</p>"
        },
        "description":{
          "shape":"GatewayDescription",
          "documentation":"<p>The updated description for the gateway.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The updated IAM role ARN that provides permissions for the gateway.</p>"
        },
        "protocolType":{
          "shape":"GatewayProtocolType",
          "documentation":"<p>The updated protocol type for the gateway.</p>"
        },
        "protocolConfiguration":{"shape":"GatewayProtocolConfiguration"},
        "authorizerType":{
          "shape":"AuthorizerType",
          "documentation":"<p>The updated authorizer type for the gateway.</p>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The updated authorizer configuration for the gateway.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The updated ARN of the KMS key used to encrypt the gateway.</p>"
        },
        "interceptorConfigurations":{
          "shape":"GatewayInterceptorConfigurations",
          "documentation":"<p>The updated interceptor configurations for the gateway.</p>"
        },
        "policyEngineConfiguration":{
          "shape":"GatewayPolicyEngineConfiguration",
          "documentation":"<p>The updated policy engine configuration for the gateway. A policy engine is a collection of policies that evaluates and authorizes agent tool calls. When associated with a gateway, the policy engine intercepts all agent requests and determines whether to allow or deny each action based on the defined policies.</p>"
        },
        "exceptionLevel":{
          "shape":"ExceptionLevel",
          "documentation":"<p>The level of detail in error messages returned when invoking the gateway.</p> <ul> <li> <p>If the value is <code>DEBUG</code>, granular exception messages are returned to help a user debug the gateway.</p> </li> <li> <p>If the value is omitted, a generic error message is returned to the end user.</p> </li> </ul>"
        }
      }
    },
    "UpdateGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayArn",
        "gatewayId",
        "createdAt",
        "updatedAt",
        "status",
        "name",
        "authorizerType"
      ],
      "members":{
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated gateway.</p>"
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the updated gateway.</p>"
        },
        "gatewayUrl":{
          "shape":"GatewayUrl",
          "documentation":"<p>An endpoint for invoking the updated gateway.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway was last updated.</p>"
        },
        "status":{
          "shape":"GatewayStatus",
          "documentation":"<p>The current status of the updated gateway.</p>"
        },
        "statusReasons":{
          "shape":"StatusReasons",
          "documentation":"<p>The reasons for the current status of the updated gateway.</p>"
        },
        "name":{
          "shape":"GatewayName",
          "documentation":"<p>The name of the gateway.</p>"
        },
        "description":{
          "shape":"GatewayDescription",
          "documentation":"<p>The updated description of the gateway.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The updated IAM role ARN that provides permissions for the gateway.</p>"
        },
        "protocolType":{
          "shape":"GatewayProtocolType",
          "documentation":"<p>The updated protocol type for the gateway.</p>"
        },
        "protocolConfiguration":{"shape":"GatewayProtocolConfiguration"},
        "authorizerType":{
          "shape":"AuthorizerType",
          "documentation":"<p>The updated authorizer type for the gateway.</p>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The updated authorizer configuration for the gateway.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The updated ARN of the KMS key used to encrypt the gateway.</p>"
        },
        "interceptorConfigurations":{
          "shape":"GatewayInterceptorConfigurations",
          "documentation":"<p>The updated interceptor configurations for the gateway.</p>"
        },
        "policyEngineConfiguration":{
          "shape":"GatewayPolicyEngineConfiguration",
          "documentation":"<p>The updated policy engine configuration for the gateway.</p>"
        },
        "workloadIdentityDetails":{
          "shape":"WorkloadIdentityDetails",
          "documentation":"<p>The workload identity details for the updated gateway.</p>"
        },
        "exceptionLevel":{
          "shape":"ExceptionLevel",
          "documentation":"<p>The level of detail in error messages returned when invoking the gateway.</p> <ul> <li> <p>If the value is <code>DEBUG</code>, granular exception messages are returned to help a user debug the gateway.</p> </li> <li> <p>If the value is omitted, a generic error message is returned to the end user.</p> </li> </ul>"
        }
      }
    },
    "UpdateGatewayRuleRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "ruleId"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The identifier of the gateway containing the rule.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "ruleId":{
          "shape":"GatewayRuleId",
          "documentation":"<p>The unique identifier of the rule to update.</p>",
          "location":"uri",
          "locationName":"ruleId"
        },
        "priority":{
          "shape":"GatewayRulePriority",
          "documentation":"<p>The updated priority of the rule.</p>"
        },
        "conditions":{
          "shape":"Conditions",
          "documentation":"<p>The updated conditions for the rule.</p>"
        },
        "actions":{
          "shape":"Actions",
          "documentation":"<p>The updated actions for the rule.</p>"
        },
        "description":{
          "shape":"GatewayRuleDescription",
          "documentation":"<p>The updated description of the rule.</p>"
        }
      }
    },
    "UpdateGatewayRuleResponse":{
      "type":"structure",
      "required":[
        "ruleId",
        "gatewayArn",
        "priority",
        "actions",
        "createdAt",
        "status"
      ],
      "members":{
        "ruleId":{
          "shape":"GatewayRuleId",
          "documentation":"<p>The unique identifier of the gateway rule.</p>"
        },
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway that the rule belongs to.</p>"
        },
        "priority":{
          "shape":"GatewayRulePriority",
          "documentation":"<p>The priority of the rule. Rules are evaluated in order of priority, with lower numbers evaluated first.</p>"
        },
        "conditions":{
          "shape":"Conditions",
          "documentation":"<p>The conditions that must be met for the rule to apply.</p>"
        },
        "actions":{
          "shape":"Actions",
          "documentation":"<p>The actions to take when the rule conditions are met.</p>"
        },
        "description":{
          "shape":"GatewayRuleDescription",
          "documentation":"<p>The description of the gateway rule.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the rule was created.</p>"
        },
        "status":{
          "shape":"GatewayRuleStatus",
          "documentation":"<p>The current status of the rule.</p>"
        },
        "system":{
          "shape":"SystemManagedBlock",
          "documentation":"<p>System-managed metadata for rules created by automated processes.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the rule was last updated.</p>"
        }
      },
      "documentation":"<p>Create response excludes updatedAt (redundant on create). Get/Update responses include it via their own output structures.</p>"
    },
    "UpdateGatewayTargetRequest":{
      "type":"structure",
      "required":[
        "gatewayIdentifier",
        "targetId",
        "name",
        "targetConfiguration"
      ],
      "members":{
        "gatewayIdentifier":{
          "shape":"GatewayIdentifier",
          "documentation":"<p>The unique identifier of the gateway associated with the target.</p>",
          "location":"uri",
          "locationName":"gatewayIdentifier"
        },
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The unique identifier of the gateway target to update.</p>",
          "location":"uri",
          "locationName":"targetId"
        },
        "name":{
          "shape":"TargetName",
          "documentation":"<p>The updated name for the gateway target.</p>"
        },
        "description":{
          "shape":"TargetDescription",
          "documentation":"<p>The updated description for the gateway target.</p>"
        },
        "targetConfiguration":{"shape":"TargetConfiguration"},
        "credentialProviderConfigurations":{
          "shape":"CredentialProviderConfigurations",
          "documentation":"<p>The updated credential provider configurations for the gateway target.</p>"
        },
        "metadataConfiguration":{
          "shape":"MetadataConfiguration",
          "documentation":"<p>Configuration for HTTP header and query parameter propagation to the gateway target.</p>"
        },
        "privateEndpoint":{
          "shape":"PrivateEndpoint",
          "documentation":"<p>The private endpoint configuration for the gateway target. Use this to connect the gateway to private resources in your VPC.</p>"
        }
      }
    },
    "UpdateGatewayTargetResponse":{
      "type":"structure",
      "required":[
        "gatewayArn",
        "targetId",
        "createdAt",
        "updatedAt",
        "status",
        "name",
        "targetConfiguration",
        "credentialProviderConfigurations"
      ],
      "members":{
        "gatewayArn":{
          "shape":"GatewayArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the gateway.</p>"
        },
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The unique identifier of the updated gateway target.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway target was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the gateway target was last updated.</p>"
        },
        "status":{
          "shape":"TargetStatus",
          "documentation":"<p>The current status of the updated gateway target.</p>"
        },
        "statusReasons":{
          "shape":"StatusReasons",
          "documentation":"<p>The reasons for the current status of the updated gateway target.</p>"
        },
        "name":{
          "shape":"TargetName",
          "documentation":"<p>The updated name of the gateway target.</p>"
        },
        "description":{
          "shape":"TargetDescription",
          "documentation":"<p>The updated description of the gateway target.</p>"
        },
        "targetConfiguration":{"shape":"TargetConfiguration"},
        "credentialProviderConfigurations":{
          "shape":"CredentialProviderConfigurations",
          "documentation":"<p>The updated credential provider configurations for the gateway target.</p>"
        },
        "lastSynchronizedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The date and time at which the targets were last synchronized.</p>"
        },
        "metadataConfiguration":{
          "shape":"MetadataConfiguration",
          "documentation":"<p>The metadata configuration that was applied to the gateway target.</p>"
        },
        "privateEndpoint":{
          "shape":"PrivateEndpoint",
          "documentation":"<p>The private endpoint configuration for the gateway target.</p>"
        },
        "privateEndpointManagedResources":{
          "shape":"PrivateEndpointManagedResources",
          "documentation":"<p>The managed resources created by the gateway for private endpoint connectivity.</p>"
        },
        "authorizationData":{
          "shape":"AuthorizationData",
          "documentation":"<p>OAuth2 authorization data for the updated gateway target. This data is returned when a target is configured with a credential provider with authorization code grant type and requires user federation.</p>"
        },
        "protocolType":{
          "shape":"TargetProtocolType",
          "documentation":"<p>The protocol type of the updated gateway target.</p>"
        }
      }
    },
    "UpdateHarnessRequest":{
      "type":"structure",
      "required":["harnessId"],
      "members":{
        "harnessId":{
          "shape":"HarnessId",
          "documentation":"<p>The ID of the harness to update.</p>",
          "location":"uri",
          "locationName":"harnessId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        },
        "executionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The ARN of the IAM role that the harness assumes when running. If not specified, the existing value is retained.</p>"
        },
        "environment":{
          "shape":"HarnessEnvironmentProviderRequest",
          "documentation":"<p>The compute environment configuration for the harness. If not specified, the existing value is retained.</p>"
        },
        "environmentArtifact":{
          "shape":"UpdatedHarnessEnvironmentArtifact",
          "documentation":"<p>The environment artifact for the harness. Use the optionalValue wrapper to set a new value, or set it to null to clear the existing configuration.</p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariablesMap",
          "documentation":"<p>Environment variables to set in the harness runtime environment. If specified, this replaces all existing environment variables. If not specified, the existing value is retained.</p>"
        },
        "authorizerConfiguration":{"shape":"UpdatedAuthorizerConfiguration"},
        "model":{
          "shape":"HarnessModelConfiguration",
          "documentation":"<p>The model configuration for the harness. If not specified, the existing value is retained.</p>"
        },
        "systemPrompt":{
          "shape":"HarnessSystemPrompt",
          "documentation":"<p>The system prompt that defines the agent's behavior. If not specified, the existing value is retained.</p>"
        },
        "tools":{
          "shape":"HarnessTools",
          "documentation":"<p>The tools available to the agent. If specified, this replaces all existing tools. If not specified, the existing value is retained.</p>"
        },
        "skills":{
          "shape":"HarnessSkills",
          "documentation":"<p>The skills available to the agent. If specified, this replaces all existing skills. If not specified, the existing value is retained.</p>"
        },
        "allowedTools":{
          "shape":"HarnessAllowedTools",
          "documentation":"<p>The tools that the agent is allowed to use. If specified, this replaces all existing allowed tools. If not specified, the existing value is retained.</p>"
        },
        "memory":{
          "shape":"UpdatedHarnessMemoryConfiguration",
          "documentation":"<p>The AgentCore Memory configuration. Use the optionalValue wrapper to set a new value, or set it to null to clear the existing configuration.</p>"
        },
        "truncation":{
          "shape":"HarnessTruncationConfiguration",
          "documentation":"<p>The truncation configuration for managing conversation context. If not specified, the existing value is retained.</p>"
        },
        "maxIterations":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of iterations the agent loop can execute per invocation. If not specified, the existing value is retained.</p>"
        },
        "maxTokens":{
          "shape":"Integer",
          "documentation":"<p>The maximum total number of output tokens the agent can generate across all model calls within a single invocation. If not specified, the existing value is retained.</p>"
        },
        "timeoutSeconds":{
          "shape":"Integer",
          "documentation":"<p>The maximum duration in seconds for the agent loop execution per invocation. If not specified, the existing value is retained.</p>"
        }
      }
    },
    "UpdateHarnessResponse":{
      "type":"structure",
      "required":["harness"],
      "members":{
        "harness":{
          "shape":"Harness",
          "documentation":"<p>The updated harness.</p>"
        }
      }
    },
    "UpdateMemoryInput":{
      "type":"structure",
      "required":["memoryId"],
      "members":{
        "clientToken":{
          "shape":"UpdateMemoryInputClientTokenString",
          "documentation":"<p>A client token is used for keeping track of idempotent requests. It can contain a session id which can be around 250 chars, combined with a unique AWS identifier.</p>",
          "idempotencyToken":true
        },
        "memoryId":{
          "shape":"MemoryId",
          "documentation":"<p>The unique identifier of the memory to update.</p>",
          "location":"uri",
          "locationName":"memoryId"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the AgentCore Memory resource.</p>"
        },
        "eventExpiryDuration":{
          "shape":"UpdateMemoryInputEventExpiryDurationInteger",
          "documentation":"<p>The number of days after which memory events will expire, between 7 and 365 days.</p>"
        },
        "memoryExecutionRoleArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the IAM role that provides permissions for the AgentCore Memory resource.</p>"
        },
        "memoryStrategies":{
          "shape":"ModifyMemoryStrategies",
          "documentation":"<p>The memory strategies to add, modify, or delete.</p>"
        },
        "addIndexedKeys":{
          "shape":"IndexedKeysList",
          "documentation":"<p>Additional metadata keys to index. Previously indexed keys cannot be removed.</p>"
        },
        "streamDeliveryResources":{
          "shape":"StreamDeliveryResources",
          "documentation":"<p>Configuration for streaming memory record data to external resources.</p>"
        }
      }
    },
    "UpdateMemoryInputClientTokenString":{
      "type":"string",
      "max":500,
      "min":0
    },
    "UpdateMemoryInputEventExpiryDurationInteger":{
      "type":"integer",
      "box":true,
      "max":365,
      "min":3
    },
    "UpdateMemoryOutput":{
      "type":"structure",
      "members":{
        "memory":{
          "shape":"Memory",
          "documentation":"<p>The updated AgentCore Memory resource details.</p>"
        }
      }
    },
    "UpdateOauth2CredentialProviderRequest":{
      "type":"structure",
      "required":[
        "name",
        "credentialProviderVendor",
        "oauth2ProviderConfigInput"
      ],
      "members":{
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the OAuth2 credential provider to update.</p>"
        },
        "credentialProviderVendor":{
          "shape":"CredentialProviderVendorType",
          "documentation":"<p>The vendor of the OAuth2 credential provider.</p>"
        },
        "oauth2ProviderConfigInput":{
          "shape":"Oauth2ProviderConfigInput",
          "documentation":"<p>The configuration input for the OAuth2 provider.</p>"
        }
      }
    },
    "UpdateOauth2CredentialProviderResponse":{
      "type":"structure",
      "required":[
        "clientSecretArn",
        "name",
        "credentialProviderVendor",
        "credentialProviderArn",
        "oauth2ProviderConfigOutput",
        "createdTime",
        "lastUpdatedTime"
      ],
      "members":{
        "clientSecretArn":{
          "shape":"Secret",
          "documentation":"<p>The Amazon Resource Name (ARN) of the client secret in AWS Secrets Manager.</p>"
        },
        "name":{
          "shape":"CredentialProviderName",
          "documentation":"<p>The name of the OAuth2 credential provider.</p>"
        },
        "credentialProviderVendor":{
          "shape":"CredentialProviderVendorType",
          "documentation":"<p>The vendor of the OAuth2 credential provider.</p>"
        },
        "credentialProviderArn":{
          "shape":"CredentialProviderArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the OAuth2 credential provider.</p>"
        },
        "callbackUrl":{
          "shape":"String",
          "documentation":"<p>Callback URL to register on the OAuth2 credential provider as an allowed callback URL. This URL is where the OAuth2 authorization server redirects users after they complete the authorization flow.</p>"
        },
        "oauth2ProviderConfigOutput":{
          "shape":"Oauth2ProviderConfigOutput",
          "documentation":"<p>The configuration output for the OAuth2 provider.</p>"
        },
        "createdTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the OAuth2 credential provider was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the OAuth2 credential provider was last updated.</p>"
        },
        "status":{
          "shape":"Status",
          "documentation":"<p>The current status of the OAuth2 credential provider.</p>"
        }
      }
    },
    "UpdateOnlineEvaluationConfigRequest":{
      "type":"structure",
      "required":["onlineEvaluationConfigId"],
      "members":{
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        },
        "onlineEvaluationConfigId":{
          "shape":"OnlineEvaluationConfigId",
          "documentation":"<p> The unique identifier of the online evaluation configuration to update. </p>",
          "location":"uri",
          "locationName":"onlineEvaluationConfigId"
        },
        "description":{
          "shape":"EvaluationConfigDescription",
          "documentation":"<p> The updated description of the online evaluation configuration. </p>"
        },
        "rule":{
          "shape":"Rule",
          "documentation":"<p> The updated evaluation rule containing sampling configuration, filters, and session settings. </p>"
        },
        "dataSourceConfig":{
          "shape":"DataSourceConfig",
          "documentation":"<p> The updated data source configuration specifying CloudWatch log groups and service names to monitor. </p>"
        },
        "evaluators":{
          "shape":"EvaluatorList",
          "documentation":"<p> The updated list of evaluators to apply during online evaluation. </p>"
        },
        "evaluationExecutionRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p> The updated Amazon Resource Name (ARN) of the IAM role used for evaluation execution. </p>"
        },
        "executionStatus":{
          "shape":"OnlineEvaluationExecutionStatus",
          "documentation":"<p> The updated execution status to enable or disable the online evaluation. </p>"
        }
      }
    },
    "UpdateOnlineEvaluationConfigResponse":{
      "type":"structure",
      "required":[
        "onlineEvaluationConfigArn",
        "onlineEvaluationConfigId",
        "updatedAt",
        "status",
        "executionStatus"
      ],
      "members":{
        "onlineEvaluationConfigArn":{
          "shape":"OnlineEvaluationConfigArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the updated online evaluation configuration. </p>"
        },
        "onlineEvaluationConfigId":{
          "shape":"OnlineEvaluationConfigId",
          "documentation":"<p> The unique identifier of the updated online evaluation configuration. </p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p> The timestamp when the online evaluation configuration was last updated. </p>"
        },
        "status":{
          "shape":"OnlineEvaluationConfigStatus",
          "documentation":"<p> The status of the online evaluation configuration. </p>"
        },
        "executionStatus":{
          "shape":"OnlineEvaluationExecutionStatus",
          "documentation":"<p> The execution status indicating whether the online evaluation is currently running. </p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p> The reason for failure if the online evaluation configuration update or execution failed. </p>"
        }
      }
    },
    "UpdatePolicyEngineRequest":{
      "type":"structure",
      "required":["policyEngineId"],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy engine to be updated.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        },
        "description":{
          "shape":"UpdatedDescription",
          "documentation":"<p>The new description for the policy engine.</p>"
        }
      }
    },
    "UpdatePolicyEngineResponse":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "name",
        "createdAt",
        "updatedAt",
        "policyEngineArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the updated policy engine.</p>"
        },
        "name":{
          "shape":"PolicyEngineName",
          "documentation":"<p>The name of the updated policy engine.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the policy engine.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The original creation timestamp of the policy engine.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy engine was last updated.</p>"
        },
        "policyEngineArn":{
          "shape":"PolicyEngineArn",
          "documentation":"<p>The ARN of the updated policy engine.</p>"
        },
        "status":{
          "shape":"PolicyEngineStatus",
          "documentation":"<p>The current status of the updated policy engine.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the update status.</p>"
        },
        "encryptionKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the policy engine data.</p>"
        }
      }
    },
    "UpdatePolicyRequest":{
      "type":"structure",
      "required":[
        "policyEngineId",
        "policyId"
      ],
      "members":{
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine that manages the policy to be updated. This ensures the policy is updated within the correct policy engine context.</p>",
          "location":"uri",
          "locationName":"policyEngineId"
        },
        "policyId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the policy to be updated. This must be a valid policy ID that exists within the specified policy engine.</p>",
          "location":"uri",
          "locationName":"policyId"
        },
        "description":{
          "shape":"UpdatedDescription",
          "documentation":"<p>The new human-readable description for the policy. This optional field allows updating the policy's documentation while keeping the same policy logic.</p>"
        },
        "definition":{
          "shape":"PolicyDefinition",
          "documentation":"<p>The new Cedar policy statement that defines the access control rules. This replaces the existing policy definition with new logic while maintaining the policy's identity.</p>"
        },
        "validationMode":{
          "shape":"PolicyValidationMode",
          "documentation":"<p>The validation mode for the policy update. Determines how Cedar analyzer validation results are handled during policy updates. FAIL_ON_ANY_FINDINGS runs the Cedar analyzer and fails the update if validation issues are detected, ensuring the policy conforms to the Cedar schema and tool context. IGNORE_ALL_FINDINGS runs the Cedar analyzer but allows updates despite validation warnings. Use FAIL_ON_ANY_FINDINGS to ensure policy correctness during updates, especially when modifying policy logic or conditions.</p>"
        }
      }
    },
    "UpdatePolicyResponse":{
      "type":"structure",
      "required":[
        "policyId",
        "name",
        "policyEngineId",
        "definition",
        "createdAt",
        "updatedAt",
        "policyArn",
        "status",
        "statusReasons"
      ],
      "members":{
        "policyId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the updated policy.</p>"
        },
        "name":{
          "shape":"PolicyName",
          "documentation":"<p>The name of the updated policy.</p>"
        },
        "policyEngineId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier of the policy engine managing the updated policy.</p>"
        },
        "definition":{
          "shape":"PolicyDefinition",
          "documentation":"<p>The updated Cedar policy statement.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the policy.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The original creation timestamp of the policy.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the policy was last updated.</p>"
        },
        "policyArn":{
          "shape":"PolicyArn",
          "documentation":"<p>The ARN of the updated policy.</p>"
        },
        "status":{
          "shape":"PolicyStatus",
          "documentation":"<p>The current status of the updated policy.</p>"
        },
        "statusReasons":{
          "shape":"PolicyStatusReasons",
          "documentation":"<p>Additional information about the update status.</p>"
        }
      }
    },
    "UpdateRegistryRecordRequest":{
      "type":"structure",
      "required":[
        "registryId",
        "recordId"
      ],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry containing the record. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        },
        "recordId":{
          "shape":"RecordIdentifier",
          "documentation":"<p>The identifier of the registry record to update. You can specify either the Amazon Resource Name (ARN) or the ID of the record.</p>",
          "location":"uri",
          "locationName":"recordId"
        },
        "name":{
          "shape":"RegistryRecordName",
          "documentation":"<p>The updated name for the registry record.</p>"
        },
        "description":{
          "shape":"UpdatedDescription",
          "documentation":"<p>The updated description for the registry record. To clear the description, include the <code>UpdatedDescription</code> wrapper with <code>optionalValue</code> not specified.</p>"
        },
        "descriptorType":{
          "shape":"DescriptorType",
          "documentation":"<p>The updated descriptor type for the registry record. Changing the descriptor type may require updating the <code>descriptors</code> field to match the new type's schema requirements.</p>"
        },
        "descriptors":{
          "shape":"UpdatedDescriptors",
          "documentation":"<p>The updated descriptor-type-specific configuration containing the resource schema and metadata. Uses PATCH semantics where individual descriptor fields can be updated independently.</p>"
        },
        "recordVersion":{
          "shape":"RegistryRecordVersion",
          "documentation":"<p>The version of the registry record for optimistic locking. If provided, it must match the current version of the record. The service automatically increments the version after a successful update.</p>"
        },
        "synchronizationType":{
          "shape":"UpdatedSynchronizationType",
          "documentation":"<p>The updated synchronization type for the registry record.</p>"
        },
        "synchronizationConfiguration":{
          "shape":"UpdatedSynchronizationConfiguration",
          "documentation":"<p>The updated synchronization configuration for the registry record.</p>"
        },
        "triggerSynchronization":{
          "shape":"Boolean",
          "documentation":"<p>Whether to trigger synchronization using the stored or provided configuration. When set to <code>true</code>, the service will synchronize the record metadata from the configured external source.</p>"
        }
      }
    },
    "UpdateRegistryRecordResponse":{
      "type":"structure",
      "required":[
        "registryArn",
        "recordArn",
        "recordId",
        "name",
        "descriptorType",
        "descriptors",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the registry that contains the updated record.</p>"
        },
        "recordArn":{
          "shape":"RegistryRecordArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated registry record.</p>"
        },
        "recordId":{
          "shape":"RegistryRecordId",
          "documentation":"<p>The unique identifier of the updated registry record.</p>"
        },
        "name":{
          "shape":"RegistryRecordName",
          "documentation":"<p>The name of the updated registry record.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the updated registry record.</p>"
        },
        "descriptorType":{
          "shape":"DescriptorType",
          "documentation":"<p>The descriptor type of the updated registry record. Possible values are <code>MCP</code>, <code>A2A</code>, <code>CUSTOM</code>, and <code>AGENT_SKILLS</code>.</p>"
        },
        "descriptors":{
          "shape":"Descriptors",
          "documentation":"<p>The descriptor-type-specific configuration of the updated registry record. For details, see the <code>Descriptors</code> data type.</p>"
        },
        "recordVersion":{
          "shape":"RegistryRecordVersion",
          "documentation":"<p>The version of the updated registry record.</p>"
        },
        "status":{
          "shape":"RegistryRecordStatus",
          "documentation":"<p>The current status of the updated registry record. Possible values include <code>CREATING</code>, <code>DRAFT</code>, <code>APPROVED</code>, <code>PENDING_APPROVAL</code>, <code>REJECTED</code>, <code>DEPRECATED</code>, <code>UPDATING</code>, <code>CREATE_FAILED</code>, and <code>UPDATE_FAILED</code>.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry record was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry record was last updated.</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>The reason for the current status of the updated registry record.</p>"
        },
        "synchronizationType":{
          "shape":"SynchronizationType",
          "documentation":"<p>The synchronization type of the updated registry record.</p>"
        },
        "synchronizationConfiguration":{
          "shape":"SynchronizationConfiguration",
          "documentation":"<p>The synchronization configuration of the updated registry record.</p>"
        }
      }
    },
    "UpdateRegistryRecordStatusRequest":{
      "type":"structure",
      "required":[
        "registryId",
        "recordId",
        "status",
        "statusReason"
      ],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry containing the record. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        },
        "recordId":{
          "shape":"RecordIdentifier",
          "documentation":"<p>The identifier of the registry record to update the status for. You can specify either the Amazon Resource Name (ARN) or the ID of the record.</p>",
          "location":"uri",
          "locationName":"recordId"
        },
        "status":{
          "shape":"RegistryRecordStatus",
          "documentation":"<p>The target status for the registry record.</p>"
        },
        "statusReason":{
          "shape":"UpdateRegistryRecordStatusRequestStatusReasonString",
          "documentation":"<p>The reason for the status change, such as why the record was approved or rejected.</p>"
        }
      }
    },
    "UpdateRegistryRecordStatusRequestStatusReasonString":{
      "type":"string",
      "max":255,
      "min":0
    },
    "UpdateRegistryRecordStatusResponse":{
      "type":"structure",
      "required":[
        "registryArn",
        "recordArn",
        "recordId",
        "status",
        "statusReason",
        "updatedAt"
      ],
      "members":{
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the registry that contains the record.</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>"
        },
        "status":{
          "shape":"RegistryRecordStatus",
          "documentation":"<p>The resulting status of the registry record.</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>The reason for the status change.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the record was last updated.</p>"
        }
      }
    },
    "UpdateRegistryRequest":{
      "type":"structure",
      "required":["registryId"],
      "members":{
        "registryId":{
          "shape":"RegistryIdentifier",
          "documentation":"<p>The identifier of the registry to update. You can specify either the Amazon Resource Name (ARN) or the ID of the registry.</p>",
          "location":"uri",
          "locationName":"registryId"
        },
        "name":{
          "shape":"RegistryName",
          "documentation":"<p>The updated name of the registry.</p>"
        },
        "description":{
          "shape":"UpdatedDescription",
          "documentation":"<p>The updated description of the registry. To clear the description, include the <code>UpdatedDescription</code> wrapper with <code>optionalValue</code> not specified.</p>"
        },
        "authorizerConfiguration":{
          "shape":"UpdatedAuthorizerConfiguration",
          "documentation":"<p>The updated authorizer configuration for the registry. Changing the authorizer configuration can break existing consumers of the registry who are using the authorization type prior to the update.</p>"
        },
        "approvalConfiguration":{
          "shape":"UpdatedApprovalConfiguration",
          "documentation":"<p>The updated approval configuration for registry records. The updated configuration only affects new records that move to <code>PENDING_APPROVAL</code> status after the change. Existing records already in <code>PENDING_APPROVAL</code> status are not affected.</p>"
        }
      }
    },
    "UpdateRegistryResponse":{
      "type":"structure",
      "required":[
        "name",
        "registryId",
        "registryArn",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "name":{
          "shape":"RegistryName",
          "documentation":"<p>The name of the updated registry.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the updated registry.</p>"
        },
        "registryId":{
          "shape":"RegistryId",
          "documentation":"<p>The unique identifier of the updated registry.</p>"
        },
        "registryArn":{
          "shape":"RegistryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated registry.</p>"
        },
        "authorizerType":{
          "shape":"RegistryAuthorizerType",
          "documentation":"<p>The type of authorizer used by the updated registry. This controls the authorization method for the Search and Invoke APIs used by consumers.</p> <ul> <li> <p> <code>CUSTOM_JWT</code> - Authorize with a bearer token.</p> </li> <li> <p> <code>AWS_IAM</code> - Authorize with your Amazon Web Services IAM credentials.</p> </li> </ul>"
        },
        "authorizerConfiguration":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The authorizer configuration for the updated registry. For details, see the <code>AuthorizerConfiguration</code> data type.</p>"
        },
        "approvalConfiguration":{
          "shape":"ApprovalConfiguration",
          "documentation":"<p>The approval configuration for the updated registry. For details, see the <code>ApprovalConfiguration</code> data type.</p>"
        },
        "status":{
          "shape":"RegistryStatus",
          "documentation":"<p>The current status of the updated registry. Possible values include <code>CREATING</code>, <code>READY</code>, <code>UPDATING</code>, <code>CREATE_FAILED</code>, <code>UPDATE_FAILED</code>, <code>DELETING</code>, and <code>DELETE_FAILED</code>.</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>The reason for the current status of the updated registry.</p>"
        },
        "createdAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTimestamp",
          "documentation":"<p>The timestamp when the registry was last updated.</p>"
        }
      }
    },
    "UpdateWorkloadIdentityRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The name of the workload identity to update.</p>"
        },
        "allowedResourceOauth2ReturnUrls":{
          "shape":"ResourceOauth2ReturnUrlListType",
          "documentation":"<p>The new list of allowed OAuth2 return URLs for resources associated with this workload identity. This list replaces the existing list.</p>"
        }
      }
    },
    "UpdateWorkloadIdentityResponse":{
      "type":"structure",
      "required":[
        "name",
        "workloadIdentityArn",
        "createdTime",
        "lastUpdatedTime"
      ],
      "members":{
        "name":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The name of the workload identity.</p>"
        },
        "workloadIdentityArn":{
          "shape":"WorkloadIdentityArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the workload identity.</p>"
        },
        "allowedResourceOauth2ReturnUrls":{
          "shape":"ResourceOauth2ReturnUrlListType",
          "documentation":"<p>The list of allowed OAuth2 return URLs for resources associated with this workload identity.</p>"
        },
        "createdTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the workload identity was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the workload identity was last updated.</p>"
        }
      }
    },
    "UpdatedA2aDescriptor":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"A2aDescriptor",
          "documentation":"<p>The updated A2A descriptor value.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating an A2A descriptor with PATCH semantics. When present, the A2A descriptor is replaced with the provided value. When absent, the A2A descriptor is left unchanged. To unset, include the wrapper with the value set to null.</p>"
    },
    "UpdatedAgentSkillsDescriptor":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"UpdatedAgentSkillsDescriptorFields",
          "documentation":"<p>The updated agent skills descriptor fields.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating an agent skills descriptor with PATCH semantics. When present with a value, individual fields can be updated independently. When present with a null value, the entire agent skills descriptor is unset. When absent, the agent skills descriptor is left unchanged.</p>"
    },
    "UpdatedAgentSkillsDescriptorFields":{
      "type":"structure",
      "members":{
        "skillMd":{
          "shape":"UpdatedSkillMdDefinition",
          "documentation":"<p>The updated skill markdown definition.</p>"
        },
        "skillDefinition":{
          "shape":"UpdatedSkillDefinition",
          "documentation":"<p>The updated skill definition.</p>"
        }
      },
      "documentation":"<p>Individual agent skills descriptor fields that can be updated independently.</p>"
    },
    "UpdatedApprovalConfiguration":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"ApprovalConfiguration",
          "documentation":"<p>The updated approval configuration value. Set to <code>null</code> to unset the approval configuration.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating an optional approval configuration field with PATCH semantics. When present in an update request, the approval configuration is replaced with the provided value. When absent, the approval configuration is left unchanged.</p>"
    },
    "UpdatedAuthorizerConfiguration":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"AuthorizerConfiguration",
          "documentation":"<p>The updated authorizer configuration value. If not specified, it will clear the current authorizer configuration of the resource.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating an optional AuthorizerConfiguration field with PATCH semantics. When present in an update request, the authorizer configuration is replaced with optionalValue. When absent, the authorizer configuration is left unchanged. To unset, include the wrapper with optionalValue not specified.</p>"
    },
    "UpdatedCustomDescriptor":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"CustomDescriptor",
          "documentation":"<p>The updated custom descriptor value.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating a custom descriptor with PATCH semantics. When present, the custom descriptor is replaced with the provided value. When absent, the custom descriptor is left unchanged. To unset, include the wrapper with the value set to null.</p>"
    },
    "UpdatedDescription":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"Description",
          "documentation":"<p>Represents an optional value that is used to update the human-readable description of the resource. If not specified, it will clear the current description of the resource.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating an optional Description field with PATCH semantics. When present in an update request, the description is replaced with optionalValue. When absent, the description is left unchanged. To unset the description, include the wrapper with optionalValue not specified.</p>"
    },
    "UpdatedDescriptors":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"UpdatedDescriptorsUnion",
          "documentation":"<p>The updated descriptors value. Contains per-descriptor-type wrappers that are each independently updatable.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating an optional descriptors field with PATCH semantics. When present with a value, individual descriptors can be updated. When present with a null value, all descriptors are unset. When absent, descriptors are left unchanged.</p>"
    },
    "UpdatedDescriptorsUnion":{
      "type":"structure",
      "members":{
        "mcp":{
          "shape":"UpdatedMcpDescriptor",
          "documentation":"<p>The updated MCP descriptor.</p>"
        },
        "a2a":{
          "shape":"UpdatedA2aDescriptor",
          "documentation":"<p>The updated A2A descriptor.</p>"
        },
        "custom":{
          "shape":"UpdatedCustomDescriptor",
          "documentation":"<p>The updated custom descriptor.</p>"
        },
        "agentSkills":{
          "shape":"UpdatedAgentSkillsDescriptor",
          "documentation":"<p>The updated agent skills descriptor.</p>"
        }
      },
      "documentation":"<p>Contains per-descriptor-type wrappers for updating descriptors. Each descriptor type can be updated independently.</p>"
    },
    "UpdatedHarnessEnvironmentArtifact":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"HarnessEnvironmentArtifact",
          "documentation":"<p>The updated environment artifact value, or null to clear the existing configuration.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating the environment artifact configuration.</p>"
    },
    "UpdatedHarnessMemoryConfiguration":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"HarnessMemoryConfiguration",
          "documentation":"<p>The updated memory configuration value, or null to clear the existing configuration.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating the memory configuration.</p>"
    },
    "UpdatedMcpDescriptor":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"UpdatedMcpDescriptorFields",
          "documentation":"<p>The updated MCP descriptor fields.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating an MCP descriptor with PATCH semantics. When present with a value, individual MCP fields can be updated independently. When present with a null value, the entire MCP descriptor is unset. When absent, the MCP descriptor is left unchanged.</p>"
    },
    "UpdatedMcpDescriptorFields":{
      "type":"structure",
      "members":{
        "server":{
          "shape":"UpdatedServerDefinition",
          "documentation":"<p>The updated server definition for the MCP descriptor.</p>"
        },
        "tools":{
          "shape":"UpdatedToolsDefinition",
          "documentation":"<p>The updated tools definition for the MCP descriptor.</p>"
        }
      },
      "documentation":"<p>Individual MCP descriptor fields that can be updated independently.</p>"
    },
    "UpdatedServerDefinition":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"ServerDefinition",
          "documentation":"<p>The updated server definition value.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating a server definition with PATCH semantics. When present, the server definition is replaced with the provided value. When absent, the server definition is left unchanged. To unset, include the wrapper with the value set to null.</p>"
    },
    "UpdatedSkillDefinition":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"SkillDefinition",
          "documentation":"<p>The updated skill definition value.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating a skill definition with PATCH semantics.</p>"
    },
    "UpdatedSkillMdDefinition":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"SkillMdDefinition",
          "documentation":"<p>The updated skill markdown definition value.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating a skill markdown definition with PATCH semantics.</p>"
    },
    "UpdatedSynchronizationConfiguration":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"SynchronizationConfiguration",
          "documentation":"<p>The updated synchronization configuration value.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating the synchronization configuration with PATCH semantics. Must be matched with <code>UpdatedSynchronizationType</code>.</p>"
    },
    "UpdatedSynchronizationType":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"SynchronizationType",
          "documentation":"<p>The updated synchronization type value.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating the synchronization type with PATCH semantics. Must be matched with <code>UpdatedSynchronizationConfiguration</code>.</p>"
    },
    "UpdatedToolsDefinition":{
      "type":"structure",
      "members":{
        "optionalValue":{
          "shape":"ToolsDefinition",
          "documentation":"<p>The updated tools definition value.</p>"
        }
      },
      "documentation":"<p>Wrapper for updating a tools definition with PATCH semantics. When present, the tools definition is replaced with the provided value. When absent, the tools definition is left unchanged. To unset, include the wrapper with the value set to null.</p>"
    },
    "UserPreferenceConsolidationOverride":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for user preference consolidation.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for user preference consolidation.</p>"
        }
      },
      "documentation":"<p>Contains user preference consolidation override configuration.</p>"
    },
    "UserPreferenceExtractionOverride":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for user preference extraction.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for user preference extraction.</p>"
        }
      },
      "documentation":"<p>Contains user preference extraction override configuration.</p>"
    },
    "UserPreferenceMemoryStrategyInput":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the user preference memory strategy.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the user preference memory strategy.</p>"
        },
        "namespaces":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaces associated with the user preference memory strategy.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use namespaceTemplates instead",
          "deprecatedSince":"2026-03-02"
        },
        "namespaceTemplates":{
          "shape":"NamespacesList",
          "documentation":"<p>The namespaceTemplates associated with the user preference memory strategy.</p>"
        },
        "memoryRecordSchema":{
          "shape":"MemoryRecordSchema",
          "documentation":"<p>Schema for metadata fields on records generated by this strategy.</p>"
        }
      },
      "documentation":"<p>Input for creating a user preference memory strategy.</p>"
    },
    "UserPreferenceOverrideConfigurationInput":{
      "type":"structure",
      "members":{
        "extraction":{
          "shape":"UserPreferenceOverrideExtractionConfigurationInput",
          "documentation":"<p>The extraction configuration for a user preference override.</p>"
        },
        "consolidation":{
          "shape":"UserPreferenceOverrideConsolidationConfigurationInput",
          "documentation":"<p>The consolidation configuration for a user preference override.</p>"
        }
      },
      "documentation":"<p>Input for user preference override configuration in a memory strategy.</p>"
    },
    "UserPreferenceOverrideConsolidationConfigurationInput":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for user preference consolidation.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for user preference consolidation.</p>"
        }
      },
      "documentation":"<p>Input for user preference override consolidation configuration in a memory strategy.</p>"
    },
    "UserPreferenceOverrideExtractionConfigurationInput":{
      "type":"structure",
      "required":[
        "appendToPrompt",
        "modelId"
      ],
      "members":{
        "appendToPrompt":{
          "shape":"Prompt",
          "documentation":"<p>The text to append to the prompt for user preference extraction.</p>"
        },
        "modelId":{
          "shape":"String",
          "documentation":"<p>The model ID to use for user preference extraction.</p>"
        }
      },
      "documentation":"<p>Input for user preference override extraction configuration in a memory strategy.</p>"
    },
    "Validation":{
      "type":"structure",
      "members":{
        "stringValidation":{"shape":"StringValidation"},
        "stringListValidation":{"shape":"StringListValidation"},
        "numberValidation":{"shape":"NumberValidation"}
      },
      "documentation":"<p>Validation rules for extracted metadata values. Only one type can be specified, matching the field's data type.</p>",
      "union":true
    },
    "ValidationException":{
      "type":"structure",
      "required":[
        "message",
        "reason"
      ],
      "members":{
        "message":{"shape":"String"},
        "reason":{"shape":"ValidationExceptionReason"},
        "fieldList":{"shape":"ValidationExceptionFieldList"}
      },
      "documentation":"<p>The input fails to satisfy the constraints specified by the service.</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"
      ]
    },
    "VersionCreatedBySource":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the source (for example, <code>user</code>, <code>optimization-job</code>, or <code>system</code>).</p>"
        },
        "arn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the source, if applicable (for example, a user ARN or optimization job ARN).</p>"
        }
      },
      "documentation":"<p>The source that created a configuration bundle version.</p>"
    },
    "VersionFilter":{
      "type":"structure",
      "members":{
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p>Filter by branch name.</p>"
        },
        "createdByName":{
          "shape":"String",
          "documentation":"<p>Filter by creation source name.</p>"
        },
        "latestPerBranch":{
          "shape":"Boolean",
          "documentation":"<p>When true, returns only the latest version for each branch. When false or not specified, returns all versions. Can be combined with <code>branchName</code> to get the latest version for a specific branch.</p>"
        }
      },
      "documentation":"<p>A filter for listing configuration bundle versions.</p>"
    },
    "VersionLineageMetadata":{
      "type":"structure",
      "members":{
        "parentVersionIds":{
          "shape":"ConfigurationBundleVersionList",
          "documentation":"<p>A list of parent version identifiers. Regular commits have 0-1 parents. Merge commits have 2 parents: the target branch parent and the source branch parent. The first parent represents the primary lineage.</p>"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p>The branch name for this version. If not specified, inherits the parent's branch or defaults to <code>mainline</code>.</p>"
        },
        "createdBy":{
          "shape":"VersionCreatedBySource",
          "documentation":"<p>The source that created this version.</p>"
        },
        "commitMessage":{
          "shape":"VersionLineageMetadataCommitMessageString",
          "documentation":"<p>A commit message describing the changes in this version.</p>"
        }
      },
      "documentation":"<p>The version lineage metadata that tracks parent versions and creation source. Supports git-like two-parent merges for branch management.</p>"
    },
    "VersionLineageMetadataCommitMessageString":{
      "type":"string",
      "max":500,
      "min":1
    },
    "VpcConfig":{
      "type":"structure",
      "required":[
        "securityGroups",
        "subnets"
      ],
      "members":{
        "securityGroups":{
          "shape":"SecurityGroups",
          "documentation":"<p>The security groups associated with the VPC configuration.</p>"
        },
        "subnets":{
          "shape":"Subnets",
          "documentation":"<p>The subnets associated with the VPC configuration.</p>"
        }
      },
      "documentation":"<p>VpcConfig for the Agent.</p>"
    },
    "VpcIdentifier":{
      "type":"string",
      "pattern":"vpc-(([0-9a-z]{8})|([0-9a-z]{17}))"
    },
    "WeightedOverride":{
      "type":"structure",
      "required":["trafficSplit"],
      "members":{
        "trafficSplit":{
          "shape":"TrafficSplitEntries",
          "documentation":"<p>The traffic split entries defining how traffic is distributed between configuration bundle versions.</p>"
        }
      },
      "documentation":"<p>A weighted configuration bundle override that splits traffic between multiple bundle versions.</p>"
    },
    "WeightedRoute":{
      "type":"structure",
      "required":["trafficSplit"],
      "members":{
        "trafficSplit":{
          "shape":"TargetTrafficSplitEntries",
          "documentation":"<p>The traffic split entries defining how traffic is distributed between targets.</p>"
        }
      },
      "documentation":"<p>A weighted route that splits traffic between multiple gateway targets.</p>"
    },
    "WorkloadIdentityArn":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "WorkloadIdentityArnType":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "WorkloadIdentityDetails":{
      "type":"structure",
      "required":["workloadIdentityArn"],
      "members":{
        "workloadIdentityArn":{
          "shape":"WorkloadIdentityArn",
          "documentation":"<p>The ARN associated with the workload identity.</p>"
        }
      },
      "documentation":"<p>The information about the workload identity.</p>"
    },
    "WorkloadIdentityList":{
      "type":"list",
      "member":{"shape":"WorkloadIdentityType"}
    },
    "WorkloadIdentityNameType":{
      "type":"string",
      "max":255,
      "min":3,
      "pattern":"[A-Za-z0-9_.-]+"
    },
    "WorkloadIdentityType":{
      "type":"structure",
      "required":[
        "name",
        "workloadIdentityArn"
      ],
      "members":{
        "name":{
          "shape":"WorkloadIdentityNameType",
          "documentation":"<p>The name of the workload identity.</p>"
        },
        "workloadIdentityArn":{
          "shape":"WorkloadIdentityArnType",
          "documentation":"<p>The Amazon Resource Name (ARN) of the workload identity.</p>"
        }
      },
      "documentation":"<p>Contains information about a workload identity.</p>"
    },
    "entryPoint":{
      "type":"string",
      "max":128,
      "min":1
    }
  },
  "documentation":"<p>Welcome to the Amazon Bedrock AgentCore Control plane API reference. Control plane actions configure, create, modify, and monitor Amazon Web Services resources.</p>"
}
