{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2023-04-20",
    "auth":[
      "aws.auth#sigv4",
      "smithy.api#httpBearerAuth"
    ],
    "endpointPrefix":"bedrock",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Amazon Bedrock",
    "serviceId":"Bedrock",
    "signatureVersion":"v4",
    "signingName":"bedrock",
    "uid":"bedrock-2023-04-20"
  },
  "operations":{
    "BatchDeleteEvaluationJob":{
      "name":"BatchDeleteEvaluationJob",
      "http":{
        "method":"POST",
        "requestUri":"/evaluation-jobs/batch-delete",
        "responseCode":202
      },
      "input":{"shape":"BatchDeleteEvaluationJobRequest"},
      "output":{"shape":"BatchDeleteEvaluationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a batch of evaluation jobs. An evaluation job can only be deleted if it has following status <code>FAILED</code>, <code>COMPLETED</code>, and <code>STOPPED</code>. You can request up to 25 model evaluation jobs be deleted in a single request.</p>"
    },
    "CancelAutomatedReasoningPolicyBuildWorkflow":{
      "name":"CancelAutomatedReasoningPolicyBuildWorkflow",
      "http":{
        "method":"POST",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/cancel",
        "responseCode":202
      },
      "input":{"shape":"CancelAutomatedReasoningPolicyBuildWorkflowRequest"},
      "output":{"shape":"CancelAutomatedReasoningPolicyBuildWorkflowResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Cancels a running Automated Reasoning policy build workflow. This stops the policy generation process and prevents further processing of the source documents.</p>",
      "idempotent":true
    },
    "CreateAutomatedReasoningPolicy":{
      "name":"CreateAutomatedReasoningPolicy",
      "http":{
        "method":"POST",
        "requestUri":"/automated-reasoning-policies",
        "responseCode":200
      },
      "input":{"shape":"CreateAutomatedReasoningPolicyRequest"},
      "output":{"shape":"CreateAutomatedReasoningPolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates an Automated Reasoning policy for Amazon Bedrock Guardrails. Automated Reasoning policies use mathematical techniques to detect hallucinations, suggest corrections, and highlight unstated assumptions in the responses of your GenAI application.</p> <p>To create a policy, you upload a source document that describes the rules that you're encoding. Automated Reasoning extracts important concepts from the source document that will become variables in the policy and infers policy rules.</p>",
      "idempotent":true
    },
    "CreateAutomatedReasoningPolicyTestCase":{
      "name":"CreateAutomatedReasoningPolicyTestCase",
      "http":{
        "method":"POST",
        "requestUri":"/automated-reasoning-policies/{policyArn}/test-cases",
        "responseCode":200
      },
      "input":{"shape":"CreateAutomatedReasoningPolicyTestCaseRequest"},
      "output":{"shape":"CreateAutomatedReasoningPolicyTestCaseResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a test for an Automated Reasoning policy. Tests validate that your policy works as expected by providing sample inputs and expected outcomes. Use tests to verify policy behavior before deploying to production.</p>",
      "idempotent":true
    },
    "CreateAutomatedReasoningPolicyVersion":{
      "name":"CreateAutomatedReasoningPolicyVersion",
      "http":{
        "method":"POST",
        "requestUri":"/automated-reasoning-policies/{policyArn}/versions",
        "responseCode":200
      },
      "input":{"shape":"CreateAutomatedReasoningPolicyVersionRequest"},
      "output":{"shape":"CreateAutomatedReasoningPolicyVersionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a new version of an existing Automated Reasoning policy. This allows you to iterate on your policy rules while maintaining previous versions for rollback or comparison purposes.</p>",
      "idempotent":true
    },
    "CreateCustomModel":{
      "name":"CreateCustomModel",
      "http":{
        "method":"POST",
        "requestUri":"/custom-models/create-custom-model",
        "responseCode":202
      },
      "input":{"shape":"CreateCustomModelRequest"},
      "output":{"shape":"CreateCustomModelResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a new custom model in Amazon Bedrock. After the model is active, you can use it for inference.</p> <p>To use the model for inference, you must purchase Provisioned Throughput for it. You can't use On-demand inference with these custom models. For more information about Provisioned Throughput, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html\">Provisioned Throughput</a>.</p> <p>The model appears in <code>ListCustomModels</code> with a <code>customizationType</code> of <code>imported</code>. To track the status of the new model, you use the <code>GetCustomModel</code> API operation. The model can be in the following states:</p> <ul> <li> <p> <code>Creating</code> - Initial state during validation and registration</p> </li> <li> <p> <code>Active</code> - Model is ready for use in inference</p> </li> <li> <p> <code>Failed</code> - Creation process encountered an error</p> </li> </ul> <p> <b>Related APIs</b> </p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetCustomModel.html\">GetCustomModel</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html\">ListCustomModels</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteCustomModel.html\">DeleteCustomModel</a> </p> </li> </ul>",
      "idempotent":true
    },
    "CreateCustomModelDeployment":{
      "name":"CreateCustomModelDeployment",
      "http":{
        "method":"POST",
        "requestUri":"/model-customization/custom-model-deployments",
        "responseCode":202
      },
      "input":{"shape":"CreateCustomModelDeploymentRequest"},
      "output":{"shape":"CreateCustomModelDeploymentResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deploys a custom model for on-demand inference in Amazon Bedrock. After you deploy your custom model, you use the deployment's Amazon Resource Name (ARN) as the <code>modelId</code> parameter when you submit prompts and generate responses with model inference.</p> <p> For more information about setting up on-demand inference for custom models, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-use.html\">Set up inference for a custom model</a>. </p> <p>The following actions are related to the <code>CreateCustomModelDeployment</code> operation:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetCustomModelDeployment.html\">GetCustomModelDeployment</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModelDeployments.html\">ListCustomModelDeployments</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteCustomModelDeployment.html\">DeleteCustomModelDeployment</a> </p> </li> </ul>",
      "idempotent":true
    },
    "CreateEvaluationJob":{
      "name":"CreateEvaluationJob",
      "http":{
        "method":"POST",
        "requestUri":"/evaluation-jobs",
        "responseCode":202
      },
      "input":{"shape":"CreateEvaluationJobRequest"},
      "output":{"shape":"CreateEvaluationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates an evaluation job.</p>",
      "idempotent":true
    },
    "CreateFoundationModelAgreement":{
      "name":"CreateFoundationModelAgreement",
      "http":{
        "method":"POST",
        "requestUri":"/create-foundation-model-agreement",
        "responseCode":202
      },
      "input":{"shape":"CreateFoundationModelAgreementRequest"},
      "output":{"shape":"CreateFoundationModelAgreementResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Request a model access agreement for the specified model.</p>"
    },
    "CreateGuardrail":{
      "name":"CreateGuardrail",
      "http":{
        "method":"POST",
        "requestUri":"/guardrails",
        "responseCode":202
      },
      "input":{"shape":"CreateGuardrailRequest"},
      "output":{"shape":"CreateGuardrailResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a guardrail to block topics and to implement safeguards for your generative AI applications.</p> <p>You can configure the following policies in a guardrail to avoid undesirable and harmful content, filter out denied topics and words, and remove sensitive information for privacy protection.</p> <ul> <li> <p> <b>Content filters</b> - Adjust filter strengths to block input prompts or model responses containing harmful content.</p> </li> <li> <p> <b>Denied topics</b> - Define a set of topics that are undesirable in the context of your application. These topics will be blocked if detected in user queries or model responses.</p> </li> <li> <p> <b>Word filters</b> - Configure filters to block undesirable words, phrases, and profanity. Such words can include offensive terms, competitor names etc.</p> </li> <li> <p> <b>Sensitive information filters</b> - Block or mask sensitive information such as personally identifiable information (PII) or custom regex in user inputs and model responses.</p> </li> </ul> <p>In addition to the above policies, you can also configure the messages to be returned to the user if a user input or model response is in violation of the policies defined in the guardrail.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html\">Amazon Bedrock Guardrails</a> in the <i>Amazon Bedrock User Guide</i>.</p>"
    },
    "CreateGuardrailVersion":{
      "name":"CreateGuardrailVersion",
      "http":{
        "method":"POST",
        "requestUri":"/guardrails/{guardrailIdentifier}",
        "responseCode":202
      },
      "input":{"shape":"CreateGuardrailVersionRequest"},
      "output":{"shape":"CreateGuardrailVersionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a version of the guardrail. Use this API to create a snapshot of the guardrail when you are satisfied with a configuration, or to compare the configuration with another version.</p>"
    },
    "CreateInferenceProfile":{
      "name":"CreateInferenceProfile",
      "http":{
        "method":"POST",
        "requestUri":"/inference-profiles",
        "responseCode":201
      },
      "input":{"shape":"CreateInferenceProfileRequest"},
      "output":{"shape":"CreateInferenceProfileResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates an application inference profile to track metrics and costs when invoking a model. To create an application inference profile for a foundation model in one region, specify the ARN of the model in that region. To create an application inference profile for a foundation model across multiple regions, specify the ARN of the system-defined inference profile that contains the regions that you want to route requests to. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html\">Increase throughput and resilience with cross-region inference in Amazon Bedrock</a>. in the Amazon Bedrock User Guide.</p>",
      "idempotent":true
    },
    "CreateMarketplaceModelEndpoint":{
      "name":"CreateMarketplaceModelEndpoint",
      "http":{
        "method":"POST",
        "requestUri":"/marketplace-model/endpoints",
        "responseCode":200
      },
      "input":{"shape":"CreateMarketplaceModelEndpointRequest"},
      "output":{"shape":"CreateMarketplaceModelEndpointResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates an endpoint for a model from Amazon Bedrock Marketplace. The endpoint is hosted by Amazon SageMaker.</p>"
    },
    "CreateModelCopyJob":{
      "name":"CreateModelCopyJob",
      "http":{
        "method":"POST",
        "requestUri":"/model-copy-jobs",
        "responseCode":201
      },
      "input":{"shape":"CreateModelCopyJobRequest"},
      "output":{"shape":"CreateModelCopyJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"}
      ],
      "documentation":"<p>Copies a model to another region so that it can be used there. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/copy-model.html\">Copy models to be used in other regions</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "idempotent":true
    },
    "CreateModelCustomizationJob":{
      "name":"CreateModelCustomizationJob",
      "http":{
        "method":"POST",
        "requestUri":"/model-customization-jobs",
        "responseCode":201
      },
      "input":{"shape":"CreateModelCustomizationJobRequest"},
      "output":{"shape":"CreateModelCustomizationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a fine-tuning job to customize a base model.</p> <p>You specify the base foundation model and the location of the training data. After the model-customization job completes successfully, your custom model resource will be ready to use. Amazon Bedrock returns validation loss metrics and output generations after the job completes. </p> <p>For information on the format of training and validation data, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html\">Prepare the datasets</a>.</p> <p> Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size. To monitor a job, use the <code>GetModelCustomizationJob</code> operation to retrieve the job status.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "idempotent":true
    },
    "CreateModelImportJob":{
      "name":"CreateModelImportJob",
      "http":{
        "method":"POST",
        "requestUri":"/model-import-jobs",
        "responseCode":201
      },
      "input":{"shape":"CreateModelImportJobRequest"},
      "output":{"shape":"CreateModelImportJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a model import job to import model that you have customized in other environments, such as Amazon SageMaker. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html\">Import a customized model</a> </p>",
      "idempotent":true
    },
    "CreateModelInvocationJob":{
      "name":"CreateModelInvocationJob",
      "http":{
        "method":"POST",
        "requestUri":"/model-invocation-job",
        "responseCode":200
      },
      "input":{"shape":"CreateModelInvocationJobRequest"},
      "output":{"shape":"CreateModelInvocationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a batch inference job to invoke a model on multiple prompts. Format your data according to <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-inference-data\">Format your inference data</a> and upload it to an Amazon S3 bucket. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-inference.html\">Process multiple prompts with batch inference</a>.</p> <p>The response returns a <code>jobArn</code> that you can use to stop or get details about the job.</p>",
      "idempotent":true
    },
    "CreatePromptRouter":{
      "name":"CreatePromptRouter",
      "http":{
        "method":"POST",
        "requestUri":"/prompt-routers",
        "responseCode":200
      },
      "input":{"shape":"CreatePromptRouterRequest"},
      "output":{"shape":"CreatePromptRouterResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a prompt router that manages the routing of requests between multiple foundation models based on the routing criteria.</p>",
      "idempotent":true
    },
    "CreateProvisionedModelThroughput":{
      "name":"CreateProvisionedModelThroughput",
      "http":{
        "method":"POST",
        "requestUri":"/provisioned-model-throughput",
        "responseCode":201
      },
      "input":{"shape":"CreateProvisionedModelThroughputRequest"},
      "output":{"shape":"CreateProvisionedModelThroughputResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates dedicated throughput for a base or custom model with the model units and for the duration that you specify. For pricing details, see <a href=\"http://aws.amazon.com/bedrock/pricing/\">Amazon Bedrock Pricing</a>. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html\">Provisioned Throughput</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "idempotent":true
    },
    "DeleteAutomatedReasoningPolicy":{
      "name":"DeleteAutomatedReasoningPolicy",
      "http":{
        "method":"DELETE",
        "requestUri":"/automated-reasoning-policies/{policyArn}",
        "responseCode":202
      },
      "input":{"shape":"DeleteAutomatedReasoningPolicyRequest"},
      "output":{"shape":"DeleteAutomatedReasoningPolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceInUseException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes an Automated Reasoning policy or policy version. This operation is idempotent. If you delete a policy more than once, each call succeeds. Deleting a policy removes it permanently and cannot be undone.</p>",
      "idempotent":true
    },
    "DeleteAutomatedReasoningPolicyBuildWorkflow":{
      "name":"DeleteAutomatedReasoningPolicyBuildWorkflow",
      "http":{
        "method":"DELETE",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteAutomatedReasoningPolicyBuildWorkflowRequest"},
      "output":{"shape":"DeleteAutomatedReasoningPolicyBuildWorkflowResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceInUseException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes an Automated Reasoning policy build workflow and its associated artifacts. This permanently removes the workflow history and any generated assets.</p>",
      "idempotent":true
    },
    "DeleteAutomatedReasoningPolicyTestCase":{
      "name":"DeleteAutomatedReasoningPolicyTestCase",
      "http":{
        "method":"DELETE",
        "requestUri":"/automated-reasoning-policies/{policyArn}/test-cases/{testCaseId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteAutomatedReasoningPolicyTestCaseRequest"},
      "output":{"shape":"DeleteAutomatedReasoningPolicyTestCaseResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceInUseException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes an Automated Reasoning policy test. This operation is idempotent; if you delete a test more than once, each call succeeds.</p>",
      "idempotent":true
    },
    "DeleteCustomModel":{
      "name":"DeleteCustomModel",
      "http":{
        "method":"DELETE",
        "requestUri":"/custom-models/{modelIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"DeleteCustomModelRequest"},
      "output":{"shape":"DeleteCustomModelResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a custom model that you created earlier. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "idempotent":true
    },
    "DeleteCustomModelDeployment":{
      "name":"DeleteCustomModelDeployment",
      "http":{
        "method":"DELETE",
        "requestUri":"/model-customization/custom-model-deployments/{customModelDeploymentIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"DeleteCustomModelDeploymentRequest"},
      "output":{"shape":"DeleteCustomModelDeploymentResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a custom model deployment. This operation stops the deployment and removes it from your account. After deletion, the deployment ARN can no longer be used for inference requests.</p> <p>The following actions are related to the <code>DeleteCustomModelDeployment</code> operation:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html\">CreateCustomModelDeployment</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetCustomModelDeployment.html\">GetCustomModelDeployment</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModelDeployments.html\">ListCustomModelDeployments</a> </p> </li> </ul>",
      "idempotent":true
    },
    "DeleteEnforcedGuardrailConfiguration":{
      "name":"DeleteEnforcedGuardrailConfiguration",
      "http":{
        "method":"DELETE",
        "requestUri":"/enforcedGuardrailsConfiguration/{configId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteEnforcedGuardrailConfigurationRequest"},
      "output":{"shape":"DeleteEnforcedGuardrailConfigurationResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes the account-level enforced guardrail configuration.</p>",
      "idempotent":true
    },
    "DeleteFoundationModelAgreement":{
      "name":"DeleteFoundationModelAgreement",
      "http":{
        "method":"POST",
        "requestUri":"/delete-foundation-model-agreement",
        "responseCode":202
      },
      "input":{"shape":"DeleteFoundationModelAgreementRequest"},
      "output":{"shape":"DeleteFoundationModelAgreementResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Delete the model access agreement for the specified model.</p>"
    },
    "DeleteGuardrail":{
      "name":"DeleteGuardrail",
      "http":{
        "method":"DELETE",
        "requestUri":"/guardrails/{guardrailIdentifier}",
        "responseCode":202
      },
      "input":{"shape":"DeleteGuardrailRequest"},
      "output":{"shape":"DeleteGuardrailResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceInUseException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a guardrail.</p> <ul> <li> <p>To delete a guardrail, only specify the ARN of the guardrail in the <code>guardrailIdentifier</code> field. If you delete a guardrail, all of its versions will be deleted.</p> </li> <li> <p>To delete a version of a guardrail, specify the ARN of the guardrail in the <code>guardrailIdentifier</code> field and the version in the <code>guardrailVersion</code> field.</p> </li> </ul>",
      "idempotent":true
    },
    "DeleteImportedModel":{
      "name":"DeleteImportedModel",
      "http":{
        "method":"DELETE",
        "requestUri":"/imported-models/{modelIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"DeleteImportedModelRequest"},
      "output":{"shape":"DeleteImportedModelResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a custom model that you imported earlier. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html\">Import a customized model</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>. </p>",
      "idempotent":true
    },
    "DeleteInferenceProfile":{
      "name":"DeleteInferenceProfile",
      "http":{
        "method":"DELETE",
        "requestUri":"/inference-profiles/{inferenceProfileIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"DeleteInferenceProfileRequest"},
      "output":{"shape":"DeleteInferenceProfileResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes an application inference profile. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html\">Increase throughput and resilience with cross-region inference in Amazon Bedrock</a>. in the Amazon Bedrock User Guide.</p>",
      "idempotent":true
    },
    "DeleteMarketplaceModelEndpoint":{
      "name":"DeleteMarketplaceModelEndpoint",
      "http":{
        "method":"DELETE",
        "requestUri":"/marketplace-model/endpoints/{endpointArn}",
        "responseCode":200
      },
      "input":{"shape":"DeleteMarketplaceModelEndpointRequest"},
      "output":{"shape":"DeleteMarketplaceModelEndpointResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes an endpoint for a model from Amazon Bedrock Marketplace.</p>",
      "idempotent":true
    },
    "DeleteModelInvocationLoggingConfiguration":{
      "name":"DeleteModelInvocationLoggingConfiguration",
      "http":{
        "method":"DELETE",
        "requestUri":"/logging/modelinvocations",
        "responseCode":200
      },
      "input":{"shape":"DeleteModelInvocationLoggingConfigurationRequest"},
      "output":{"shape":"DeleteModelInvocationLoggingConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Delete the invocation logging. </p>",
      "idempotent":true
    },
    "DeletePromptRouter":{
      "name":"DeletePromptRouter",
      "http":{
        "method":"DELETE",
        "requestUri":"/prompt-routers/{promptRouterArn}",
        "responseCode":200
      },
      "input":{"shape":"DeletePromptRouterRequest"},
      "output":{"shape":"DeletePromptRouterResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a specified prompt router. This action cannot be undone.</p>",
      "idempotent":true
    },
    "DeleteProvisionedModelThroughput":{
      "name":"DeleteProvisionedModelThroughput",
      "http":{
        "method":"DELETE",
        "requestUri":"/provisioned-model-throughput/{provisionedModelId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteProvisionedModelThroughputRequest"},
      "output":{"shape":"DeleteProvisionedModelThroughputResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a Provisioned Throughput. You can't delete a Provisioned Throughput before the commitment term is over. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html\">Provisioned Throughput</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "idempotent":true
    },
    "DeleteResourcePolicy":{
      "name":"DeleteResourcePolicy",
      "http":{
        "method":"DELETE",
        "requestUri":"/resource-policy/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"DeleteResourcePolicyRequest"},
      "output":{"shape":"DeleteResourcePolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a previously created Bedrock resource policy.</p>",
      "idempotent":true
    },
    "DeregisterMarketplaceModelEndpoint":{
      "name":"DeregisterMarketplaceModelEndpoint",
      "http":{
        "method":"DELETE",
        "requestUri":"/marketplace-model/endpoints/{endpointArn}/registration",
        "responseCode":200
      },
      "input":{"shape":"DeregisterMarketplaceModelEndpointRequest"},
      "output":{"shape":"DeregisterMarketplaceModelEndpointResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deregisters an endpoint for a model from Amazon Bedrock Marketplace. This operation removes the endpoint's association with Amazon Bedrock but does not delete the underlying Amazon SageMaker endpoint.</p>"
    },
    "ExportAutomatedReasoningPolicyVersion":{
      "name":"ExportAutomatedReasoningPolicyVersion",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/export",
        "responseCode":200
      },
      "input":{"shape":"ExportAutomatedReasoningPolicyVersionRequest"},
      "output":{"shape":"ExportAutomatedReasoningPolicyVersionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Exports the policy definition for an Automated Reasoning policy version. Returns the complete policy definition including rules, variables, and custom variable types in a structured format.</p>",
      "readonly":true
    },
    "GetAutomatedReasoningPolicy":{
      "name":"GetAutomatedReasoningPolicy",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}",
        "responseCode":200
      },
      "input":{"shape":"GetAutomatedReasoningPolicyRequest"},
      "output":{"shape":"GetAutomatedReasoningPolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves details about an Automated Reasoning policy or policy version. Returns information including the policy definition, metadata, and timestamps.</p>",
      "readonly":true
    },
    "GetAutomatedReasoningPolicyAnnotations":{
      "name":"GetAutomatedReasoningPolicyAnnotations",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/annotations",
        "responseCode":200
      },
      "input":{"shape":"GetAutomatedReasoningPolicyAnnotationsRequest"},
      "output":{"shape":"GetAutomatedReasoningPolicyAnnotationsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves the current annotations for an Automated Reasoning policy build workflow. Annotations contain corrections to the rules, variables and types to be applied to the policy.</p>",
      "readonly":true
    },
    "GetAutomatedReasoningPolicyBuildWorkflow":{
      "name":"GetAutomatedReasoningPolicyBuildWorkflow",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}",
        "responseCode":200
      },
      "input":{"shape":"GetAutomatedReasoningPolicyBuildWorkflowRequest"},
      "output":{"shape":"GetAutomatedReasoningPolicyBuildWorkflowResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves detailed information about an Automated Reasoning policy build workflow, including its status, configuration, and metadata.</p>",
      "readonly":true
    },
    "GetAutomatedReasoningPolicyBuildWorkflowResultAssets":{
      "name":"GetAutomatedReasoningPolicyBuildWorkflowResultAssets",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/result-assets",
        "responseCode":200
      },
      "input":{"shape":"GetAutomatedReasoningPolicyBuildWorkflowResultAssetsRequest"},
      "output":{"shape":"GetAutomatedReasoningPolicyBuildWorkflowResultAssetsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves the resulting assets from a completed Automated Reasoning policy build workflow, including build logs, quality reports, and generated policy artifacts.</p>",
      "readonly":true
    },
    "GetAutomatedReasoningPolicyNextScenario":{
      "name":"GetAutomatedReasoningPolicyNextScenario",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/scenarios",
        "responseCode":200
      },
      "input":{"shape":"GetAutomatedReasoningPolicyNextScenarioRequest"},
      "output":{"shape":"GetAutomatedReasoningPolicyNextScenarioResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves the next test scenario for validating an Automated Reasoning policy. This is used during the interactive policy refinement process to test policy behavior.</p>",
      "readonly":true
    },
    "GetAutomatedReasoningPolicyTestCase":{
      "name":"GetAutomatedReasoningPolicyTestCase",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/test-cases/{testCaseId}",
        "responseCode":200
      },
      "input":{"shape":"GetAutomatedReasoningPolicyTestCaseRequest"},
      "output":{"shape":"GetAutomatedReasoningPolicyTestCaseResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves details about a specific Automated Reasoning policy test.</p>",
      "readonly":true
    },
    "GetAutomatedReasoningPolicyTestResult":{
      "name":"GetAutomatedReasoningPolicyTestResult",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/test-cases/{testCaseId}/test-results",
        "responseCode":200
      },
      "input":{"shape":"GetAutomatedReasoningPolicyTestResultRequest"},
      "output":{"shape":"GetAutomatedReasoningPolicyTestResultResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves the test result for a specific Automated Reasoning policy test. Returns detailed validation findings and execution status.</p>",
      "readonly":true
    },
    "GetCustomModel":{
      "name":"GetCustomModel",
      "http":{
        "method":"GET",
        "requestUri":"/custom-models/{modelIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetCustomModelRequest"},
      "output":{"shape":"GetCustomModelResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get the properties associated with a Amazon Bedrock custom model that you have created. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "GetCustomModelDeployment":{
      "name":"GetCustomModelDeployment",
      "http":{
        "method":"GET",
        "requestUri":"/model-customization/custom-model-deployments/{customModelDeploymentIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetCustomModelDeploymentRequest"},
      "output":{"shape":"GetCustomModelDeploymentResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves information about a custom model deployment, including its status, configuration, and metadata. Use this operation to monitor the deployment status and retrieve details needed for inference requests.</p> <p>The following actions are related to the <code>GetCustomModelDeployment</code> operation:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html\">CreateCustomModelDeployment</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModelDeployments.html\">ListCustomModelDeployments</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteCustomModelDeployment.html\">DeleteCustomModelDeployment</a> </p> </li> </ul>",
      "readonly":true
    },
    "GetEvaluationJob":{
      "name":"GetEvaluationJob",
      "http":{
        "method":"GET",
        "requestUri":"/evaluation-jobs/{jobIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetEvaluationJobRequest"},
      "output":{"shape":"GetEvaluationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Gets information about an evaluation job, such as the status of the job.</p>",
      "readonly":true
    },
    "GetFoundationModel":{
      "name":"GetFoundationModel",
      "http":{
        "method":"GET",
        "requestUri":"/foundation-models/{modelIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetFoundationModelRequest"},
      "output":{"shape":"GetFoundationModelResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get details about a Amazon Bedrock foundation model.</p>",
      "readonly":true
    },
    "GetFoundationModelAvailability":{
      "name":"GetFoundationModelAvailability",
      "http":{
        "method":"GET",
        "requestUri":"/foundation-model-availability/{modelId}",
        "responseCode":200
      },
      "input":{"shape":"GetFoundationModelAvailabilityRequest"},
      "output":{"shape":"GetFoundationModelAvailabilityResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get information about the Foundation model availability.</p>",
      "readonly":true
    },
    "GetGuardrail":{
      "name":"GetGuardrail",
      "http":{
        "method":"GET",
        "requestUri":"/guardrails/{guardrailIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetGuardrailRequest"},
      "output":{"shape":"GetGuardrailResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Gets details about a guardrail. If you don't specify a version, the response returns details for the <code>DRAFT</code> version.</p>",
      "readonly":true
    },
    "GetImportedModel":{
      "name":"GetImportedModel",
      "http":{
        "method":"GET",
        "requestUri":"/imported-models/{modelIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetImportedModelRequest"},
      "output":{"shape":"GetImportedModelResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Gets properties associated with a customized model you imported. </p>",
      "readonly":true
    },
    "GetInferenceProfile":{
      "name":"GetInferenceProfile",
      "http":{
        "method":"GET",
        "requestUri":"/inference-profiles/{inferenceProfileIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetInferenceProfileRequest"},
      "output":{"shape":"GetInferenceProfileResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Gets information about an inference profile. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html\">Increase throughput and resilience with cross-region inference in Amazon Bedrock</a>. in the Amazon Bedrock User Guide.</p>",
      "readonly":true
    },
    "GetMarketplaceModelEndpoint":{
      "name":"GetMarketplaceModelEndpoint",
      "http":{
        "method":"GET",
        "requestUri":"/marketplace-model/endpoints/{endpointArn}",
        "responseCode":200
      },
      "input":{"shape":"GetMarketplaceModelEndpointRequest"},
      "output":{"shape":"GetMarketplaceModelEndpointResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves details about a specific endpoint for a model from Amazon Bedrock Marketplace.</p>",
      "readonly":true
    },
    "GetModelCopyJob":{
      "name":"GetModelCopyJob",
      "http":{
        "method":"GET",
        "requestUri":"/model-copy-jobs/{jobArn}",
        "responseCode":200
      },
      "input":{"shape":"GetModelCopyJobRequest"},
      "output":{"shape":"GetModelCopyJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves information about a model copy job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/copy-model.html\">Copy models to be used in other regions</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "GetModelCustomizationJob":{
      "name":"GetModelCustomizationJob",
      "http":{
        "method":"GET",
        "requestUri":"/model-customization-jobs/{jobIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetModelCustomizationJobRequest"},
      "output":{"shape":"GetModelCustomizationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves the properties associated with a model-customization job, including the status of the job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "GetModelImportJob":{
      "name":"GetModelImportJob",
      "http":{
        "method":"GET",
        "requestUri":"/model-import-jobs/{jobIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetModelImportJobRequest"},
      "output":{"shape":"GetModelImportJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves the properties associated with import model job, including the status of the job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html\">Import a customized model</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "GetModelInvocationJob":{
      "name":"GetModelInvocationJob",
      "http":{
        "method":"GET",
        "requestUri":"/model-invocation-job/{jobIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetModelInvocationJobRequest"},
      "output":{"shape":"GetModelInvocationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Gets details about a batch inference job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-inference-monitor\">Monitor batch inference jobs</a> </p>",
      "readonly":true
    },
    "GetModelInvocationLoggingConfiguration":{
      "name":"GetModelInvocationLoggingConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/logging/modelinvocations",
        "responseCode":200
      },
      "input":{"shape":"GetModelInvocationLoggingConfigurationRequest"},
      "output":{"shape":"GetModelInvocationLoggingConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get the current configuration values for model invocation logging.</p>",
      "readonly":true
    },
    "GetPromptRouter":{
      "name":"GetPromptRouter",
      "http":{
        "method":"GET",
        "requestUri":"/prompt-routers/{promptRouterArn}",
        "responseCode":200
      },
      "input":{"shape":"GetPromptRouterRequest"},
      "output":{"shape":"GetPromptRouterResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves details about a prompt router.</p>",
      "readonly":true
    },
    "GetProvisionedModelThroughput":{
      "name":"GetProvisionedModelThroughput",
      "http":{
        "method":"GET",
        "requestUri":"/provisioned-model-throughput/{provisionedModelId}",
        "responseCode":200
      },
      "input":{"shape":"GetProvisionedModelThroughputRequest"},
      "output":{"shape":"GetProvisionedModelThroughputResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Returns details for a Provisioned Throughput. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html\">Provisioned Throughput</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "GetResourcePolicy":{
      "name":"GetResourcePolicy",
      "http":{
        "method":"GET",
        "requestUri":"/resource-policy/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"GetResourcePolicyRequest"},
      "output":{"shape":"GetResourcePolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Gets the resource policy document for a Bedrock resource</p>",
      "readonly":true
    },
    "GetUseCaseForModelAccess":{
      "name":"GetUseCaseForModelAccess",
      "http":{
        "method":"GET",
        "requestUri":"/use-case-for-model-access",
        "responseCode":200
      },
      "input":{"shape":"GetUseCaseForModelAccessRequest"},
      "output":{"shape":"GetUseCaseForModelAccessResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get usecase for model access.</p>",
      "readonly":true
    },
    "ListAutomatedReasoningPolicies":{
      "name":"ListAutomatedReasoningPolicies",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies",
        "responseCode":200
      },
      "input":{"shape":"ListAutomatedReasoningPoliciesRequest"},
      "output":{"shape":"ListAutomatedReasoningPoliciesResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists all Automated Reasoning policies in your account, with optional filtering by policy ARN. This helps you manage and discover existing policies.</p>",
      "readonly":true
    },
    "ListAutomatedReasoningPolicyBuildWorkflows":{
      "name":"ListAutomatedReasoningPolicyBuildWorkflows",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows",
        "responseCode":200
      },
      "input":{"shape":"ListAutomatedReasoningPolicyBuildWorkflowsRequest"},
      "output":{"shape":"ListAutomatedReasoningPolicyBuildWorkflowsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists all build workflows for an Automated Reasoning policy, showing the history of policy creation and modification attempts.</p>",
      "readonly":true
    },
    "ListAutomatedReasoningPolicyTestCases":{
      "name":"ListAutomatedReasoningPolicyTestCases",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/test-cases",
        "responseCode":200
      },
      "input":{"shape":"ListAutomatedReasoningPolicyTestCasesRequest"},
      "output":{"shape":"ListAutomatedReasoningPolicyTestCasesResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists tests for an Automated Reasoning policy. We recommend using pagination to ensure that the operation returns quickly and successfully.</p>",
      "readonly":true
    },
    "ListAutomatedReasoningPolicyTestResults":{
      "name":"ListAutomatedReasoningPolicyTestResults",
      "http":{
        "method":"GET",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/test-results",
        "responseCode":200
      },
      "input":{"shape":"ListAutomatedReasoningPolicyTestResultsRequest"},
      "output":{"shape":"ListAutomatedReasoningPolicyTestResultsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists test results for an Automated Reasoning policy, showing how the policy performed against various test scenarios and validation checks.</p>",
      "readonly":true
    },
    "ListCustomModelDeployments":{
      "name":"ListCustomModelDeployments",
      "http":{
        "method":"GET",
        "requestUri":"/model-customization/custom-model-deployments",
        "responseCode":200
      },
      "input":{"shape":"ListCustomModelDeploymentsRequest"},
      "output":{"shape":"ListCustomModelDeploymentsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists custom model deployments in your account. You can filter the results by creation time, name, status, and associated model. Use this operation to manage and monitor your custom model deployments.</p> <p>We recommend using pagination to ensure that the operation returns quickly and successfully.</p> <p>The following actions are related to the <code>ListCustomModelDeployments</code> operation:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html\">CreateCustomModelDeployment</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetCustomModelDeployment.html\">GetCustomModelDeployment</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteCustomModelDeployment.html\">DeleteCustomModelDeployment</a> </p> </li> </ul>",
      "readonly":true
    },
    "ListCustomModels":{
      "name":"ListCustomModels",
      "http":{
        "method":"GET",
        "requestUri":"/custom-models",
        "responseCode":200
      },
      "input":{"shape":"ListCustomModelsRequest"},
      "output":{"shape":"ListCustomModelsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Returns a list of the custom models that you have created with the <code>CreateModelCustomizationJob</code> operation.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "ListEnforcedGuardrailsConfiguration":{
      "name":"ListEnforcedGuardrailsConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/enforcedGuardrailsConfiguration",
        "responseCode":200
      },
      "input":{"shape":"ListEnforcedGuardrailsConfigurationRequest"},
      "output":{"shape":"ListEnforcedGuardrailsConfigurationResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists the account-level enforced guardrail configurations.</p>",
      "readonly":true
    },
    "ListEvaluationJobs":{
      "name":"ListEvaluationJobs",
      "http":{
        "method":"GET",
        "requestUri":"/evaluation-jobs",
        "responseCode":200
      },
      "input":{"shape":"ListEvaluationJobsRequest"},
      "output":{"shape":"ListEvaluationJobsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists all existing evaluation jobs.</p>",
      "readonly":true
    },
    "ListFoundationModelAgreementOffers":{
      "name":"ListFoundationModelAgreementOffers",
      "http":{
        "method":"GET",
        "requestUri":"/list-foundation-model-agreement-offers/{modelId}",
        "responseCode":200
      },
      "input":{"shape":"ListFoundationModelAgreementOffersRequest"},
      "output":{"shape":"ListFoundationModelAgreementOffersResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get the offers associated with the specified model.</p>",
      "readonly":true
    },
    "ListFoundationModels":{
      "name":"ListFoundationModels",
      "http":{
        "method":"GET",
        "requestUri":"/foundation-models",
        "responseCode":200
      },
      "input":{"shape":"ListFoundationModelsRequest"},
      "output":{"shape":"ListFoundationModelsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists Amazon Bedrock foundation models that you can use. You can filter the results with the request parameters. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/foundation-models.html\">Foundation models</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "ListGuardrails":{
      "name":"ListGuardrails",
      "http":{
        "method":"GET",
        "requestUri":"/guardrails",
        "responseCode":200
      },
      "input":{"shape":"ListGuardrailsRequest"},
      "output":{"shape":"ListGuardrailsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists details about all the guardrails in an account. To list the <code>DRAFT</code> version of all your guardrails, don't specify the <code>guardrailIdentifier</code> field. To list all versions of a guardrail, specify the ARN of the guardrail in the <code>guardrailIdentifier</code> field.</p> <p>You can set the maximum number of results to return in a response in the <code>maxResults</code> field. If there are more results than the number you set, the response returns a <code>nextToken</code> that you can send in another <code>ListGuardrails</code> request to see the next batch of results.</p>",
      "readonly":true
    },
    "ListImportedModels":{
      "name":"ListImportedModels",
      "http":{
        "method":"GET",
        "requestUri":"/imported-models",
        "responseCode":200
      },
      "input":{"shape":"ListImportedModelsRequest"},
      "output":{"shape":"ListImportedModelsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Returns a list of models you've imported. You can filter the results to return based on one or more criteria. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html\">Import a customized model</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "ListInferenceProfiles":{
      "name":"ListInferenceProfiles",
      "http":{
        "method":"GET",
        "requestUri":"/inference-profiles",
        "responseCode":200
      },
      "input":{"shape":"ListInferenceProfilesRequest"},
      "output":{"shape":"ListInferenceProfilesResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Returns a list of inference profiles that you can use. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html\">Increase throughput and resilience with cross-region inference in Amazon Bedrock</a>. in the Amazon Bedrock User Guide.</p>",
      "readonly":true
    },
    "ListMarketplaceModelEndpoints":{
      "name":"ListMarketplaceModelEndpoints",
      "http":{
        "method":"GET",
        "requestUri":"/marketplace-model/endpoints",
        "responseCode":200
      },
      "input":{"shape":"ListMarketplaceModelEndpointsRequest"},
      "output":{"shape":"ListMarketplaceModelEndpointsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists the endpoints for models from Amazon Bedrock Marketplace in your Amazon Web Services account.</p>",
      "readonly":true
    },
    "ListModelCopyJobs":{
      "name":"ListModelCopyJobs",
      "http":{
        "method":"GET",
        "requestUri":"/model-copy-jobs",
        "responseCode":200
      },
      "input":{"shape":"ListModelCopyJobsRequest"},
      "output":{"shape":"ListModelCopyJobsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Returns a list of model copy jobs that you have submitted. You can filter the jobs to return based on one or more criteria. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/copy-model.html\">Copy models to be used in other regions</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "ListModelCustomizationJobs":{
      "name":"ListModelCustomizationJobs",
      "http":{
        "method":"GET",
        "requestUri":"/model-customization-jobs",
        "responseCode":200
      },
      "input":{"shape":"ListModelCustomizationJobsRequest"},
      "output":{"shape":"ListModelCustomizationJobsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on one or more criteria.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "ListModelImportJobs":{
      "name":"ListModelImportJobs",
      "http":{
        "method":"GET",
        "requestUri":"/model-import-jobs",
        "responseCode":200
      },
      "input":{"shape":"ListModelImportJobsRequest"},
      "output":{"shape":"ListModelImportJobsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Returns a list of import jobs you've submitted. You can filter the results to return based on one or more criteria. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html\">Import a customized model</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "ListModelInvocationJobs":{
      "name":"ListModelInvocationJobs",
      "http":{
        "method":"GET",
        "requestUri":"/model-invocation-jobs",
        "responseCode":200
      },
      "input":{"shape":"ListModelInvocationJobsRequest"},
      "output":{"shape":"ListModelInvocationJobsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists all batch inference jobs in the account. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-inference-view.html\">View details about a batch inference job</a>.</p>",
      "readonly":true
    },
    "ListPromptRouters":{
      "name":"ListPromptRouters",
      "http":{
        "method":"GET",
        "requestUri":"/prompt-routers",
        "responseCode":200
      },
      "input":{"shape":"ListPromptRoutersRequest"},
      "output":{"shape":"ListPromptRoutersResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Retrieves a list of prompt routers.</p>",
      "readonly":true
    },
    "ListProvisionedModelThroughputs":{
      "name":"ListProvisionedModelThroughputs",
      "http":{
        "method":"GET",
        "requestUri":"/provisioned-model-throughputs",
        "responseCode":200
      },
      "input":{"shape":"ListProvisionedModelThroughputsRequest"},
      "output":{"shape":"ListProvisionedModelThroughputsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists the Provisioned Throughputs in the account. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html\">Provisioned Throughput</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"POST",
        "requestUri":"/listTagsForResource",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>List the tags associated with the specified resource.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Tagging resources</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>"
    },
    "PutEnforcedGuardrailConfiguration":{
      "name":"PutEnforcedGuardrailConfiguration",
      "http":{
        "method":"PUT",
        "requestUri":"/enforcedGuardrailsConfiguration",
        "responseCode":200
      },
      "input":{"shape":"PutEnforcedGuardrailConfigurationRequest"},
      "output":{"shape":"PutEnforcedGuardrailConfigurationResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Sets the account-level enforced guardrail configuration.</p>",
      "idempotent":true
    },
    "PutModelInvocationLoggingConfiguration":{
      "name":"PutModelInvocationLoggingConfiguration",
      "http":{
        "method":"PUT",
        "requestUri":"/logging/modelinvocations",
        "responseCode":200
      },
      "input":{"shape":"PutModelInvocationLoggingConfigurationRequest"},
      "output":{"shape":"PutModelInvocationLoggingConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Set the configuration values for model invocation logging.</p>",
      "idempotent":true
    },
    "PutResourcePolicy":{
      "name":"PutResourcePolicy",
      "http":{
        "method":"POST",
        "requestUri":"/resource-policy",
        "responseCode":201
      },
      "input":{"shape":"PutResourcePolicyRequest"},
      "output":{"shape":"PutResourcePolicyResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Adds a resource policy for a Bedrock resource.</p>",
      "idempotent":true
    },
    "PutUseCaseForModelAccess":{
      "name":"PutUseCaseForModelAccess",
      "http":{
        "method":"POST",
        "requestUri":"/use-case-for-model-access",
        "responseCode":201
      },
      "input":{"shape":"PutUseCaseForModelAccessRequest"},
      "output":{"shape":"PutUseCaseForModelAccessResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Put usecase for model access.</p>"
    },
    "RegisterMarketplaceModelEndpoint":{
      "name":"RegisterMarketplaceModelEndpoint",
      "http":{
        "method":"POST",
        "requestUri":"/marketplace-model/endpoints/{endpointIdentifier}/registration",
        "responseCode":200
      },
      "input":{"shape":"RegisterMarketplaceModelEndpointRequest"},
      "output":{"shape":"RegisterMarketplaceModelEndpointResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Registers an existing Amazon SageMaker endpoint with Amazon Bedrock Marketplace, allowing it to be used with Amazon Bedrock APIs.</p>"
    },
    "StartAutomatedReasoningPolicyBuildWorkflow":{
      "name":"StartAutomatedReasoningPolicyBuildWorkflow",
      "http":{
        "method":"POST",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowType}/start",
        "responseCode":200
      },
      "input":{"shape":"StartAutomatedReasoningPolicyBuildWorkflowRequest"},
      "output":{"shape":"StartAutomatedReasoningPolicyBuildWorkflowResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceInUseException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Starts a new build workflow for an Automated Reasoning policy. This initiates the process of analyzing source documents and generating policy rules, variables, and types.</p>"
    },
    "StartAutomatedReasoningPolicyTestWorkflow":{
      "name":"StartAutomatedReasoningPolicyTestWorkflow",
      "http":{
        "method":"POST",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/test-workflows",
        "responseCode":200
      },
      "input":{"shape":"StartAutomatedReasoningPolicyTestWorkflowRequest"},
      "output":{"shape":"StartAutomatedReasoningPolicyTestWorkflowResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceInUseException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Initiates a test workflow to validate Automated Reasoning policy tests. The workflow executes the specified tests against the policy and generates validation results.</p>"
    },
    "StopEvaluationJob":{
      "name":"StopEvaluationJob",
      "http":{
        "method":"POST",
        "requestUri":"/evaluation-job/{jobIdentifier}/stop",
        "responseCode":200
      },
      "input":{"shape":"StopEvaluationJobRequest"},
      "output":{"shape":"StopEvaluationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Stops an evaluation job that is current being created or running.</p>"
    },
    "StopModelCustomizationJob":{
      "name":"StopModelCustomizationJob",
      "http":{
        "method":"POST",
        "requestUri":"/model-customization-jobs/{jobIdentifier}/stop",
        "responseCode":200
      },
      "input":{"shape":"StopModelCustomizationJobRequest"},
      "output":{"shape":"StopModelCustomizationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Stops an active model customization job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "idempotent":true
    },
    "StopModelInvocationJob":{
      "name":"StopModelInvocationJob",
      "http":{
        "method":"POST",
        "requestUri":"/model-invocation-job/{jobIdentifier}/stop",
        "responseCode":200
      },
      "input":{"shape":"StopModelInvocationJobRequest"},
      "output":{"shape":"StopModelInvocationJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Stops a batch inference job. You're only charged for tokens that were already processed. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-inference-stop.html\">Stop a batch inference job</a>.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tagResource",
        "responseCode":200
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Associate tags with a resource. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Tagging resources</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"POST",
        "requestUri":"/untagResource",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Remove one or more tags from a resource. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Tagging resources</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>"
    },
    "UpdateAutomatedReasoningPolicy":{
      "name":"UpdateAutomatedReasoningPolicy",
      "http":{
        "method":"PATCH",
        "requestUri":"/automated-reasoning-policies/{policyArn}",
        "responseCode":200
      },
      "input":{"shape":"UpdateAutomatedReasoningPolicyRequest"},
      "output":{"shape":"UpdateAutomatedReasoningPolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"TooManyTagsException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Updates an existing Automated Reasoning policy with new rules, variables, or configuration. This creates a new version of the policy while preserving the previous version.</p>",
      "idempotent":true
    },
    "UpdateAutomatedReasoningPolicyAnnotations":{
      "name":"UpdateAutomatedReasoningPolicyAnnotations",
      "http":{
        "method":"PATCH",
        "requestUri":"/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/annotations",
        "responseCode":200
      },
      "input":{"shape":"UpdateAutomatedReasoningPolicyAnnotationsRequest"},
      "output":{"shape":"UpdateAutomatedReasoningPolicyAnnotationsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Updates the annotations for an Automated Reasoning policy build workflow. This allows you to modify extracted rules, variables, and types before finalizing the policy.</p>"
    },
    "UpdateAutomatedReasoningPolicyTestCase":{
      "name":"UpdateAutomatedReasoningPolicyTestCase",
      "http":{
        "method":"PATCH",
        "requestUri":"/automated-reasoning-policies/{policyArn}/test-cases/{testCaseId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateAutomatedReasoningPolicyTestCaseRequest"},
      "output":{"shape":"UpdateAutomatedReasoningPolicyTestCaseResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceInUseException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Updates an existing Automated Reasoning policy test. You can modify the content, query, expected result, and confidence threshold.</p>",
      "idempotent":true
    },
    "UpdateCustomModelDeployment":{
      "name":"UpdateCustomModelDeployment",
      "http":{
        "method":"PATCH",
        "requestUri":"/model-customization/custom-model-deployments/{customModelDeploymentIdentifier}",
        "responseCode":202
      },
      "input":{"shape":"UpdateCustomModelDeploymentRequest"},
      "output":{"shape":"UpdateCustomModelDeploymentResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> Updates a custom model deployment with a new custom model. This allows you to deploy updated models without creating new deployment endpoints. </p>",
      "idempotent":true
    },
    "UpdateGuardrail":{
      "name":"UpdateGuardrail",
      "http":{
        "method":"PUT",
        "requestUri":"/guardrails/{guardrailIdentifier}",
        "responseCode":202
      },
      "input":{"shape":"UpdateGuardrailRequest"},
      "output":{"shape":"UpdateGuardrailResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Updates a guardrail with the values you specify.</p> <ul> <li> <p>Specify a <code>name</code> and optional <code>description</code>.</p> </li> <li> <p>Specify messages for when the guardrail successfully blocks a prompt or a model response in the <code>blockedInputMessaging</code> and <code>blockedOutputsMessaging</code> fields.</p> </li> <li> <p>Specify topics for the guardrail to deny in the <code>topicPolicyConfig</code> object. Each <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GuardrailTopicConfig.html\">GuardrailTopicConfig</a> object in the <code>topicsConfig</code> list pertains to one topic.</p> <ul> <li> <p>Give a <code>name</code> and <code>description</code> so that the guardrail can properly identify the topic.</p> </li> <li> <p>Specify <code>DENY</code> in the <code>type</code> field.</p> </li> <li> <p>(Optional) Provide up to five prompts that you would categorize as belonging to the topic in the <code>examples</code> list.</p> </li> </ul> </li> <li> <p>Specify filter strengths for the harmful categories defined in Amazon Bedrock in the <code>contentPolicyConfig</code> object. Each <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GuardrailContentFilterConfig.html\">GuardrailContentFilterConfig</a> object in the <code>filtersConfig</code> list pertains to a harmful category. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-content-filters\">Content filters</a>. For more information about the fields in a content filter, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GuardrailContentFilterConfig.html\">GuardrailContentFilterConfig</a>.</p> <ul> <li> <p>Specify the category in the <code>type</code> field.</p> </li> <li> <p>Specify the strength of the filter for prompts in the <code>inputStrength</code> field and for model responses in the <code>strength</code> field of the <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GuardrailContentFilterConfig.html\">GuardrailContentFilterConfig</a>.</p> </li> </ul> </li> <li> <p>(Optional) For security, include the ARN of a KMS key in the <code>kmsKeyId</code> field.</p> </li> </ul>",
      "idempotent":true
    },
    "UpdateMarketplaceModelEndpoint":{
      "name":"UpdateMarketplaceModelEndpoint",
      "http":{
        "method":"PATCH",
        "requestUri":"/marketplace-model/endpoints/{endpointArn}",
        "responseCode":200
      },
      "input":{"shape":"UpdateMarketplaceModelEndpointRequest"},
      "output":{"shape":"UpdateMarketplaceModelEndpointResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Updates the configuration of an existing endpoint for a model from Amazon Bedrock Marketplace.</p>"
    },
    "UpdateProvisionedModelThroughput":{
      "name":"UpdateProvisionedModelThroughput",
      "http":{
        "method":"PATCH",
        "requestUri":"/provisioned-model-throughput/{provisionedModelId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateProvisionedModelThroughputRequest"},
      "output":{"shape":"UpdateProvisionedModelThroughputResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Updates the name or associated model for a Provisioned Throughput. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html\">Provisioned Throughput</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AcceptEula":{"type":"boolean"},
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The request is denied because of missing access permissions.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AccountEnforcedGuardrailConfigurationId":{
      "type":"string",
      "pattern":"[a-z0-9]+"
    },
    "AccountEnforcedGuardrailInferenceInputConfiguration":{
      "type":"structure",
      "required":[
        "guardrailIdentifier",
        "guardrailVersion"
      ],
      "members":{
        "guardrailIdentifier":{
          "shape":"GuardrailIdentifier",
          "documentation":"<p>Identifier for the guardrail, could be the ID or the ARN.</p>"
        },
        "guardrailVersion":{
          "shape":"GuardrailNumericalVersion",
          "documentation":"<p>Numerical guardrail version.</p>"
        },
        "selectiveContentGuarding":{
          "shape":"SelectiveContentGuarding",
          "documentation":"<p>Selective content guarding controls for enforced guardrails.</p>"
        },
        "modelEnforcement":{
          "shape":"ModelEnforcement",
          "documentation":"<p>Model-specific information for the enforced guardrail configuration. If not present, the configuration is enforced on all models</p>"
        }
      },
      "documentation":"<p>Account-level enforced guardrail input configuration.</p>"
    },
    "AccountEnforcedGuardrailOutputConfiguration":{
      "type":"structure",
      "members":{
        "configId":{
          "shape":"AccountEnforcedGuardrailConfigurationId",
          "documentation":"<p>Unique ID for the account enforced configuration.</p>"
        },
        "guardrailArn":{
          "shape":"GuardrailArn",
          "documentation":"<p>ARN representation for the guardrail.</p>"
        },
        "guardrailId":{
          "shape":"GuardrailId",
          "documentation":"<p>Unique ID for the guardrail.</p>"
        },
        "inputTags":{
          "shape":"InputTags",
          "documentation":"<p>Whether to honor or ignore input tags at runtime.</p>",
          "deprecated":true,
          "deprecatedMessage":"This field is being deprecated and will be removed once customers transition their existing policies to the new schema.",
          "deprecatedSince":"2026-04-03"
        },
        "selectiveContentGuarding":{
          "shape":"SelectiveContentGuarding",
          "documentation":"<p>Selective content guarding controls for enforced guardrails.</p>"
        },
        "guardrailVersion":{
          "shape":"GuardrailNumericalVersion",
          "documentation":"<p>Numerical guardrail version.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp.</p>"
        },
        "createdBy":{
          "shape":"String",
          "documentation":"<p>The ARN of the role used to update the configuration.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp.</p>"
        },
        "updatedBy":{
          "shape":"String",
          "documentation":"<p>The ARN of the role used to update the configuration.</p>"
        },
        "owner":{
          "shape":"ConfigurationOwner",
          "documentation":"<p>Configuration owner type.</p>"
        },
        "modelEnforcement":{
          "shape":"ModelEnforcement",
          "documentation":"<p>Model-specific information for the enforced guardrail configuration.</p>"
        }
      },
      "documentation":"<p>Account enforced guardrail output configuration.</p>"
    },
    "AccountEnforcedGuardrailsOutputConfiguration":{
      "type":"list",
      "member":{"shape":"AccountEnforcedGuardrailOutputConfiguration"},
      "max":1,
      "min":0
    },
    "AccountId":{
      "type":"string",
      "pattern":"[0-9]{12}"
    },
    "AcknowledgementFormDataBody":{
      "type":"blob",
      "max":16384,
      "min":10
    },
    "AdditionalModelRequestFields":{
      "type":"map",
      "key":{"shape":"AdditionalModelRequestFieldsKey"},
      "value":{"shape":"AdditionalModelRequestFieldsValue"}
    },
    "AdditionalModelRequestFieldsKey":{
      "type":"string",
      "max":100,
      "min":1
    },
    "AdditionalModelRequestFieldsValue":{
      "type":"structure",
      "members":{},
      "document":true
    },
    "AgreementAvailability":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"AgreementStatus",
          "documentation":"<p>Status of the agreement.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>Error message.</p>"
        }
      },
      "documentation":"<p>Information about the agreement availability</p>"
    },
    "AgreementStatus":{
      "type":"string",
      "enum":[
        "AVAILABLE",
        "PENDING",
        "NOT_AVAILABLE",
        "ERROR"
      ]
    },
    "ApplicationType":{
      "type":"string",
      "enum":[
        "ModelEvaluation",
        "RagEvaluation"
      ]
    },
    "Arn":{
      "type":"string",
      "max":2048,
      "min":0
    },
    "AttributeType":{
      "type":"string",
      "enum":[
        "STRING",
        "NUMBER",
        "BOOLEAN",
        "STRING_LIST"
      ]
    },
    "AuthorizationStatus":{
      "type":"string",
      "enum":[
        "AUTHORIZED",
        "NOT_AUTHORIZED"
      ]
    },
    "AutomatedEvaluationConfig":{
      "type":"structure",
      "required":["datasetMetricConfigs"],
      "members":{
        "datasetMetricConfigs":{
          "shape":"EvaluationDatasetMetricConfigs",
          "documentation":"<p>Configuration details of the prompt datasets and metrics you want to use for your evaluation job.</p>"
        },
        "evaluatorModelConfig":{
          "shape":"EvaluatorModelConfig",
          "documentation":"<p>Contains the evaluator model configuration details. <code>EvaluatorModelConfig</code> is required for evaluation jobs that use a knowledge base or in model evaluation job that use a model as judge. This model computes all evaluation related metrics.</p>"
        },
        "customMetricConfig":{
          "shape":"AutomatedEvaluationCustomMetricConfig",
          "documentation":"<p>Defines the configuration of custom metrics to be used in an evaluation job.</p>"
        }
      },
      "documentation":"<p>The configuration details of an automated evaluation job. The <code>EvaluationDatasetMetricConfig</code> object is used to specify the prompt datasets, task type, and metric names.</p>"
    },
    "AutomatedEvaluationCustomMetricConfig":{
      "type":"structure",
      "required":[
        "customMetrics",
        "evaluatorModelConfig"
      ],
      "members":{
        "customMetrics":{
          "shape":"AutomatedEvaluationCustomMetrics",
          "documentation":"<p>Defines a list of custom metrics to be used in an Amazon Bedrock evaluation job.</p>"
        },
        "evaluatorModelConfig":{
          "shape":"CustomMetricEvaluatorModelConfig",
          "documentation":"<p>Configuration of the evaluator model you want to use to evaluate custom metrics in an Amazon Bedrock evaluation job.</p>"
        }
      },
      "documentation":"<p>Defines the configuration of custom metrics to be used in an evaluation job. To learn more about using custom metrics in Amazon Bedrock evaluation jobs, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-custom-metrics-prompt-formats.html\">Create a prompt for a custom metrics (LLM-as-a-judge model evaluations)</a> and <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/kb-evaluation-custom-metrics-prompt-formats.html\">Create a prompt for a custom metrics (RAG evaluations)</a>.</p>"
    },
    "AutomatedEvaluationCustomMetricSource":{
      "type":"structure",
      "members":{
        "customMetricDefinition":{
          "shape":"CustomMetricDefinition",
          "documentation":"<p>The definition of a custom metric for use in an Amazon Bedrock evaluation job.</p>"
        }
      },
      "documentation":"<p>An array item definining a single custom metric for use in an Amazon Bedrock evaluation job.</p>",
      "union":true
    },
    "AutomatedEvaluationCustomMetrics":{
      "type":"list",
      "member":{"shape":"AutomatedEvaluationCustomMetricSource"},
      "max":10,
      "min":1
    },
    "AutomatedReasoningCheckDifferenceScenarioList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningCheckScenario"},
      "max":2,
      "min":0
    },
    "AutomatedReasoningCheckFinding":{
      "type":"structure",
      "members":{
        "valid":{
          "shape":"AutomatedReasoningCheckValidFinding",
          "documentation":"<p>Indicates that the claims are true. The claims are implied by the premises and the Automated Reasoning policy. Given the Automated Reasoning policy and premises, it is not possible for these claims to be false.</p>"
        },
        "invalid":{
          "shape":"AutomatedReasoningCheckInvalidFinding",
          "documentation":"<p>Indicates that the claims are false. The claims are not implied by the premises and Automated Reasoning policy. Furthermore, there exist different claims that are consistent with the premises and Automated Reasoning policy.</p>"
        },
        "satisfiable":{
          "shape":"AutomatedReasoningCheckSatisfiableFinding",
          "documentation":"<p>Indicates that the claims can be true or false. It depends on what assumptions are made for the claim to be implied from the premises and Automated Reasoning policy rules. In this situation, different assumptions can make input claims false and alternative claims true.</p>"
        },
        "impossible":{
          "shape":"AutomatedReasoningCheckImpossibleFinding",
          "documentation":"<p>Indicates that Automated Reasoning cannot make a statement about the claims. This can happen if the premises are logically incorrect, or if there is a conflict within the Automated Reasoning policy itself.</p>"
        },
        "translationAmbiguous":{
          "shape":"AutomatedReasoningCheckTranslationAmbiguousFinding",
          "documentation":"<p>Indicates that an ambiguity was detected in the translation, making it unsound to continue with validity checking. Additional context or follow-up questions might be needed to get translation to succeed.</p>"
        },
        "tooComplex":{
          "shape":"AutomatedReasoningCheckTooComplexFinding",
          "documentation":"<p>Indicates that the input contains too much information for Automated Reasoning to process within its latency limits.</p>"
        },
        "noTranslations":{
          "shape":"AutomatedReasoningCheckNoTranslationsFinding",
          "documentation":"<p>Identifies that some or all of the input prompt wasn't translated into logic. This can happen if the input isn't relevant to the Automated Reasoning policy, or if the policy doesn't have variables to model relevant input.</p>"
        }
      },
      "documentation":"<p>Represents the result of an Automated Reasoning validation check, indicating whether the content is logically valid, invalid, or falls into other categories based on the policy rules.</p>",
      "union":true
    },
    "AutomatedReasoningCheckFindingList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningCheckFinding"},
      "max":20,
      "min":0
    },
    "AutomatedReasoningCheckImpossibleFinding":{
      "type":"structure",
      "members":{
        "translation":{
          "shape":"AutomatedReasoningCheckTranslation",
          "documentation":"<p>The logical translation of the input that this finding evaluates.</p>"
        },
        "contradictingRules":{
          "shape":"AutomatedReasoningCheckRuleList",
          "documentation":"<p>The automated reasoning policy rules that contradict the claims and/or premises in the input.</p>"
        },
        "logicWarning":{
          "shape":"AutomatedReasoningCheckLogicWarning",
          "documentation":"<p>Indication of a logic issue with the translation without needing to consider the automated reasoning policy rules.</p>"
        }
      },
      "documentation":"<p>Indicates that no valid claims can be made due to logical contradictions in the premises or rules.</p>"
    },
    "AutomatedReasoningCheckInputTextReference":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"AutomatedReasoningNaturalLanguageStatementContent",
          "documentation":"<p>The specific text from the original input that this reference points to.</p>"
        }
      },
      "documentation":"<p>References a portion of the original input text that corresponds to logical elements.</p>"
    },
    "AutomatedReasoningCheckInputTextReferenceList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningCheckInputTextReference"}
    },
    "AutomatedReasoningCheckInvalidFinding":{
      "type":"structure",
      "members":{
        "translation":{
          "shape":"AutomatedReasoningCheckTranslation",
          "documentation":"<p>The logical translation of the input that this finding invalidates.</p>"
        },
        "contradictingRules":{
          "shape":"AutomatedReasoningCheckRuleList",
          "documentation":"<p>The automated reasoning policy rules that contradict the claims in the input.</p>"
        },
        "logicWarning":{
          "shape":"AutomatedReasoningCheckLogicWarning",
          "documentation":"<p>Indication of a logic issue with the translation without needing to consider the automated reasoning policy rules.</p>"
        }
      },
      "documentation":"<p>Indicates that the claims are logically false and contradictory to the established rules or premises.</p>"
    },
    "AutomatedReasoningCheckLogicWarning":{
      "type":"structure",
      "members":{
        "type":{
          "shape":"AutomatedReasoningCheckLogicWarningType",
          "documentation":"<p>The category of the detected logical issue, such as statements that are always true or always false.</p>"
        },
        "premises":{
          "shape":"AutomatedReasoningLogicStatementList",
          "documentation":"<p>The logical statements that serve as premises under which the claims are validated.</p>"
        },
        "claims":{
          "shape":"AutomatedReasoningLogicStatementList",
          "documentation":"<p>The logical statements that are validated while assuming the policy and premises.</p>"
        }
      },
      "documentation":"<p>Identifies logical issues in the translated statements that exist independent of any policy rules, such as statements that are always true or always false.</p>"
    },
    "AutomatedReasoningCheckLogicWarningType":{
      "type":"string",
      "enum":[
        "ALWAYS_TRUE",
        "ALWAYS_FALSE"
      ]
    },
    "AutomatedReasoningCheckNoTranslationsFinding":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Indicates that no relevant logical information could be extracted from the input for validation.</p>"
    },
    "AutomatedReasoningCheckResult":{
      "type":"string",
      "enum":[
        "VALID",
        "INVALID",
        "SATISFIABLE",
        "IMPOSSIBLE",
        "TRANSLATION_AMBIGUOUS",
        "TOO_COMPLEX",
        "NO_TRANSLATION"
      ]
    },
    "AutomatedReasoningCheckRule":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleId",
          "documentation":"<p>The unique identifier of the automated reasoning rule.</p>"
        },
        "policyVersionArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The ARN of the automated reasoning policy version that contains this rule.</p>"
        }
      },
      "documentation":"<p>References a specific automated reasoning policy rule that was applied during evaluation.</p>"
    },
    "AutomatedReasoningCheckRuleList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningCheckRule"}
    },
    "AutomatedReasoningCheckSatisfiableFinding":{
      "type":"structure",
      "members":{
        "translation":{
          "shape":"AutomatedReasoningCheckTranslation",
          "documentation":"<p>The logical translation of the input that this finding evaluates.</p>"
        },
        "claimsTrueScenario":{
          "shape":"AutomatedReasoningCheckScenario",
          "documentation":"<p>An example scenario demonstrating how the claims could be logically true.</p>"
        },
        "claimsFalseScenario":{
          "shape":"AutomatedReasoningCheckScenario",
          "documentation":"<p>An example scenario demonstrating how the claims could be logically false.</p>"
        },
        "logicWarning":{
          "shape":"AutomatedReasoningCheckLogicWarning",
          "documentation":"<p>Indication of a logic issue with the translation without needing to consider the automated reasoning policy rules.</p>"
        }
      },
      "documentation":"<p>Indicates that the claims could be either true or false depending on additional assumptions not provided in the input.</p>"
    },
    "AutomatedReasoningCheckScenario":{
      "type":"structure",
      "members":{
        "statements":{
          "shape":"AutomatedReasoningLogicStatementList",
          "documentation":"<p>List of logical assignments and statements that define this scenario.</p>"
        }
      },
      "documentation":"<p>Represents a logical scenario where claims can be evaluated as true or false, containing specific logical assignments.</p>"
    },
    "AutomatedReasoningCheckTooComplexFinding":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Indicates that the input exceeds the processing capacity due to the volume or complexity of the logical information.</p>"
    },
    "AutomatedReasoningCheckTranslation":{
      "type":"structure",
      "required":[
        "claims",
        "confidence"
      ],
      "members":{
        "premises":{
          "shape":"AutomatedReasoningLogicStatementList",
          "documentation":"<p>The logical statements that serve as the foundation or assumptions for the claims.</p>"
        },
        "claims":{
          "shape":"AutomatedReasoningLogicStatementList",
          "documentation":"<p>The logical statements that are being validated against the premises and policy rules.</p>"
        },
        "untranslatedPremises":{
          "shape":"AutomatedReasoningCheckInputTextReferenceList",
          "documentation":"<p>References to portions of the original input text that correspond to the premises but could not be fully translated.</p>"
        },
        "untranslatedClaims":{
          "shape":"AutomatedReasoningCheckInputTextReferenceList",
          "documentation":"<p>References to portions of the original input text that correspond to the claims but could not be fully translated.</p>"
        },
        "confidence":{
          "shape":"AutomatedReasoningCheckTranslationConfidence",
          "documentation":"<p>A confidence score between 0 and 1 indicating how certain the system is about the logical translation.</p>"
        }
      },
      "documentation":"<p>Contains the logical translation of natural language input into formal logical statements, including premises, claims, and confidence scores.</p>"
    },
    "AutomatedReasoningCheckTranslationAmbiguousFinding":{
      "type":"structure",
      "members":{
        "options":{
          "shape":"AutomatedReasoningCheckTranslationOptionList",
          "documentation":"<p>Different logical interpretations that were detected during translation of the input.</p>"
        },
        "differenceScenarios":{
          "shape":"AutomatedReasoningCheckDifferenceScenarioList",
          "documentation":"<p>Scenarios showing how the different translation options differ in meaning.</p>"
        }
      },
      "documentation":"<p>Indicates that the input has multiple valid logical interpretations, requiring additional context or clarification.</p>"
    },
    "AutomatedReasoningCheckTranslationConfidence":{
      "type":"double",
      "box":true,
      "max":1,
      "min":0
    },
    "AutomatedReasoningCheckTranslationList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningCheckTranslation"}
    },
    "AutomatedReasoningCheckTranslationOption":{
      "type":"structure",
      "members":{
        "translations":{
          "shape":"AutomatedReasoningCheckTranslationList",
          "documentation":"<p>Different logical interpretations that were detected during translation of the input.</p>"
        }
      },
      "documentation":"<p>Represents one possible logical interpretation of ambiguous input content.</p>"
    },
    "AutomatedReasoningCheckTranslationOptionList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningCheckTranslationOption"},
      "max":2,
      "min":0
    },
    "AutomatedReasoningCheckValidFinding":{
      "type":"structure",
      "members":{
        "translation":{
          "shape":"AutomatedReasoningCheckTranslation",
          "documentation":"<p>The logical translation of the input that this finding validates.</p>"
        },
        "claimsTrueScenario":{
          "shape":"AutomatedReasoningCheckScenario",
          "documentation":"<p>An example scenario demonstrating how the claims are logically true.</p>"
        },
        "supportingRules":{
          "shape":"AutomatedReasoningCheckRuleList",
          "documentation":"<p>The automated reasoning policy rules that support why this result is considered valid.</p>"
        },
        "logicWarning":{
          "shape":"AutomatedReasoningCheckLogicWarning",
          "documentation":"<p>Indication of a logic issue with the translation without needing to consider the automated reasoning policy rules.</p>"
        }
      },
      "documentation":"<p>Indicates that the claims are definitively true and logically implied by the premises, with no possible alternative interpretations.</p>"
    },
    "AutomatedReasoningConfidenceFilterThreshold":{
      "type":"double",
      "box":true,
      "max":1,
      "min":0
    },
    "AutomatedReasoningLogicStatement":{
      "type":"structure",
      "required":["logic"],
      "members":{
        "logic":{
          "shape":"AutomatedReasoningLogicStatementContent",
          "documentation":"<p>The formal logic representation of the statement using mathematical notation and logical operators.</p>"
        },
        "naturalLanguage":{
          "shape":"AutomatedReasoningNaturalLanguageStatementContent",
          "documentation":"<p>The natural language representation of the logical statement, providing a human-readable interpretation of the formal logic.</p>"
        }
      },
      "documentation":"<p>Represents a logical statement that can be expressed both in formal logic notation and natural language, providing dual representations for better understanding and validation.</p>"
    },
    "AutomatedReasoningLogicStatementContent":{
      "type":"string",
      "max":1000,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningLogicStatementList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningLogicStatement"}
    },
    "AutomatedReasoningNaturalLanguageStatementContent":{
      "type":"string",
      "max":1000,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyAccuracyScore":{
      "type":"double",
      "box":true,
      "max":1.0,
      "min":0.0
    },
    "AutomatedReasoningPolicyAddRuleAnnotation":{
      "type":"structure",
      "required":["expression"],
      "members":{
        "expression":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleExpression",
          "documentation":"<p>The formal logical expression that defines the rule, using mathematical notation and referencing policy variables and types.</p>"
        }
      },
      "documentation":"<p>An annotation for adding a new rule to an Automated Reasoning policy using a formal logical expression.</p>"
    },
    "AutomatedReasoningPolicyAddRuleFromNaturalLanguageAnnotation":{
      "type":"structure",
      "required":["naturalLanguage"],
      "members":{
        "naturalLanguage":{
          "shape":"AutomatedReasoningPolicyAnnotationRuleNaturalLanguage",
          "documentation":"<p>The natural language description of the rule that should be converted into a formal logical expression.</p>"
        }
      },
      "documentation":"<p>An annotation for adding a new rule to the policy by converting a natural language description into a formal logical expression.</p>"
    },
    "AutomatedReasoningPolicyAddRuleMutation":{
      "type":"structure",
      "required":["rule"],
      "members":{
        "rule":{
          "shape":"AutomatedReasoningPolicyDefinitionRule",
          "documentation":"<p>The rule definition that specifies the formal logical expression and metadata for the new rule being added to the policy.</p>"
        }
      },
      "documentation":"<p>A mutation operation that adds a new rule to the policy definition during the build process.</p>"
    },
    "AutomatedReasoningPolicyAddTypeAnnotation":{
      "type":"structure",
      "required":[
        "name",
        "description",
        "values"
      ],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeName",
          "documentation":"<p>The name of the new custom type. This name will be used to reference the type in variable definitions and rules.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeDescription",
          "documentation":"<p>A description of what the custom type represents and how it should be used in the policy.</p>"
        },
        "values":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueList",
          "documentation":"<p>The list of possible values that variables of this type can take, each with its own description and identifier.</p>"
        }
      },
      "documentation":"<p>An annotation for adding a new custom type to an Automated Reasoning policy, defining a set of possible values for variables.</p>"
    },
    "AutomatedReasoningPolicyAddTypeMutation":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"AutomatedReasoningPolicyDefinitionType",
          "documentation":"<p>The type definition that specifies the name, description, and possible values for the new custom type being added to the policy.</p>"
        }
      },
      "documentation":"<p>A mutation operation that adds a new custom type to the policy definition during the build process.</p>"
    },
    "AutomatedReasoningPolicyAddTypeValue":{
      "type":"structure",
      "required":["value"],
      "members":{
        "value":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueName",
          "documentation":"<p>The identifier or name of the new value to add to the type.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueDescription",
          "documentation":"<p>A description of what this new type value represents and when it should be used.</p>"
        }
      },
      "documentation":"<p>Represents a single value that can be added to an existing custom type in the policy.</p>"
    },
    "AutomatedReasoningPolicyAddVariableAnnotation":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "description"
      ],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableName",
          "documentation":"<p>The name of the new variable. This name will be used to reference the variable in rule expressions.</p>"
        },
        "type":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeName",
          "documentation":"<p>The type of the variable, which can be a built-in type (like string or number) or a custom type defined in the policy.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableDescription",
          "documentation":"<p>A description of what the variable represents and how it should be used in rules.</p>"
        }
      },
      "documentation":"<p>An annotation for adding a new variable to an Automated Reasoning policy, which can be used in rule expressions.</p>"
    },
    "AutomatedReasoningPolicyAddVariableMutation":{
      "type":"structure",
      "required":["variable"],
      "members":{
        "variable":{
          "shape":"AutomatedReasoningPolicyDefinitionVariable",
          "documentation":"<p>The variable definition that specifies the name, type, and description for the new variable being added to the policy.</p>"
        }
      },
      "documentation":"<p>A mutation operation that adds a new variable to the policy definition during the build process.</p>"
    },
    "AutomatedReasoningPolicyAnnotatedChunk":{
      "type":"structure",
      "required":["content"],
      "members":{
        "pageNumber":{
          "shape":"Integer",
          "documentation":"<p>The page number where this chunk begins, if the document is divided into pages.</p>"
        },
        "content":{
          "shape":"AutomatedReasoningPolicyAnnotatedContentList",
          "documentation":"<p>The lines of text contained within this chunk, each annotated with its line number.</p>"
        }
      },
      "documentation":"<p>Represents a portion of a source document with line number annotations. Chunks help organize document content for easier navigation and reference.</p>"
    },
    "AutomatedReasoningPolicyAnnotatedChunkList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyAnnotatedChunk"}
    },
    "AutomatedReasoningPolicyAnnotatedContent":{
      "type":"structure",
      "members":{
        "line":{
          "shape":"AutomatedReasoningPolicyAnnotatedLine",
          "documentation":"<p>An annotated line of text from the source document, including both the line number and the text content.</p>"
        }
      },
      "documentation":"<p>Represents a content element within an annotated chunk. This union type allows for different types of content elements to be included in document chunks, such as individual lines of text with their line numbers.</p>",
      "union":true
    },
    "AutomatedReasoningPolicyAnnotatedContentList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyAnnotatedContent"}
    },
    "AutomatedReasoningPolicyAnnotatedLine":{
      "type":"structure",
      "members":{
        "lineNumber":{
          "shape":"Integer",
          "documentation":"<p>The line number of this text within the source document.</p>"
        },
        "lineText":{
          "shape":"AutomatedReasoningPolicyLineText",
          "documentation":"<p>The actual text content of this line from the source document.</p>"
        }
      },
      "documentation":"<p>Represents a single line of text from a source document, annotated with its line number for precise referencing.</p>"
    },
    "AutomatedReasoningPolicyAnnotation":{
      "type":"structure",
      "members":{
        "addType":{
          "shape":"AutomatedReasoningPolicyAddTypeAnnotation",
          "documentation":"<p>An operation to add a new custom type to the policy, defining a set of possible values for policy variables.</p>"
        },
        "updateType":{
          "shape":"AutomatedReasoningPolicyUpdateTypeAnnotation",
          "documentation":"<p>An operation to modify an existing custom type in the policy, such as changing its name, description, or allowed values.</p>"
        },
        "deleteType":{
          "shape":"AutomatedReasoningPolicyDeleteTypeAnnotation",
          "documentation":"<p>An operation to remove a custom type from the policy. The type must not be referenced by any variables or rules.</p>"
        },
        "addVariable":{
          "shape":"AutomatedReasoningPolicyAddVariableAnnotation",
          "documentation":"<p>An operation to add a new variable to the policy, which can be used in rule expressions to represent dynamic values.</p>"
        },
        "updateVariable":{
          "shape":"AutomatedReasoningPolicyUpdateVariableAnnotation",
          "documentation":"<p>An operation to modify an existing variable in the policy, such as changing its name, type, or description.</p>"
        },
        "deleteVariable":{
          "shape":"AutomatedReasoningPolicyDeleteVariableAnnotation",
          "documentation":"<p>An operation to remove a variable from the policy. The variable must not be referenced by any rules.</p>"
        },
        "addRule":{
          "shape":"AutomatedReasoningPolicyAddRuleAnnotation",
          "documentation":"<p>An operation to add a new logical rule to the policy using formal mathematical expressions.</p>"
        },
        "updateRule":{
          "shape":"AutomatedReasoningPolicyUpdateRuleAnnotation",
          "documentation":"<p>An operation to modify an existing rule in the policy, such as changing its logical expression or conditions.</p>"
        },
        "deleteRule":{
          "shape":"AutomatedReasoningPolicyDeleteRuleAnnotation",
          "documentation":"<p>An operation to remove a rule from the policy.</p>"
        },
        "addRuleFromNaturalLanguage":{
          "shape":"AutomatedReasoningPolicyAddRuleFromNaturalLanguageAnnotation",
          "documentation":"<p>An operation to add a new rule by converting natural language descriptions into formal logical expressions.</p>"
        },
        "updateFromRulesFeedback":{
          "shape":"AutomatedReasoningPolicyUpdateFromRuleFeedbackAnnotation",
          "documentation":"<p>An operation to update the policy based on feedback about how specific rules performed during testing or validation.</p>"
        },
        "updateFromScenarioFeedback":{
          "shape":"AutomatedReasoningPolicyUpdateFromScenarioFeedbackAnnotation",
          "documentation":"<p>An operation to update the policy based on feedback about how it performed on specific test scenarios.</p>"
        },
        "ingestContent":{
          "shape":"AutomatedReasoningPolicyIngestContentAnnotation",
          "documentation":"<p>An operation to process and incorporate new content into the policy, extracting additional rules and concepts.</p>"
        }
      },
      "documentation":"<p>Contains the various operations that can be performed on an Automated Reasoning policy, including adding, updating, and deleting rules, variables, and types.</p>",
      "union":true
    },
    "AutomatedReasoningPolicyAnnotationFeedbackNaturalLanguage":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"[\\s\\S]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyAnnotationIngestContent":{
      "type":"string",
      "max":4096,
      "min":0,
      "pattern":"[\\s\\S]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyAnnotationList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyAnnotation"},
      "max":10,
      "min":0
    },
    "AutomatedReasoningPolicyAnnotationRuleNaturalLanguage":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"[\\s\\S]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyAnnotationStatus":{
      "type":"string",
      "enum":[
        "APPLIED",
        "FAILED"
      ]
    },
    "AutomatedReasoningPolicyArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:automated-reasoning-policy/[a-z0-9]{12}(:([1-9][0-9]{0,11}))?"
    },
    "AutomatedReasoningPolicyAtomicStatement":{
      "type":"structure",
      "required":[
        "id",
        "text",
        "location"
      ],
      "members":{
        "id":{
          "shape":"AutomatedReasoningPolicyStatementId",
          "documentation":"<p>A unique identifier for this atomic statement within the fidelity report.</p>"
        },
        "text":{
          "shape":"AutomatedReasoningPolicyStatementText",
          "documentation":"<p>The actual text content of the atomic statement as extracted from the source document.</p>"
        },
        "location":{
          "shape":"AutomatedReasoningPolicyStatementLocation",
          "documentation":"<p>Information about where this statement appears in the source document, including line numbers.</p>"
        }
      },
      "documentation":"<p>Represents a single, indivisible statement extracted from a source document. Atomic statements are the fundamental units used to ground policy rules and variables to their source material.</p>"
    },
    "AutomatedReasoningPolicyAtomicStatementList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyAtomicStatement"}
    },
    "AutomatedReasoningPolicyBuildDocumentBlob":{
      "type":"blob",
      "max":5000000,
      "min":1,
      "sensitive":true
    },
    "AutomatedReasoningPolicyBuildDocumentContentType":{
      "type":"string",
      "enum":[
        "pdf",
        "txt"
      ]
    },
    "AutomatedReasoningPolicyBuildDocumentDescription":{
      "type":"string",
      "max":4000,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyBuildDocumentName":{
      "type":"string",
      "max":256,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyBuildLog":{
      "type":"structure",
      "required":["entries"],
      "members":{
        "entries":{
          "shape":"AutomatedReasoningPolicyBuildLogEntryList",
          "documentation":"<p>A list of log entries documenting each step in the policy build process, including timestamps, status, and detailed messages.</p>"
        }
      },
      "documentation":"<p>Contains detailed logging information about the policy build process, including steps taken, decisions made, and any issues encountered.</p>"
    },
    "AutomatedReasoningPolicyBuildLogEntry":{
      "type":"structure",
      "required":[
        "annotation",
        "status",
        "buildSteps"
      ],
      "members":{
        "annotation":{
          "shape":"AutomatedReasoningPolicyAnnotation",
          "documentation":"<p>The annotation or operation that was being processed when this log entry was created.</p>"
        },
        "status":{
          "shape":"AutomatedReasoningPolicyAnnotationStatus",
          "documentation":"<p>The status of the build step (e.g., SUCCESS, FAILED, IN_PROGRESS).</p>"
        },
        "buildSteps":{
          "shape":"AutomatedReasoningPolicyBuildStepList",
          "documentation":"<p>Detailed information about the specific build steps that were executed, including any sub-operations or transformations.</p>"
        }
      },
      "documentation":"<p>Represents a single entry in the policy build log, containing information about a specific step or event in the build process.</p>"
    },
    "AutomatedReasoningPolicyBuildLogEntryList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyBuildLogEntry"}
    },
    "AutomatedReasoningPolicyBuildMessageType":{
      "type":"string",
      "enum":[
        "INFO",
        "WARNING",
        "ERROR"
      ]
    },
    "AutomatedReasoningPolicyBuildResultAssetId":{
      "type":"string",
      "max":36,
      "min":0,
      "pattern":"[0-9a-fA-F\\-]+"
    },
    "AutomatedReasoningPolicyBuildResultAssetManifest":{
      "type":"structure",
      "required":["entries"],
      "members":{
        "entries":{
          "shape":"AutomatedReasoningPolicyBuildResultAssetManifestList",
          "documentation":"<p>The list of asset entries in the manifest, each describing an available artifact that can be retrieved.</p>"
        }
      },
      "documentation":"<p>A catalog of all artifacts produced by a build workflow, providing a comprehensive list of available assets including their types and identifiers.</p>"
    },
    "AutomatedReasoningPolicyBuildResultAssetManifestEntry":{
      "type":"structure",
      "required":["assetType"],
      "members":{
        "assetType":{
          "shape":"AutomatedReasoningPolicyBuildResultAssetType",
          "documentation":"<p>The type of asset (e.g., BUILD_LOG, QUALITY_REPORT, POLICY_DEFINITION, GENERATED_TEST_CASES, POLICY_SCENARIOS, FIDELITY_REPORT, ASSET_MANIFEST, SOURCE_DOCUMENT).</p>"
        },
        "assetName":{
          "shape":"AutomatedReasoningPolicyBuildResultAssetName",
          "documentation":"<p>A human-readable name for the asset, if applicable. This helps identify specific documents or reports within the workflow results.</p>"
        },
        "assetId":{
          "shape":"AutomatedReasoningPolicyBuildResultAssetId",
          "documentation":"<p>A unique identifier for the asset, if applicable. Use this ID when requesting specific assets through the API.</p>"
        }
      },
      "documentation":"<p>Represents a single entry in the asset manifest, describing one artifact produced by the build workflow.</p>"
    },
    "AutomatedReasoningPolicyBuildResultAssetManifestList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyBuildResultAssetManifestEntry"}
    },
    "AutomatedReasoningPolicyBuildResultAssetName":{
      "type":"string",
      "max":256,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyBuildResultAssetType":{
      "type":"string",
      "enum":[
        "BUILD_LOG",
        "QUALITY_REPORT",
        "POLICY_DEFINITION",
        "GENERATED_TEST_CASES",
        "POLICY_SCENARIOS",
        "FIDELITY_REPORT",
        "ASSET_MANIFEST",
        "SOURCE_DOCUMENT"
      ]
    },
    "AutomatedReasoningPolicyBuildResultAssets":{
      "type":"structure",
      "members":{
        "policyDefinition":{
          "shape":"AutomatedReasoningPolicyDefinition",
          "documentation":"<p>The complete policy definition generated by the build workflow, containing all rules, variables, and custom types extracted from the source documents.</p>"
        },
        "qualityReport":{
          "shape":"AutomatedReasoningPolicyDefinitionQualityReport",
          "documentation":"<p>A comprehensive report analyzing the quality of the generated policy, including metrics about rule coverage, potential conflicts, and unused elements.</p>"
        },
        "buildLog":{
          "shape":"AutomatedReasoningPolicyBuildLog",
          "documentation":"<p>The complete build log containing detailed information about each step in the policy generation process.</p>"
        },
        "generatedTestCases":{
          "shape":"AutomatedReasoningPolicyGeneratedTestCases",
          "documentation":"<p>A comprehensive test suite generated by the build workflow, providing validation capabilities for automated reasoning policies.</p>"
        },
        "policyScenarios":{
          "shape":"AutomatedReasoningPolicyScenarios",
          "documentation":"<p>An entity encompassing all the policy scenarios generated by the build workflow, which can be used to validate an Automated Reasoning policy. </p>"
        },
        "assetManifest":{
          "shape":"AutomatedReasoningPolicyBuildResultAssetManifest",
          "documentation":"<p>A manifest listing all available artifacts produced by the build workflow. This provides a catalog of all assets that can be retrieved, including their types, names, and identifiers.</p>"
        },
        "document":{
          "shape":"AutomatedReasoningPolicySourceDocument",
          "documentation":"<p>A source document that was used as input during the build workflow. This allows you to retrieve the original documents that were processed to generate the policy.</p>"
        },
        "fidelityReport":{
          "shape":"AutomatedReasoningPolicyFidelityReport",
          "documentation":"<p>A comprehensive fidelity report that measures how accurately the generated policy represents the source documents. The report includes coverage and accuracy scores, along with detailed grounding information for rules and variables.</p>"
        }
      },
      "documentation":"<p>Contains the various assets generated during a policy build workflow, including logs, quality reports, test cases, and the final policy definition.</p>",
      "union":true
    },
    "AutomatedReasoningPolicyBuildStep":{
      "type":"structure",
      "required":[
        "context",
        "messages"
      ],
      "members":{
        "context":{
          "shape":"AutomatedReasoningPolicyBuildStepContext",
          "documentation":"<p>Contextual information about what was being processed during this build step, such as the type of operation or the source material being analyzed.</p>"
        },
        "priorElement":{
          "shape":"AutomatedReasoningPolicyDefinitionElement",
          "documentation":"<p>Reference to the previous element or step in the build process, helping to trace the sequence of operations.</p>"
        },
        "messages":{
          "shape":"AutomatedReasoningPolicyBuildStepMessageList",
          "documentation":"<p>A list of messages generated during this build step, including informational messages, warnings, and error details.</p>"
        }
      },
      "documentation":"<p>Represents a single step in the policy build process, containing context about what was being processed and any messages or results.</p>"
    },
    "AutomatedReasoningPolicyBuildStepContext":{
      "type":"structure",
      "members":{
        "planning":{
          "shape":"AutomatedReasoningPolicyPlanning",
          "documentation":"<p>Indicates that this build step was part of the planning phase, where the system determines what operations to perform.</p>"
        },
        "mutation":{
          "shape":"AutomatedReasoningPolicyMutation",
          "documentation":"<p>Indicates that this build step involved modifying the policy structure, such as adding or updating rules, variables, or types.</p>"
        }
      },
      "documentation":"<p>Provides context about what type of operation was being performed during a build step.</p>",
      "union":true
    },
    "AutomatedReasoningPolicyBuildStepList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyBuildStep"}
    },
    "AutomatedReasoningPolicyBuildStepMessage":{
      "type":"structure",
      "required":[
        "message",
        "messageType"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>The content of the message, describing what occurred during the build step.</p>"
        },
        "messageType":{
          "shape":"AutomatedReasoningPolicyBuildMessageType",
          "documentation":"<p>The type of message (e.g., INFO, WARNING, ERROR) indicating its severity and purpose.</p>"
        }
      },
      "documentation":"<p>Represents a message generated during a build step, providing information about what happened or any issues encountered.</p>"
    },
    "AutomatedReasoningPolicyBuildStepMessageList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyBuildStepMessage"}
    },
    "AutomatedReasoningPolicyBuildWorkflowDocument":{
      "type":"structure",
      "required":[
        "document",
        "documentContentType",
        "documentName"
      ],
      "members":{
        "document":{
          "shape":"AutomatedReasoningPolicyBuildDocumentBlob",
          "documentation":"<p>The actual content of the source document that will be analyzed to extract policy rules and concepts.</p>"
        },
        "documentContentType":{
          "shape":"AutomatedReasoningPolicyBuildDocumentContentType",
          "documentation":"<p>The MIME type of the document content (e.g., text/plain, application/pdf, text/markdown).</p>"
        },
        "documentName":{
          "shape":"AutomatedReasoningPolicyBuildDocumentName",
          "documentation":"<p>A descriptive name for the document that helps identify its purpose and content.</p>"
        },
        "documentDescription":{
          "shape":"AutomatedReasoningPolicyBuildDocumentDescription",
          "documentation":"<p>A detailed description of the document's content and how it should be used in the policy generation process.</p>"
        }
      },
      "documentation":"<p>Represents a source document used in the policy build workflow, containing the content and metadata needed for policy generation.</p>"
    },
    "AutomatedReasoningPolicyBuildWorkflowDocumentList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyBuildWorkflowDocument"},
      "max":1,
      "min":1
    },
    "AutomatedReasoningPolicyBuildWorkflowId":{
      "type":"string",
      "max":36,
      "min":0,
      "pattern":"[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}"
    },
    "AutomatedReasoningPolicyBuildWorkflowRepairContent":{
      "type":"structure",
      "required":["annotations"],
      "members":{
        "annotations":{
          "shape":"AutomatedReasoningPolicyAnnotationList",
          "documentation":"<p>Specific annotations or modifications to apply during the policy repair process, such as rule corrections or variable updates.</p>"
        }
      },
      "documentation":"<p>Contains content and instructions for repairing or improving an existing Automated Reasoning policy.</p>"
    },
    "AutomatedReasoningPolicyBuildWorkflowSource":{
      "type":"structure",
      "members":{
        "policyDefinition":{
          "shape":"AutomatedReasoningPolicyDefinition",
          "documentation":"<p>An existing policy definition that serves as the starting point for the build workflow, typically used in policy repair or update scenarios.</p>"
        },
        "workflowContent":{
          "shape":"AutomatedReasoningPolicyWorkflowTypeContent",
          "documentation":"<p>The actual content to be processed in the build workflow, such as documents to analyze or repair instructions to apply.</p>"
        }
      },
      "documentation":"<p>Defines the source content for a policy build workflow, which can include documents, repair instructions, or other input materials.</p>"
    },
    "AutomatedReasoningPolicyBuildWorkflowStatus":{
      "type":"string",
      "enum":[
        "SCHEDULED",
        "CANCEL_REQUESTED",
        "PREPROCESSING",
        "BUILDING",
        "TESTING",
        "COMPLETED",
        "FAILED",
        "CANCELLED"
      ]
    },
    "AutomatedReasoningPolicyBuildWorkflowSummaries":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyBuildWorkflowSummary"},
      "max":1000,
      "min":0
    },
    "AutomatedReasoningPolicyBuildWorkflowSummary":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId",
        "status",
        "buildWorkflowType",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy associated with this build workflow.</p>"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow.</p>"
        },
        "status":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowStatus",
          "documentation":"<p>The current status of the build workflow (e.g., RUNNING, COMPLETED, FAILED, CANCELLED).</p>"
        },
        "buildWorkflowType":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowType",
          "documentation":"<p>The type of build workflow (e.g., DOCUMENT_INGESTION, POLICY_REPAIR).</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the build workflow was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the build workflow was last updated.</p>"
        }
      },
      "documentation":"<p>Provides a summary of a policy build workflow, including its current status, timing information, and key identifiers.</p>"
    },
    "AutomatedReasoningPolicyBuildWorkflowType":{
      "type":"string",
      "enum":[
        "INGEST_CONTENT",
        "REFINE_POLICY",
        "IMPORT_POLICY",
        "GENERATE_FIDELITY_REPORT",
        "GENERATE_POLICY_SCENARIOS"
      ]
    },
    "AutomatedReasoningPolicyConflictedRuleIdList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionRuleId"},
      "max":500,
      "min":0
    },
    "AutomatedReasoningPolicyCoverageScore":{
      "type":"double",
      "box":true,
      "max":1.0,
      "min":0.0
    },
    "AutomatedReasoningPolicyDefinition":{
      "type":"structure",
      "members":{
        "version":{
          "shape":"AutomatedReasoningPolicyFormatVersion",
          "documentation":"<p>The version of the policy definition format.</p>"
        },
        "types":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeList",
          "documentation":"<p>The custom user-defined vairable types used in the policy. Types are enum-based variable types that provide additional context beyond the predefined variable types.</p>"
        },
        "rules":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleList",
          "documentation":"<p>The formal logic rules extracted from the source document. Rules define the logical constraints that determine whether model responses are valid, invalid, or satisfiable.</p>"
        },
        "variables":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableList",
          "documentation":"<p>The variables that represent concepts in the policy. Variables can have values assigned when translating natural language into formal logic. Their descriptions are crucial for accurate translation.</p>"
        }
      },
      "documentation":"<p>Contains the formal logic rules, variables, and custom variable types that define an Automated Reasoning policy. The policy definition specifies the constraints used to validate foundation model responses for accuracy and logical consistency.</p>"
    },
    "AutomatedReasoningPolicyDefinitionElement":{
      "type":"structure",
      "members":{
        "policyDefinitionVariable":{
          "shape":"AutomatedReasoningPolicyDefinitionVariable",
          "documentation":"<p>A variable element within the policy definition that represents a concept used in logical expressions and rules.</p>"
        },
        "policyDefinitionType":{
          "shape":"AutomatedReasoningPolicyDefinitionType",
          "documentation":"<p>A custom type element within the policy definition that defines a set of possible values for variables.</p>"
        },
        "policyDefinitionRule":{
          "shape":"AutomatedReasoningPolicyDefinitionRule",
          "documentation":"<p>A rule element within the policy definition that contains a formal logical expression used for validation.</p>"
        }
      },
      "documentation":"<p>Represents a single element in an Automated Reasoning policy definition, such as a rule, variable, or type definition.</p>",
      "union":true
    },
    "AutomatedReasoningPolicyDefinitionQualityReport":{
      "type":"structure",
      "required":[
        "typeCount",
        "variableCount",
        "ruleCount",
        "unusedTypes",
        "unusedTypeValues",
        "unusedVariables",
        "conflictingRules",
        "disjointRuleSets"
      ],
      "members":{
        "typeCount":{
          "shape":"Integer",
          "documentation":"<p>The total number of custom types defined in the policy.</p>"
        },
        "variableCount":{
          "shape":"Integer",
          "documentation":"<p>The total number of variables defined in the policy.</p>"
        },
        "ruleCount":{
          "shape":"Integer",
          "documentation":"<p>The total number of rules defined in the policy.</p>"
        },
        "unusedTypes":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeNameList",
          "documentation":"<p>A list of custom types that are defined but not referenced by any variables or rules, suggesting they may be unnecessary.</p>"
        },
        "unusedTypeValues":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValuePairList",
          "documentation":"<p>A list of type values that are defined but never used in any rules, indicating potential cleanup opportunities.</p>"
        },
        "unusedVariables":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableNameList",
          "documentation":"<p>A list of variables that are defined but not referenced by any rules, suggesting they may be unnecessary.</p>"
        },
        "conflictingRules":{
          "shape":"AutomatedReasoningPolicyConflictedRuleIdList",
          "documentation":"<p>A list of rules that may conflict with each other, potentially leading to inconsistent policy behavior.</p>"
        },
        "disjointRuleSets":{
          "shape":"AutomatedReasoningPolicyDisjointRuleSetList",
          "documentation":"<p>Groups of rules that operate on completely separate sets of variables, indicating the policy may be addressing multiple unrelated concerns.</p>"
        }
      },
      "documentation":"<p>Provides a comprehensive analysis of the quality and completeness of an Automated Reasoning policy definition, highlighting potential issues and optimization opportunities.</p>"
    },
    "AutomatedReasoningPolicyDefinitionRule":{
      "type":"structure",
      "required":[
        "id",
        "expression"
      ],
      "members":{
        "id":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleId",
          "documentation":"<p>The unique identifier of the rule within the policy.</p>"
        },
        "expression":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleExpression",
          "documentation":"<p>The formal logic expression of the rule.</p>"
        },
        "alternateExpression":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleAlternateExpression",
          "documentation":"<p>The human-readable form of the rule expression, often in natural language or simplified notation.</p>"
        }
      },
      "documentation":"<p>Represents a formal logic rule in an Automated Reasoning policy. For example, rules can be expressed as if-then statements that define logical constraints.</p>"
    },
    "AutomatedReasoningPolicyDefinitionRuleAlternateExpression":{
      "type":"string",
      "max":2048,
      "min":0,
      "pattern":"[\\s\\S]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyDefinitionRuleExpression":{
      "type":"string",
      "max":2048,
      "min":0,
      "pattern":"[\\s\\S]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyDefinitionRuleId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"[A-Z][0-9A-Z]{11}"
    },
    "AutomatedReasoningPolicyDefinitionRuleIdList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionRuleId"},
      "max":100,
      "min":0
    },
    "AutomatedReasoningPolicyDefinitionRuleList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionRule"},
      "max":1500,
      "min":0
    },
    "AutomatedReasoningPolicyDefinitionType":{
      "type":"structure",
      "required":[
        "name",
        "values"
      ],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeName",
          "documentation":"<p>The name of the custom type.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeDescription",
          "documentation":"<p>The description of what the custom type represents.</p>"
        },
        "values":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueList",
          "documentation":"<p>The possible values for this enum-based type, each with its own description.</p>"
        }
      },
      "documentation":"<p>Represents a custom user-defined viarble type in an Automated Reasoning policy. Types are enum-based and provide additional context beyond predefined variable types.</p>"
    },
    "AutomatedReasoningPolicyDefinitionTypeDescription":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"[\\s\\S]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyDefinitionTypeList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionType"},
      "max":150,
      "min":0
    },
    "AutomatedReasoningPolicyDefinitionTypeName":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[A-Za-z][A-Za-z0-9_]*",
      "sensitive":true
    },
    "AutomatedReasoningPolicyDefinitionTypeNameList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionTypeName"},
      "max":150,
      "min":0
    },
    "AutomatedReasoningPolicyDefinitionTypeValue":{
      "type":"structure",
      "required":["value"],
      "members":{
        "value":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueName",
          "documentation":"<p>The actual value or identifier for this type value.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueDescription",
          "documentation":"<p>A human-readable description explaining what this type value represents and when it should be used.</p>"
        }
      },
      "documentation":"<p>Represents a single value within a custom type definition, including its identifier and description.</p>"
    },
    "AutomatedReasoningPolicyDefinitionTypeValueDescription":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"[\\s\\S]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyDefinitionTypeValueList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionTypeValue"},
      "max":150,
      "min":1
    },
    "AutomatedReasoningPolicyDefinitionTypeValueName":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[A-Za-z][A-Za-z0-9_]*"
    },
    "AutomatedReasoningPolicyDefinitionTypeValuePair":{
      "type":"structure",
      "required":[
        "typeName",
        "valueName"
      ],
      "members":{
        "typeName":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeName",
          "documentation":"<p>The name of the custom type that contains the referenced value.</p>"
        },
        "valueName":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueName",
          "documentation":"<p>The name of the specific value within the type.</p>"
        }
      },
      "documentation":"<p>Associates a type name with a specific value name, used for referencing type values in rules and other policy elements.</p>"
    },
    "AutomatedReasoningPolicyDefinitionTypeValuePairList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionTypeValuePair"},
      "max":22500,
      "min":1
    },
    "AutomatedReasoningPolicyDefinitionVariable":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "description"
      ],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableName",
          "documentation":"<p>The name of the variable. Use descriptive names that clearly indicate the concept being represented.</p>"
        },
        "type":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeName",
          "documentation":"<p>The data type of the variable. Valid types include bool, int, real, enum, and custom types that you can provide.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableDescription",
          "documentation":"<p>The description of the variable that explains what it represents and how users might refer to it. Clear and comprehensive descriptions are essential for accurate natural language translation.</p>"
        }
      },
      "documentation":"<p>Represents a variable in an Automated Reasoning policy. Variables represent concepts that can have values assigned during natural language translation.</p>"
    },
    "AutomatedReasoningPolicyDefinitionVariableDescription":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"[\\s\\S]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyDefinitionVariableList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionVariable"},
      "max":600,
      "min":0
    },
    "AutomatedReasoningPolicyDefinitionVariableName":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[A-Za-z][A-Za-z0-9_]*",
      "sensitive":true
    },
    "AutomatedReasoningPolicyDefinitionVariableNameList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionVariableName"},
      "max":600,
      "min":0
    },
    "AutomatedReasoningPolicyDeleteRuleAnnotation":{
      "type":"structure",
      "required":["ruleId"],
      "members":{
        "ruleId":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleId",
          "documentation":"<p>The unique identifier of the rule to delete from the policy.</p>"
        }
      },
      "documentation":"<p>An annotation for removing a rule from an Automated Reasoning policy.</p>"
    },
    "AutomatedReasoningPolicyDeleteRuleMutation":{
      "type":"structure",
      "required":["id"],
      "members":{
        "id":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleId",
          "documentation":"<p>The unique identifier of the rule to delete.</p>"
        }
      },
      "documentation":"<p>A mutation operation that removes a rule from the policy definition during the build process.</p>"
    },
    "AutomatedReasoningPolicyDeleteTypeAnnotation":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeName",
          "documentation":"<p>The name of the custom type to delete from the policy. The type must not be referenced by any variables or rules.</p>"
        }
      },
      "documentation":"<p>An annotation for removing a custom type from an Automated Reasoning policy.</p>"
    },
    "AutomatedReasoningPolicyDeleteTypeMutation":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeName",
          "documentation":"<p>The name of the custom type to delete.</p>"
        }
      },
      "documentation":"<p>A mutation operation that removes a custom type from the policy definition during the build process.</p>"
    },
    "AutomatedReasoningPolicyDeleteTypeValue":{
      "type":"structure",
      "required":["value"],
      "members":{
        "value":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueName",
          "documentation":"<p>The identifier or name of the value to remove from the type.</p>"
        }
      },
      "documentation":"<p>Represents a value to be removed from an existing custom type in the policy.</p>"
    },
    "AutomatedReasoningPolicyDeleteVariableAnnotation":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableName",
          "documentation":"<p>The name of the variable to delete from the policy. The variable must not be referenced by any rules.</p>"
        }
      },
      "documentation":"<p>An annotation for removing a variable from an Automated Reasoning policy.</p>"
    },
    "AutomatedReasoningPolicyDeleteVariableMutation":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableName",
          "documentation":"<p>The name of the variable to delete.</p>"
        }
      },
      "documentation":"<p>A mutation operation that removes a variable from the policy definition during the build process.</p>"
    },
    "AutomatedReasoningPolicyDescription":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"[\\s\\S]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyDisjointRuleSet":{
      "type":"structure",
      "required":[
        "variables",
        "rules"
      ],
      "members":{
        "variables":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableNameList",
          "documentation":"<p>The set of variables that are used by the rules in this disjoint set.</p>"
        },
        "rules":{
          "shape":"AutomatedReasoningPolicyDisjointedRuleIdList",
          "documentation":"<p>The list of rules that form this disjoint set, all operating on the same set of variables.</p>"
        }
      },
      "documentation":"<p>Represents a set of rules that operate on completely separate variables, indicating they address different concerns or domains within the policy.</p>"
    },
    "AutomatedReasoningPolicyDisjointRuleSetList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDisjointRuleSet"}
    },
    "AutomatedReasoningPolicyDisjointedRuleIdList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyDefinitionRuleId"},
      "max":500,
      "min":0
    },
    "AutomatedReasoningPolicyDocumentId":{
      "type":"string",
      "max":8,
      "min":0,
      "pattern":"[a-zA-Z0-9]*"
    },
    "AutomatedReasoningPolicyDocumentSha256":{
      "type":"string",
      "max":64,
      "min":64
    },
    "AutomatedReasoningPolicyFidelityReport":{
      "type":"structure",
      "required":[
        "coverageScore",
        "accuracyScore",
        "ruleReports",
        "variableReports",
        "documentSources"
      ],
      "members":{
        "coverageScore":{
          "shape":"AutomatedReasoningPolicyCoverageScore",
          "documentation":"<p>A score from 0.0 to 1.0 indicating how well the policy covers the statements in the source documents. A higher score means more of the source content is represented in the policy.</p>"
        },
        "accuracyScore":{
          "shape":"AutomatedReasoningPolicyAccuracyScore",
          "documentation":"<p>A score from 0.0 to 1.0 indicating how accurate the policy rules are relative to the source documents. A higher score means the policy rules more faithfully represent the source material.</p>"
        },
        "ruleReports":{
          "shape":"AutomatedReasoningPolicyRuleReportMap",
          "documentation":"<p>A mapping from rule identifiers to detailed fidelity reports for each rule, showing which source statements ground each rule and how accurate it is.</p>"
        },
        "variableReports":{
          "shape":"AutomatedReasoningPolicyVariableReportMap",
          "documentation":"<p>A mapping from variable names to detailed fidelity reports for each variable, showing which source statements ground each variable and how accurate it is.</p>"
        },
        "documentSources":{
          "shape":"AutomatedReasoningPolicyReportSourceDocumentList",
          "documentation":"<p>A list of source documents with their content broken down into atomic statements and annotated with line numbers for precise referencing.</p>"
        }
      },
      "documentation":"<p>A comprehensive analysis report that measures how accurately a generated policy represents the source documents. The report includes coverage and accuracy scores, detailed grounding information linking policy elements to source statements, and annotated document content.</p>"
    },
    "AutomatedReasoningPolicyFormatVersion":{"type":"string"},
    "AutomatedReasoningPolicyGenerateFidelityReportContent":{
      "type":"structure",
      "members":{
        "documents":{
          "shape":"AutomatedReasoningPolicyGenerateFidelityReportDocumentList",
          "documentation":"<p>Source documents to analyze for generating a new fidelity report. The documents will be processed to create atomic statements and grounding information.</p>"
        }
      },
      "documentation":"<p>Configuration for generating a fidelity report, which can either analyze new documents or update an existing fidelity report with a new policy definition.</p>",
      "union":true
    },
    "AutomatedReasoningPolicyGenerateFidelityReportDocumentList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyBuildWorkflowDocument"},
      "max":5,
      "min":0
    },
    "AutomatedReasoningPolicyGeneratedTestCase":{
      "type":"structure",
      "required":[
        "queryContent",
        "guardContent",
        "expectedAggregatedFindingsResult"
      ],
      "members":{
        "queryContent":{
          "shape":"AutomatedReasoningPolicyTestQueryContent",
          "documentation":"<p>The input query or prompt that generated the content. This provides context for the validation.</p>"
        },
        "guardContent":{
          "shape":"AutomatedReasoningPolicyTestGuardContent",
          "documentation":"<p>The output content that's validated by the Automated Reasoning policy. This represents the foundation model response that will be checked for accuracy.</p>"
        },
        "expectedAggregatedFindingsResult":{
          "shape":"AutomatedReasoningCheckResult",
          "documentation":"<p>The expected results of the generated test case. Possible values include:</p> <ul> <li> <p> <code>VALID</code> - The claims are true. The claims are implied by the premises and the Automated Reasoning policy. Given the Automated Reasoning policy and premises, it is not possible for these claims to be false. In other words, there are no alternative answers that are true that contradict the claims.</p> </li> <li> <p> <code>INVALID</code> - The claims are false. The claims are not implied by the premises and Automated Reasoning policy. Furthermore, there exists different claims that are consistent with the premises and Automated Reasoning policy.</p> </li> <li> <p> <code>SATISFIABLE</code> - The claims can be true or false. It depends on what assumptions are made for the claim to be implied from the premises and Automated Reasoning policy rules. In this situation, different assumptions can make input claims false and alternative claims true.</p> </li> <li> <p> <code>IMPOSSIBLE</code> - Automated Reasoning can’t make a statement about the claims. This can happen if the premises are logically incorrect, or if there is a conflict within the Automated Reasoning policy itself.</p> </li> </ul>"
        }
      },
      "documentation":"<p>Represents a generated test case, consisting of query content, guard content, and expected results.</p>"
    },
    "AutomatedReasoningPolicyGeneratedTestCaseList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyGeneratedTestCase"}
    },
    "AutomatedReasoningPolicyGeneratedTestCases":{
      "type":"structure",
      "required":["generatedTestCases"],
      "members":{
        "generatedTestCases":{
          "shape":"AutomatedReasoningPolicyGeneratedTestCaseList",
          "documentation":"<p>Represents a collection of generated test cases.</p>"
        }
      },
      "documentation":"<p>Contains a comprehensive test suite generated by the build workflow, providing validation capabilities for automated reasoning policies.</p>"
    },
    "AutomatedReasoningPolicyHash":{
      "type":"string",
      "max":128,
      "min":128,
      "pattern":"[0-9a-z]{128}"
    },
    "AutomatedReasoningPolicyId":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"[a-z0-9]{12}"
    },
    "AutomatedReasoningPolicyIngestContentAnnotation":{
      "type":"structure",
      "required":["content"],
      "members":{
        "content":{
          "shape":"AutomatedReasoningPolicyAnnotationIngestContent",
          "documentation":"<p>The new content to be analyzed and incorporated into the policy, such as additional documents or rule descriptions.</p>"
        }
      },
      "documentation":"<p>An annotation for processing and incorporating new content into an Automated Reasoning policy.</p>"
    },
    "AutomatedReasoningPolicyJustificationList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyJustificationText"}
    },
    "AutomatedReasoningPolicyJustificationText":{
      "type":"string",
      "max":1024,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyLineNumberList":{
      "type":"list",
      "member":{"shape":"Integer"}
    },
    "AutomatedReasoningPolicyLineText":{
      "type":"string",
      "max":256,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyMutation":{
      "type":"structure",
      "members":{
        "addType":{
          "shape":"AutomatedReasoningPolicyAddTypeMutation",
          "documentation":"<p>A mutation to add a new custom type to the policy.</p>"
        },
        "updateType":{
          "shape":"AutomatedReasoningPolicyUpdateTypeMutation",
          "documentation":"<p>A mutation to modify an existing custom type in the policy.</p>"
        },
        "deleteType":{
          "shape":"AutomatedReasoningPolicyDeleteTypeMutation",
          "documentation":"<p>A mutation to remove a custom type from the policy.</p>"
        },
        "addVariable":{
          "shape":"AutomatedReasoningPolicyAddVariableMutation",
          "documentation":"<p>A mutation to add a new variable to the policy.</p>"
        },
        "updateVariable":{
          "shape":"AutomatedReasoningPolicyUpdateVariableMutation",
          "documentation":"<p>A mutation to modify an existing variable in the policy.</p>"
        },
        "deleteVariable":{
          "shape":"AutomatedReasoningPolicyDeleteVariableMutation",
          "documentation":"<p>A mutation to remove a variable from the policy.</p>"
        },
        "addRule":{
          "shape":"AutomatedReasoningPolicyAddRuleMutation",
          "documentation":"<p>A mutation to add a new rule to the policy.</p>"
        },
        "updateRule":{
          "shape":"AutomatedReasoningPolicyUpdateRuleMutation",
          "documentation":"<p>A mutation to modify an existing rule in the policy.</p>"
        },
        "deleteRule":{
          "shape":"AutomatedReasoningPolicyDeleteRuleMutation",
          "documentation":"<p>A mutation to remove a rule from the policy.</p>"
        }
      },
      "documentation":"<p>A container for various mutation operations that can be applied to an Automated Reasoning policy, including adding, updating, and deleting policy elements.</p>",
      "union":true
    },
    "AutomatedReasoningPolicyName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[0-9a-zA-Z-_ ]+",
      "sensitive":true
    },
    "AutomatedReasoningPolicyPlanning":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Represents the planning phase of policy build workflow, where the system analyzes source content and determines what operations to perform.</p>"
    },
    "AutomatedReasoningPolicyReportSourceDocument":{
      "type":"structure",
      "required":[
        "documentName",
        "documentHash",
        "documentId",
        "atomicStatements",
        "documentContent"
      ],
      "members":{
        "documentName":{
          "shape":"AutomatedReasoningPolicyBuildDocumentName",
          "documentation":"<p>The name of the source document that was analyzed.</p>"
        },
        "documentHash":{
          "shape":"AutomatedReasoningPolicyDocumentSha256",
          "documentation":"<p>A SHA-256 hash of the document content, used for verification and ensuring the document hasn't changed since analysis.</p>"
        },
        "documentId":{
          "shape":"AutomatedReasoningPolicyDocumentId",
          "documentation":"<p>A unique identifier for this document within the fidelity report.</p>"
        },
        "atomicStatements":{
          "shape":"AutomatedReasoningPolicyAtomicStatementList",
          "documentation":"<p>The list of atomic statements extracted from this document, representing the fundamental units of meaning used for grounding.</p>"
        },
        "documentContent":{
          "shape":"AutomatedReasoningPolicyAnnotatedChunkList",
          "documentation":"<p>The document's content organized into annotated chunks with line number information for precise referencing.</p>"
        }
      },
      "documentation":"<p>Represents a source document that was analyzed during fidelity report generation, including the document's metadata and its content broken down into atomic statements.</p>"
    },
    "AutomatedReasoningPolicyReportSourceDocumentList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyReportSourceDocument"}
    },
    "AutomatedReasoningPolicyRuleReport":{
      "type":"structure",
      "required":["rule"],
      "members":{
        "rule":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleId",
          "documentation":"<p>The identifier of the policy rule being analyzed in this report.</p>"
        },
        "groundingStatements":{
          "shape":"AutomatedReasoningPolicyStatementReferenceList",
          "documentation":"<p>References to statements from the source documents that provide the basis or justification for this rule.</p>"
        },
        "groundingJustifications":{
          "shape":"AutomatedReasoningPolicyJustificationList",
          "documentation":"<p>Explanations describing how the source statements support and justify this specific rule.</p>"
        },
        "accuracyScore":{
          "shape":"AutomatedReasoningPolicyAccuracyScore",
          "documentation":"<p>A score from 0.0 to 1.0 indicating how accurately this rule represents the source material.</p>"
        },
        "accuracyJustification":{
          "shape":"AutomatedReasoningPolicyJustificationText",
          "documentation":"<p>A textual explanation of the accuracy score, describing why the rule received this particular accuracy rating.</p>"
        }
      },
      "documentation":"<p>Provides detailed fidelity analysis for a specific policy rule, including which source document statements support it and how accurate the rule is.</p>"
    },
    "AutomatedReasoningPolicyRuleReportMap":{
      "type":"map",
      "key":{"shape":"AutomatedReasoningPolicyDefinitionRuleId"},
      "value":{"shape":"AutomatedReasoningPolicyRuleReport"}
    },
    "AutomatedReasoningPolicyScenario":{
      "type":"structure",
      "required":[
        "expression",
        "alternateExpression",
        "expectedResult",
        "ruleIds"
      ],
      "members":{
        "expression":{
          "shape":"AutomatedReasoningPolicyScenarioExpression",
          "documentation":"<p>The logical expression or condition that defines this test scenario.</p>"
        },
        "alternateExpression":{
          "shape":"AutomatedReasoningPolicyScenarioAlternateExpression",
          "documentation":"<p>An alternative way to express the same test scenario, used for validation and comparison purposes.</p>"
        },
        "expectedResult":{
          "shape":"AutomatedReasoningCheckResult",
          "documentation":"<p>The expected outcome when this scenario is evaluated against the policy (e.g., PASS, FAIL, VIOLATION).</p>"
        },
        "ruleIds":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleIdList",
          "documentation":"<p>The list of rule identifiers that are expected to be triggered or evaluated by this test scenario.</p>"
        }
      },
      "documentation":"<p>Represents a test scenario used to validate an Automated Reasoning policy, including the test conditions and expected outcomes.</p>"
    },
    "AutomatedReasoningPolicyScenarioAlternateExpression":{
      "type":"string",
      "max":1024,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyScenarioExpression":{
      "type":"string",
      "max":1024,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyScenarioList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyScenario"}
    },
    "AutomatedReasoningPolicyScenarios":{
      "type":"structure",
      "required":["policyScenarios"],
      "members":{
        "policyScenarios":{
          "shape":"AutomatedReasoningPolicyScenarioList",
          "documentation":"<p>Represents a collection of generated policy scenarios.</p>"
        }
      },
      "documentation":"<p>Contains a comprehensive entity encompassing all the scenarios generated by the build workflow, which can be used to validate an Automated Reasoning policy.</p>"
    },
    "AutomatedReasoningPolicySourceDocument":{
      "type":"structure",
      "required":[
        "document",
        "documentContentType",
        "documentName",
        "documentHash"
      ],
      "members":{
        "document":{
          "shape":"AutomatedReasoningPolicyBuildDocumentBlob",
          "documentation":"<p>The raw content of the source document as a binary blob.</p>"
        },
        "documentContentType":{
          "shape":"AutomatedReasoningPolicyBuildDocumentContentType",
          "documentation":"<p>The MIME type of the document (e.g., application/pdf, text/plain).</p>"
        },
        "documentName":{
          "shape":"AutomatedReasoningPolicyBuildDocumentName",
          "documentation":"<p>The name of the source document for identification purposes.</p>"
        },
        "documentDescription":{
          "shape":"AutomatedReasoningPolicyBuildDocumentDescription",
          "documentation":"<p>An optional description providing context about the document's content and purpose.</p>"
        },
        "documentHash":{
          "shape":"AutomatedReasoningPolicyDocumentSha256",
          "documentation":"<p>A SHA-256 hash of the document content, used for verification and integrity checking.</p>"
        }
      },
      "documentation":"<p>Represents a source document that was processed during a build workflow. Contains the document content, metadata, and a hash for verification.</p>"
    },
    "AutomatedReasoningPolicyStatementId":{
      "type":"string",
      "max":8,
      "min":0,
      "pattern":"[a-zA-Z0-9]*"
    },
    "AutomatedReasoningPolicyStatementLocation":{
      "type":"structure",
      "required":["lines"],
      "members":{
        "lines":{
          "shape":"AutomatedReasoningPolicyLineNumberList",
          "documentation":"<p>The line numbers in the source document where this statement appears.</p>"
        }
      },
      "documentation":"<p>Describes the location of a statement within a source document using line numbers.</p>"
    },
    "AutomatedReasoningPolicyStatementReference":{
      "type":"structure",
      "required":[
        "documentId",
        "statementId"
      ],
      "members":{
        "documentId":{
          "shape":"AutomatedReasoningPolicyDocumentId",
          "documentation":"<p>The unique identifier of the document containing the referenced statement.</p>"
        },
        "statementId":{
          "shape":"AutomatedReasoningPolicyStatementId",
          "documentation":"<p>The unique identifier of the specific atomic statement being referenced.</p>"
        }
      },
      "documentation":"<p>References a specific atomic statement within a source document, used to link policy elements back to their source material.</p>"
    },
    "AutomatedReasoningPolicyStatementReferenceList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyStatementReference"}
    },
    "AutomatedReasoningPolicyStatementText":{
      "type":"string",
      "max":1024,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicySummaries":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicySummary"},
      "max":1000,
      "min":0
    },
    "AutomatedReasoningPolicySummary":{
      "type":"structure",
      "required":[
        "policyArn",
        "name",
        "version",
        "policyId",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy.</p>"
        },
        "name":{
          "shape":"AutomatedReasoningPolicyName",
          "documentation":"<p>The name of the policy.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDescription",
          "documentation":"<p>The description of the policy.</p>"
        },
        "version":{
          "shape":"AutomatedReasoningPolicyVersion",
          "documentation":"<p>The version of the policy.</p>"
        },
        "policyId":{
          "shape":"AutomatedReasoningPolicyId",
          "documentation":"<p>The unique identifier of the policy.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about an Automated Reasoning policy, including metadata and timestamps.</p>"
    },
    "AutomatedReasoningPolicyTestCase":{
      "type":"structure",
      "required":[
        "testCaseId",
        "guardContent",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "testCaseId":{
          "shape":"AutomatedReasoningPolicyTestCaseId",
          "documentation":"<p>The unique identifier of the test.</p>"
        },
        "guardContent":{
          "shape":"AutomatedReasoningPolicyTestGuardContent",
          "documentation":"<p>The output content to be validated by the policy, typically representing a foundation model response.</p>"
        },
        "queryContent":{
          "shape":"AutomatedReasoningPolicyTestQueryContent",
          "documentation":"<p>The input query or prompt that generated the content. This provides context for the validation.</p>"
        },
        "expectedAggregatedFindingsResult":{
          "shape":"AutomatedReasoningCheckResult",
          "documentation":"<p>The expected result of the Automated Reasoning check for this test.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test was last updated.</p>"
        },
        "confidenceThreshold":{
          "shape":"AutomatedReasoningCheckTranslationConfidence",
          "documentation":"<p>The minimum confidence level for logic validation. Content meeting this threshold is considered high-confidence and can be validated.</p>"
        }
      },
      "documentation":"<p>Represents a test for validating an Automated Reasoning policy. tests contain sample inputs and expected outcomes to verify policy behavior.</p>"
    },
    "AutomatedReasoningPolicyTestCaseId":{
      "type":"string",
      "max":12,
      "min":0,
      "pattern":"[0-9A-Z]{12}"
    },
    "AutomatedReasoningPolicyTestCaseIdList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyTestCaseId"},
      "max":1,
      "min":1
    },
    "AutomatedReasoningPolicyTestCaseList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyTestCase"},
      "max":1000,
      "min":0
    },
    "AutomatedReasoningPolicyTestGuardContent":{
      "type":"string",
      "max":2048,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyTestList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyTestResult"},
      "max":5000,
      "min":0
    },
    "AutomatedReasoningPolicyTestQueryContent":{
      "type":"string",
      "max":1024,
      "min":0,
      "sensitive":true
    },
    "AutomatedReasoningPolicyTestResult":{
      "type":"structure",
      "required":[
        "testCase",
        "policyArn",
        "testRunStatus",
        "updatedAt"
      ],
      "members":{
        "testCase":{
          "shape":"AutomatedReasoningPolicyTestCase",
          "documentation":"<p>The test case that was executed, including the input content, expected results, and configuration parameters used during validation.</p>"
        },
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy that was tested.</p>"
        },
        "testRunStatus":{
          "shape":"AutomatedReasoningPolicyTestRunStatus",
          "documentation":"<p>The overall status of the test run (e.g., COMPLETED, FAILED, IN_PROGRESS).</p>"
        },
        "testFindings":{
          "shape":"AutomatedReasoningCheckFindingList",
          "documentation":"<p>Detailed findings from the test run, including any issues, violations, or unexpected behaviors discovered.</p>"
        },
        "testRunResult":{
          "shape":"AutomatedReasoningPolicyTestRunResult",
          "documentation":"<p>The overall result of the test run, indicating whether the policy passed or failed validation.</p>"
        },
        "aggregatedTestFindingsResult":{
          "shape":"AutomatedReasoningCheckResult",
          "documentation":"<p>A summary of all test findings, aggregated to provide an overall assessment of policy quality and correctness.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test results were last updated.</p>"
        }
      },
      "documentation":"<p>Contains the results of testing an Automated Reasoning policy against various scenarios and validation checks.</p>"
    },
    "AutomatedReasoningPolicyTestRunResult":{
      "type":"string",
      "enum":[
        "PASSED",
        "FAILED"
      ]
    },
    "AutomatedReasoningPolicyTestRunStatus":{
      "type":"string",
      "enum":[
        "NOT_STARTED",
        "SCHEDULED",
        "IN_PROGRESS",
        "COMPLETED",
        "FAILED"
      ]
    },
    "AutomatedReasoningPolicyTypeValueAnnotation":{
      "type":"structure",
      "members":{
        "addTypeValue":{
          "shape":"AutomatedReasoningPolicyAddTypeValue",
          "documentation":"<p>An operation to add a new value to an existing custom type.</p>"
        },
        "updateTypeValue":{
          "shape":"AutomatedReasoningPolicyUpdateTypeValue",
          "documentation":"<p>An operation to modify an existing value within a custom type.</p>"
        },
        "deleteTypeValue":{
          "shape":"AutomatedReasoningPolicyDeleteTypeValue",
          "documentation":"<p>An operation to remove a value from an existing custom type.</p>"
        }
      },
      "documentation":"<p>An annotation for managing values within custom types, including adding, updating, or removing specific type values.</p>",
      "union":true
    },
    "AutomatedReasoningPolicyTypeValueAnnotationList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyTypeValueAnnotation"},
      "max":50,
      "min":0
    },
    "AutomatedReasoningPolicyUpdateFromRuleFeedbackAnnotation":{
      "type":"structure",
      "required":["feedback"],
      "members":{
        "ruleIds":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleIdList",
          "documentation":"<p>The list of rule identifiers that the feedback applies to.</p>"
        },
        "feedback":{
          "shape":"AutomatedReasoningPolicyAnnotationFeedbackNaturalLanguage",
          "documentation":"<p>The feedback information about rule performance, including suggestions for improvements or corrections.</p>"
        }
      },
      "documentation":"<p>An annotation for updating the policy based on feedback about how specific rules performed during testing or real-world usage.</p>"
    },
    "AutomatedReasoningPolicyUpdateFromScenarioFeedbackAnnotation":{
      "type":"structure",
      "required":["scenarioExpression"],
      "members":{
        "ruleIds":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleIdList",
          "documentation":"<p>The list of rule identifiers that were involved in the scenario being evaluated.</p>"
        },
        "scenarioExpression":{
          "shape":"AutomatedReasoningPolicyScenarioExpression",
          "documentation":"<p>The logical expression that defines the test scenario that generated this feedback.</p>"
        },
        "feedback":{
          "shape":"AutomatedReasoningPolicyAnnotationFeedbackNaturalLanguage",
          "documentation":"<p>The feedback information about scenario performance, including any issues or improvements identified.</p>"
        }
      },
      "documentation":"<p>An annotation for updating the policy based on feedback about how it performed on specific test scenarios.</p>"
    },
    "AutomatedReasoningPolicyUpdateRuleAnnotation":{
      "type":"structure",
      "required":[
        "ruleId",
        "expression"
      ],
      "members":{
        "ruleId":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleId",
          "documentation":"<p>The unique identifier of the rule to update.</p>"
        },
        "expression":{
          "shape":"AutomatedReasoningPolicyDefinitionRuleExpression",
          "documentation":"<p>The new formal logical expression for the rule, replacing the previous expression.</p>"
        }
      },
      "documentation":"<p>An annotation for modifying an existing rule in an Automated Reasoning policy.</p>"
    },
    "AutomatedReasoningPolicyUpdateRuleMutation":{
      "type":"structure",
      "required":["rule"],
      "members":{
        "rule":{
          "shape":"AutomatedReasoningPolicyDefinitionRule",
          "documentation":"<p>The updated rule definition containing the modified formal logical expression and any changed metadata for the existing rule.</p>"
        }
      },
      "documentation":"<p>A mutation operation that modifies an existing rule in the policy definition during the build process.</p>"
    },
    "AutomatedReasoningPolicyUpdateTypeAnnotation":{
      "type":"structure",
      "required":[
        "name",
        "values"
      ],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeName",
          "documentation":"<p>The current name of the custom type to update.</p>"
        },
        "newName":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeName",
          "documentation":"<p>The new name for the custom type, if you want to rename it. If not provided, the name remains unchanged.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeDescription",
          "documentation":"<p>The new description for the custom type, replacing the previous description.</p>"
        },
        "values":{
          "shape":"AutomatedReasoningPolicyTypeValueAnnotationList",
          "documentation":"<p>The updated list of values for the custom type, which can include additions, modifications, or removals.</p>"
        }
      },
      "documentation":"<p>An annotation for modifying an existing custom type in an Automated Reasoning policy.</p>"
    },
    "AutomatedReasoningPolicyUpdateTypeMutation":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"AutomatedReasoningPolicyDefinitionType",
          "documentation":"<p>The updated type definition containing the modified name, description, or values for the existing custom type.</p>"
        }
      },
      "documentation":"<p>A mutation operation that modifies an existing custom type in the policy definition during the build process.</p>"
    },
    "AutomatedReasoningPolicyUpdateTypeValue":{
      "type":"structure",
      "required":["value"],
      "members":{
        "value":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueName",
          "documentation":"<p>The current identifier or name of the type value to update.</p>"
        },
        "newValue":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueName",
          "documentation":"<p>The new identifier or name for the type value, if you want to rename it.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDefinitionTypeValueDescription",
          "documentation":"<p>The new description for the type value, replacing the previous description.</p>"
        }
      },
      "documentation":"<p>Represents a modification to a value within an existing custom type.</p>"
    },
    "AutomatedReasoningPolicyUpdateVariableAnnotation":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableName",
          "documentation":"<p>The current name of the variable to update.</p>"
        },
        "newName":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableName",
          "documentation":"<p>The new name for the variable, if you want to rename it. If not provided, the name remains unchanged.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableDescription",
          "documentation":"<p>The new description for the variable, replacing the previous description.</p>"
        }
      },
      "documentation":"<p>An annotation for modifying an existing variable in an Automated Reasoning policy.</p>"
    },
    "AutomatedReasoningPolicyUpdateVariableMutation":{
      "type":"structure",
      "required":["variable"],
      "members":{
        "variable":{
          "shape":"AutomatedReasoningPolicyDefinitionVariable",
          "documentation":"<p>The updated variable definition containing the modified name, type, or description for the existing variable.</p>"
        }
      },
      "documentation":"<p>A mutation operation that modifies an existing variable in the policy definition during the build process.</p>"
    },
    "AutomatedReasoningPolicyVariableReport":{
      "type":"structure",
      "required":["policyVariable"],
      "members":{
        "policyVariable":{
          "shape":"AutomatedReasoningPolicyDefinitionVariableName",
          "documentation":"<p>The name of the policy variable being analyzed in this report.</p>"
        },
        "groundingStatements":{
          "shape":"AutomatedReasoningPolicyStatementReferenceList",
          "documentation":"<p>References to statements from the source documents that provide the basis or justification for this variable.</p>"
        },
        "groundingJustifications":{
          "shape":"AutomatedReasoningPolicyJustificationList",
          "documentation":"<p>Explanations describing how the source statements support and justify this specific variable definition.</p>"
        },
        "accuracyScore":{
          "shape":"AutomatedReasoningPolicyAccuracyScore",
          "documentation":"<p>A score from 0.0 to 1.0 indicating how accurately this variable represents concepts from the source material.</p>"
        },
        "accuracyJustification":{
          "shape":"AutomatedReasoningPolicyJustificationText",
          "documentation":"<p>A textual explanation of the accuracy score, describing why the variable received this particular accuracy rating.</p>"
        }
      },
      "documentation":"<p>Provides detailed fidelity analysis for a specific policy variable, including which source document statements support it and how accurate the variable definition is.</p>"
    },
    "AutomatedReasoningPolicyVariableReportMap":{
      "type":"map",
      "key":{"shape":"AutomatedReasoningPolicyDefinitionVariableName"},
      "value":{"shape":"AutomatedReasoningPolicyVariableReport"}
    },
    "AutomatedReasoningPolicyVersion":{
      "type":"string",
      "max":12,
      "min":0,
      "pattern":"([1-9][0-9]{0,11})"
    },
    "AutomatedReasoningPolicyWorkflowTypeContent":{
      "type":"structure",
      "members":{
        "documents":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowDocumentList",
          "documentation":"<p>The list of documents to be processed in a document ingestion workflow.</p>"
        },
        "policyRepairAssets":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowRepairContent",
          "documentation":"<p>The assets and instructions needed for a policy repair workflow, including repair annotations and guidance.</p>"
        },
        "generateFidelityReportContent":{
          "shape":"AutomatedReasoningPolicyGenerateFidelityReportContent",
          "documentation":"<p>The content configuration for generating a fidelity report workflow. This can include source documents to analyze or an existing fidelity report to update with a new policy definition.</p>"
        }
      },
      "documentation":"<p>Defines the content and configuration for different types of policy build workflows.</p>",
      "union":true
    },
    "BaseModelIdentifier":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(([0-9a-zA-Z][_-]?)+)"
    },
    "BatchDeleteEvaluationJobError":{
      "type":"structure",
      "required":[
        "jobIdentifier",
        "code"
      ],
      "members":{
        "jobIdentifier":{
          "shape":"EvaluationJobIdentifier",
          "documentation":"<p>The ARN of the evaluation job being deleted.</p>"
        },
        "code":{
          "shape":"String",
          "documentation":"<p>A HTTP status code of the evaluation job being deleted.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>A status message about the evaluation job deletion.</p>"
        }
      },
      "documentation":"<p>A JSON array that provides the status of the evaluation jobs being deleted.</p>"
    },
    "BatchDeleteEvaluationJobErrors":{
      "type":"list",
      "member":{"shape":"BatchDeleteEvaluationJobError"},
      "max":25,
      "min":0
    },
    "BatchDeleteEvaluationJobItem":{
      "type":"structure",
      "required":[
        "jobIdentifier",
        "jobStatus"
      ],
      "members":{
        "jobIdentifier":{
          "shape":"EvaluationJobIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluation job for deletion.</p>"
        },
        "jobStatus":{
          "shape":"EvaluationJobStatus",
          "documentation":"<p>The status of the evaluation job for deletion.</p>"
        }
      },
      "documentation":"<p>An evaluation job for deletion, and it’s current status.</p>"
    },
    "BatchDeleteEvaluationJobItems":{
      "type":"list",
      "member":{"shape":"BatchDeleteEvaluationJobItem"}
    },
    "BatchDeleteEvaluationJobRequest":{
      "type":"structure",
      "required":["jobIdentifiers"],
      "members":{
        "jobIdentifiers":{
          "shape":"EvaluationJobIdentifiers",
          "documentation":"<p>A list of one or more evaluation job Amazon Resource Names (ARNs) you want to delete.</p>"
        }
      }
    },
    "BatchDeleteEvaluationJobResponse":{
      "type":"structure",
      "required":[
        "errors",
        "evaluationJobs"
      ],
      "members":{
        "errors":{
          "shape":"BatchDeleteEvaluationJobErrors",
          "documentation":"<p>A JSON object containing the HTTP status codes and the ARNs of evaluation jobs that failed to be deleted.</p>"
        },
        "evaluationJobs":{
          "shape":"BatchDeleteEvaluationJobItems",
          "documentation":"<p>The list of evaluation jobs for deletion.</p>"
        }
      }
    },
    "BedrockEvaluatorModel":{
      "type":"structure",
      "required":["modelIdentifier"],
      "members":{
        "modelIdentifier":{
          "shape":"EvaluatorModelIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluator model used used in knowledge base evaluation job or in model evaluation job that use a model as judge.</p>"
        }
      },
      "documentation":"<p>The evaluator model used in knowledge base evaluation job or in model evaluation job that use a model as judge. This model computes all evaluation related metrics.</p>"
    },
    "BedrockEvaluatorModels":{
      "type":"list",
      "member":{"shape":"BedrockEvaluatorModel"},
      "max":1,
      "min":1
    },
    "BedrockModelArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?"
    },
    "BedrockModelId":{
      "type":"string",
      "max":140,
      "min":0,
      "pattern":"[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12}|)"
    },
    "BedrockRerankingModelArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/(.*))?"
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "BrandedName":{
      "type":"string",
      "max":20,
      "min":1,
      "pattern":".*"
    },
    "BucketName":{
      "type":"string",
      "max":63,
      "min":3
    },
    "ByteContentBlob":{
      "type":"blob",
      "max":10485760,
      "min":1,
      "sensitive":true
    },
    "ByteContentDoc":{
      "type":"structure",
      "required":[
        "identifier",
        "contentType",
        "data"
      ],
      "members":{
        "identifier":{
          "shape":"Identifier",
          "documentation":"<p>The file name of the document contained in the wrapper object.</p>"
        },
        "contentType":{
          "shape":"ContentType",
          "documentation":"<p>The MIME type of the document contained in the wrapper object.</p>"
        },
        "data":{
          "shape":"ByteContentBlob",
          "documentation":"<p>The byte value of the file to upload, encoded as a Base-64 string.</p>"
        }
      },
      "documentation":"<p>Contains the document contained in the wrapper object, along with its attributes/fields.</p>"
    },
    "CancelAutomatedReasoningPolicyBuildWorkflowRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy whose build workflow you want to cancel.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow to cancel. You can get this ID from the StartAutomatedReasoningPolicyBuildWorkflow response or by listing build workflows.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        }
      }
    },
    "CancelAutomatedReasoningPolicyBuildWorkflowResponse":{
      "type":"structure",
      "members":{}
    },
    "CloudWatchConfig":{
      "type":"structure",
      "required":[
        "logGroupName",
        "roleArn"
      ],
      "members":{
        "logGroupName":{
          "shape":"LogGroupName",
          "documentation":"<p>The log group name.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The role Amazon Resource Name (ARN).</p>"
        },
        "largeDataDeliveryS3Config":{
          "shape":"S3Config",
          "documentation":"<p>S3 configuration for delivering a large amount of data.</p>"
        }
      },
      "documentation":"<p>CloudWatch logging configuration.</p>"
    },
    "CommitmentDuration":{
      "type":"string",
      "enum":[
        "OneMonth",
        "SixMonths"
      ]
    },
    "ConfigurationOwner":{
      "type":"string",
      "enum":["ACCOUNT"]
    },
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>Error occurred because of a conflict while performing an operation.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ContentType":{
      "type":"string",
      "pattern":".*[a-z]{1,20}/.{1,20}.*"
    },
    "CreateAutomatedReasoningPolicyRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AutomatedReasoningPolicyName",
          "documentation":"<p>A unique name for the Automated Reasoning policy. The name must be between 1 and 63 characters and can contain letters, numbers, hyphens, and underscores.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDescription",
          "documentation":"<p>A description of the Automated Reasoning policy. Use this to provide context about the policy's purpose and the types of validations it performs.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the operation completes no more than once. If this token matches a previous request, Amazon Bedrock ignores the request but doesn't return an error.</p>",
          "idempotencyToken":true
        },
        "policyDefinition":{
          "shape":"AutomatedReasoningPolicyDefinition",
          "documentation":"<p>The policy definition that contains the formal logic rules, variables, and custom variable types used to validate foundation model responses in your application.</p>"
        },
        "kmsKeyId":{
          "shape":"KmsKeyId",
          "documentation":"<p>The identifier of the KMS key to use for encrypting the automated reasoning policy and its associated artifacts. If you don't specify a KMS key, Amazon Bedrock uses an KMS managed key for encryption. For enhanced security and control, you can specify a customer managed KMS key.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>A list of tags to associate with the Automated Reasoning policy. Tags help you organize and manage your policies.</p>"
        }
      }
    },
    "CreateAutomatedReasoningPolicyResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "version",
        "name",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy that you created.</p>"
        },
        "version":{
          "shape":"AutomatedReasoningPolicyVersion",
          "documentation":"<p>The version number of the newly created Automated Reasoning policy. The initial version is always DRAFT.</p>"
        },
        "name":{
          "shape":"AutomatedReasoningPolicyName",
          "documentation":"<p>The name of the Automated Reasoning policy.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDescription",
          "documentation":"<p>The description of the Automated Reasoning policy.</p>"
        },
        "definitionHash":{
          "shape":"AutomatedReasoningPolicyHash",
          "documentation":"<p>The hash of the policy definition. This is used as a concurrency token for creating policy versions that you can use in your application.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was last updated.</p>"
        }
      }
    },
    "CreateAutomatedReasoningPolicyTestCaseRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "guardContent",
        "expectedAggregatedFindingsResult"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy for which to create the test.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "guardContent":{
          "shape":"AutomatedReasoningPolicyTestGuardContent",
          "documentation":"<p>The output content that's validated by the Automated Reasoning policy. This represents the foundation model response that will be checked for accuracy.</p>"
        },
        "queryContent":{
          "shape":"AutomatedReasoningPolicyTestQueryContent",
          "documentation":"<p>The input query or prompt that generated the content. This provides context for the validation.</p>"
        },
        "expectedAggregatedFindingsResult":{
          "shape":"AutomatedReasoningCheckResult",
          "documentation":"<p>The expected result of the Automated Reasoning check. Valid values include: , TOO_COMPLEX, and NO_TRANSLATIONS.</p> <ul> <li> <p> <code>VALID</code> - The claims are true. The claims are implied by the premises and the Automated Reasoning policy. Given the Automated Reasoning policy and premises, it is not possible for these claims to be false. In other words, there are no alternative answers that are true that contradict the claims.</p> </li> <li> <p> <code>INVALID</code> - The claims are false. The claims are not implied by the premises and Automated Reasoning policy. Furthermore, there exists different claims that are consistent with the premises and Automated Reasoning policy.</p> </li> <li> <p> <code>SATISFIABLE</code> - The claims can be true or false. It depends on what assumptions are made for the claim to be implied from the premises and Automated Reasoning policy rules. In this situation, different assumptions can make input claims false and alternative claims true.</p> </li> <li> <p> <code>IMPOSSIBLE</code> - Automated Reasoning can’t make a statement about the claims. This can happen if the premises are logically incorrect, or if there is a conflict within the Automated Reasoning policy itself.</p> </li> <li> <p> <code>TRANSLATION_AMBIGUOUS</code> - Detected an ambiguity in the translation meant it would be unsound to continue with validity checking. Additional context or follow-up questions might be needed to get translation to succeed.</p> </li> <li> <p> <code>TOO_COMPLEX</code> - The input contains too much information for Automated Reasoning to process within its latency limits.</p> </li> <li> <p> <code>NO_TRANSLATIONS</code> - Identifies that some or all of the input prompt wasn't translated into logic. This can happen if the input isn't relevant to the Automated Reasoning policy, or if the policy doesn't have variables to model relevant input. If Automated Reasoning can't translate anything, you get a single <code>NO_TRANSLATIONS</code> finding. You might also see a <code>NO_TRANSLATIONS</code> (along with other findings) if some part of the validation isn't translated.</p> </li> </ul>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "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
        },
        "confidenceThreshold":{
          "shape":"AutomatedReasoningCheckTranslationConfidence",
          "documentation":"<p>The minimum confidence level for logic validation. Content that meets the threshold is considered a high-confidence finding that can be validated.</p>"
        }
      }
    },
    "CreateAutomatedReasoningPolicyTestCaseResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "testCaseId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy for which the test was created.</p>"
        },
        "testCaseId":{
          "shape":"AutomatedReasoningPolicyTestCaseId",
          "documentation":"<p>The unique identifier of the created test.</p>"
        }
      }
    },
    "CreateAutomatedReasoningPolicyVersionRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "lastUpdatedDefinitionHash"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy for which to create a version.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "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
        },
        "lastUpdatedDefinitionHash":{
          "shape":"AutomatedReasoningPolicyHash",
          "documentation":"<p>The hash of the current policy definition used as a concurrency token to ensure the policy hasn't been modified since you last retrieved it.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>A list of tags to associate with the policy version.</p>"
        }
      }
    },
    "CreateAutomatedReasoningPolicyVersionResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "version",
        "name",
        "definitionHash",
        "createdAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The versioned Amazon Resource Name (ARN) of the policy version.</p>"
        },
        "version":{
          "shape":"AutomatedReasoningPolicyVersion",
          "documentation":"<p>The version number of the policy version.</p>"
        },
        "name":{
          "shape":"AutomatedReasoningPolicyName",
          "documentation":"<p>The name of the policy version.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDescription",
          "documentation":"<p>The description of the policy version.</p>"
        },
        "definitionHash":{
          "shape":"AutomatedReasoningPolicyHash",
          "documentation":"<p>The hash of the policy definition for this version.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy version was created.</p>"
        }
      }
    },
    "CreateCustomModelDeploymentRequest":{
      "type":"structure",
      "required":[
        "modelDeploymentName",
        "modelArn"
      ],
      "members":{
        "modelDeploymentName":{
          "shape":"ModelDeploymentName",
          "documentation":"<p>The name for the custom model deployment. The name must be unique within your Amazon Web Services account and Region.</p>"
        },
        "modelArn":{
          "shape":"CustomModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the custom model to deploy for on-demand inference. The custom model must be in the <code>Active</code> state.</p>"
        },
        "description":{
          "shape":"CustomModelDeploymentDescription",
          "documentation":"<p>A description for the custom model deployment to help you identify its purpose.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>Tags to assign to the custom model deployment. You can use tags to organize and track your Amazon Web Services resources for cost allocation and management purposes.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "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. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-idempotency.html\">Ensuring idempotency</a>.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateCustomModelDeploymentResponse":{
      "type":"structure",
      "required":["customModelDeploymentArn"],
      "members":{
        "customModelDeploymentArn":{
          "shape":"CustomModelDeploymentArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the custom model deployment. Use this ARN as the <code>modelId</code> parameter when invoking the model with the <code>InvokeModel</code> or <code>Converse</code> operations.</p>"
        }
      }
    },
    "CreateCustomModelRequest":{
      "type":"structure",
      "required":[
        "modelName",
        "modelSourceConfig"
      ],
      "members":{
        "modelName":{
          "shape":"CustomModelName",
          "documentation":"<p>A unique name for the custom model.</p>"
        },
        "modelSourceConfig":{
          "shape":"ModelDataSource",
          "documentation":"<p>The data source for the model. The Amazon S3 URI in the model source must be for the Amazon-managed Amazon S3 bucket containing your model artifacts.</p>"
        },
        "modelKmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the customer managed KMS key to encrypt the custom model. If you don't provide a KMS key, Amazon Bedrock uses an Amazon Web Services-managed KMS key to encrypt the model. </p> <p>If you provide a customer managed KMS key, your Amazon Bedrock service role must have permissions to use it. For more information see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/encryption-import-model.html\">Encryption of imported models</a>. </p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock assumes to perform tasks on your behalf. This role must have permissions to access the Amazon S3 bucket containing your model artifacts and the KMS key (if specified). For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-import-iam-role.html\">Setting up an IAM service role for importing models</a> in the Amazon Bedrock User Guide.</p>"
        },
        "modelTags":{
          "shape":"TagList",
          "documentation":"<p>A list of key-value pairs to associate with the custom model resource. You can use these tags to organize and identify your resources.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/tagging.html\">Tagging resources</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not 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
        }
      }
    },
    "CreateCustomModelResponse":{
      "type":"structure",
      "required":["modelArn"],
      "members":{
        "modelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the new custom model.</p>"
        }
      }
    },
    "CreateEvaluationJobRequest":{
      "type":"structure",
      "required":[
        "jobName",
        "roleArn",
        "evaluationConfig",
        "inferenceConfig",
        "outputDataConfig"
      ],
      "members":{
        "jobName":{
          "shape":"EvaluationJobName",
          "documentation":"<p>A name for the evaluation job. Names must unique with your Amazon Web Services account, and your account's Amazon Web Services region.</p>"
        },
        "jobDescription":{
          "shape":"EvaluationJobDescription",
          "documentation":"<p>A description of the evaluation job.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not 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 an IAM service role that Amazon Bedrock can assume to perform tasks on your behalf. To learn more about the required permissions, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-security.html\">Required permissions for model evaluations</a>.</p>"
        },
        "customerEncryptionKeyId":{
          "shape":"KmsKeyId",
          "documentation":"<p>Specify your customer managed encryption key Amazon Resource Name (ARN) that will be used to encrypt your evaluation job.</p>"
        },
        "jobTags":{
          "shape":"TagList",
          "documentation":"<p>Tags to attach to the model evaluation job.</p>"
        },
        "applicationType":{
          "shape":"ApplicationType",
          "documentation":"<p>Specifies whether the evaluation job is for evaluating a model or evaluating a knowledge base (retrieval and response generation).</p>"
        },
        "evaluationConfig":{
          "shape":"EvaluationConfig",
          "documentation":"<p>Contains the configuration details of either an automated or human-based evaluation job.</p>"
        },
        "inferenceConfig":{
          "shape":"EvaluationInferenceConfig",
          "documentation":"<p>Contains the configuration details of the inference model for the evaluation job.</p> <p>For model evaluation jobs, automated jobs support a single model or <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html\">inference profile</a>, and jobs that use human workers support two models or inference profiles.</p>"
        },
        "outputDataConfig":{
          "shape":"EvaluationOutputDataConfig",
          "documentation":"<p>Contains the configuration details of the Amazon S3 bucket for storing the results of the evaluation job.</p>"
        }
      }
    },
    "CreateEvaluationJobResponse":{
      "type":"structure",
      "required":["jobArn"],
      "members":{
        "jobArn":{
          "shape":"EvaluationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluation job.</p>"
        }
      }
    },
    "CreateFoundationModelAgreementRequest":{
      "type":"structure",
      "required":[
        "offerToken",
        "modelId"
      ],
      "members":{
        "offerToken":{
          "shape":"OfferToken",
          "documentation":"<p>An offer token encapsulates the information for an offer.</p>"
        },
        "modelId":{
          "shape":"BedrockModelId",
          "documentation":"<p>Model Id of the model for the access request.</p>"
        }
      }
    },
    "CreateFoundationModelAgreementResponse":{
      "type":"structure",
      "required":["modelId"],
      "members":{
        "modelId":{
          "shape":"BedrockModelId",
          "documentation":"<p>Model Id of the model for the access request.</p>"
        }
      }
    },
    "CreateGuardrailRequest":{
      "type":"structure",
      "required":[
        "name",
        "blockedInputMessaging",
        "blockedOutputsMessaging"
      ],
      "members":{
        "name":{
          "shape":"GuardrailName",
          "documentation":"<p>The name to give the guardrail.</p>"
        },
        "description":{
          "shape":"GuardrailDescription",
          "documentation":"<p>A description of the guardrail.</p>"
        },
        "topicPolicyConfig":{
          "shape":"GuardrailTopicPolicyConfig",
          "documentation":"<p>The topic policies to configure for the guardrail.</p>"
        },
        "contentPolicyConfig":{
          "shape":"GuardrailContentPolicyConfig",
          "documentation":"<p>The content filter policies to configure for the guardrail.</p>"
        },
        "wordPolicyConfig":{
          "shape":"GuardrailWordPolicyConfig",
          "documentation":"<p>The word policy you configure for the guardrail.</p>"
        },
        "sensitiveInformationPolicyConfig":{
          "shape":"GuardrailSensitiveInformationPolicyConfig",
          "documentation":"<p>The sensitive information policy to configure for the guardrail.</p>"
        },
        "contextualGroundingPolicyConfig":{
          "shape":"GuardrailContextualGroundingPolicyConfig",
          "documentation":"<p>The contextual grounding policy configuration used to create a guardrail.</p>"
        },
        "automatedReasoningPolicyConfig":{
          "shape":"GuardrailAutomatedReasoningPolicyConfig",
          "documentation":"<p>Optional configuration for integrating Automated Reasoning policies with the new guardrail.</p>"
        },
        "crossRegionConfig":{
          "shape":"GuardrailCrossRegionConfig",
          "documentation":"<p>The system-defined guardrail profile that you're using with your guardrail. Guardrail profiles define the destination Amazon Web Services Regions where guardrail inference requests can be automatically routed.</p> <p>For more information, see the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html\">Amazon Bedrock User Guide</a>.</p>"
        },
        "blockedInputMessaging":{
          "shape":"GuardrailBlockedMessaging",
          "documentation":"<p>The message to return when the guardrail blocks a prompt.</p>"
        },
        "blockedOutputsMessaging":{
          "shape":"GuardrailBlockedMessaging",
          "documentation":"<p>The message to return when the guardrail blocks a model response.</p>"
        },
        "kmsKeyId":{
          "shape":"KmsKeyId",
          "documentation":"<p>The ARN of the KMS key that you use to encrypt the guardrail.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags that you want to attach to the guardrail. </p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than once. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a> in the <i>Amazon S3 User Guide</i>.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateGuardrailResponse":{
      "type":"structure",
      "required":[
        "guardrailId",
        "guardrailArn",
        "version",
        "createdAt"
      ],
      "members":{
        "guardrailId":{
          "shape":"GuardrailId",
          "documentation":"<p>The unique identifier of the guardrail that was created.</p>"
        },
        "guardrailArn":{
          "shape":"GuardrailArn",
          "documentation":"<p>The ARN of the guardrail.</p>"
        },
        "version":{
          "shape":"GuardrailDraftVersion",
          "documentation":"<p>The version of the guardrail that was created. This value will always be <code>DRAFT</code>.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the guardrail was created.</p>"
        }
      }
    },
    "CreateGuardrailVersionRequest":{
      "type":"structure",
      "required":["guardrailIdentifier"],
      "members":{
        "guardrailIdentifier":{
          "shape":"GuardrailIdentifier",
          "documentation":"<p>The unique identifier of the guardrail. This can be an ID or the ARN.</p>",
          "location":"uri",
          "locationName":"guardrailIdentifier"
        },
        "description":{
          "shape":"GuardrailDescription",
          "documentation":"<p>A description of the guardrail version.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than once. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a> in the <i>Amazon S3 User Guide</i>.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateGuardrailVersionResponse":{
      "type":"structure",
      "required":[
        "guardrailId",
        "version"
      ],
      "members":{
        "guardrailId":{
          "shape":"GuardrailId",
          "documentation":"<p>The unique identifier of the guardrail.</p>"
        },
        "version":{
          "shape":"GuardrailNumericalVersion",
          "documentation":"<p>The number of the version of the guardrail.</p>"
        }
      }
    },
    "CreateInferenceProfileRequest":{
      "type":"structure",
      "required":[
        "inferenceProfileName",
        "modelSource"
      ],
      "members":{
        "inferenceProfileName":{
          "shape":"InferenceProfileName",
          "documentation":"<p>A name for the inference profile.</p>"
        },
        "description":{
          "shape":"InferenceProfileDescription",
          "documentation":"<p>A description for the inference profile.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not 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
        },
        "modelSource":{
          "shape":"InferenceProfileModelSource",
          "documentation":"<p>The foundation model or system-defined inference profile that the inference profile will track metrics and costs for.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>An array of objects, each of which contains a tag and its value. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Tagging resources</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>"
        }
      }
    },
    "CreateInferenceProfileResponse":{
      "type":"structure",
      "required":["inferenceProfileArn"],
      "members":{
        "inferenceProfileArn":{
          "shape":"InferenceProfileArn",
          "documentation":"<p>The ARN of the inference profile that you created.</p>"
        },
        "status":{
          "shape":"InferenceProfileStatus",
          "documentation":"<p>The status of the inference profile. <code>ACTIVE</code> means that the inference profile is ready to be used.</p>"
        }
      }
    },
    "CreateMarketplaceModelEndpointRequest":{
      "type":"structure",
      "required":[
        "modelSourceIdentifier",
        "endpointConfig",
        "endpointName"
      ],
      "members":{
        "modelSourceIdentifier":{
          "shape":"ModelSourceIdentifier",
          "documentation":"<p>The ARN of the model from Amazon Bedrock Marketplace that you want to deploy to the endpoint.</p>"
        },
        "endpointConfig":{
          "shape":"EndpointConfig",
          "documentation":"<p>The configuration for the endpoint, including the number and type of instances to use.</p>"
        },
        "acceptEula":{
          "shape":"AcceptEula",
          "documentation":"<p>Indicates whether you accept the end-user license agreement (EULA) for the model. Set to <code>true</code> to accept the EULA.</p>"
        },
        "endpointName":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the endpoint. This name must be unique within your Amazon Web Services account and region.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This token is listed as not required because Amazon Web Services SDKs automatically generate it for you and set this parameter. If you're not using the Amazon Web Services SDK or the CLI, you must provide this token or the action will fail.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>An array of key-value pairs to apply to the underlying Amazon SageMaker endpoint. You can use these tags to organize and identify your Amazon Web Services resources.</p>"
        }
      }
    },
    "CreateMarketplaceModelEndpointResponse":{
      "type":"structure",
      "required":["marketplaceModelEndpoint"],
      "members":{
        "marketplaceModelEndpoint":{
          "shape":"MarketplaceModelEndpoint",
          "documentation":"<p>Details about the created endpoint.</p>"
        }
      }
    },
    "CreateModelCopyJobRequest":{
      "type":"structure",
      "required":[
        "sourceModelArn",
        "targetModelName"
      ],
      "members":{
        "sourceModelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model to be copied.</p>"
        },
        "targetModelName":{
          "shape":"CustomModelName",
          "documentation":"<p>A name for the copied model.</p>"
        },
        "modelKmsKeyId":{
          "shape":"KmsKeyId",
          "documentation":"<p>The ARN of the KMS key that you use to encrypt the model copy.</p>"
        },
        "targetModelTags":{
          "shape":"TagList",
          "documentation":"<p>Tags to associate with the target model. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/tagging.html\">Tag resources</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not 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
        }
      }
    },
    "CreateModelCopyJobResponse":{
      "type":"structure",
      "required":["jobArn"],
      "members":{
        "jobArn":{
          "shape":"ModelCopyJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model copy job.</p>"
        }
      }
    },
    "CreateModelCustomizationJobRequest":{
      "type":"structure",
      "required":[
        "jobName",
        "customModelName",
        "roleArn",
        "baseModelIdentifier",
        "trainingDataConfig",
        "outputDataConfig"
      ],
      "members":{
        "jobName":{
          "shape":"JobName",
          "documentation":"<p>A name for the fine-tuning job.</p>"
        },
        "customModelName":{
          "shape":"CustomModelName",
          "documentation":"<p>A name for the resulting custom model.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock can assume to perform tasks on your behalf. For example, during model training, Amazon Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket. To pass this role to Amazon Bedrock, the caller of this API must have the <code>iam:PassRole</code> permission. </p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not 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
        },
        "baseModelIdentifier":{
          "shape":"BaseModelIdentifier",
          "documentation":"<p>Name of the base model.</p>"
        },
        "customizationType":{
          "shape":"CustomizationType",
          "documentation":"<p>The customization type.</p>"
        },
        "customModelKmsKeyId":{
          "shape":"KmsKeyId",
          "documentation":"<p>The custom model is encrypted at rest using this key.</p>"
        },
        "jobTags":{
          "shape":"TagList",
          "documentation":"<p>Tags to attach to the job.</p>"
        },
        "customModelTags":{
          "shape":"TagList",
          "documentation":"<p>Tags to attach to the resulting custom model.</p>"
        },
        "trainingDataConfig":{
          "shape":"TrainingDataConfig",
          "documentation":"<p>Information about the training dataset.</p>"
        },
        "validationDataConfig":{
          "shape":"ValidationDataConfig",
          "documentation":"<p>Information about the validation dataset. </p>"
        },
        "outputDataConfig":{
          "shape":"OutputDataConfig",
          "documentation":"<p>S3 location for the output data.</p>"
        },
        "hyperParameters":{
          "shape":"ModelCustomizationHyperParameters",
          "documentation":"<p>Parameters related to tuning the model. For details on the format for different models, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models-hp.html\">Custom model hyperparameters</a>.</p>"
        },
        "vpcConfig":{
          "shape":"VpcConfig",
          "documentation":"<p>The configuration of the Virtual Private Cloud (VPC) that contains the resources that you're using for this job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/vpc-model-customization.html\">Protect your model customization jobs using a VPC</a>.</p>"
        },
        "customizationConfig":{
          "shape":"CustomizationConfig",
          "documentation":"<p>The customization configuration for the model customization job.</p>"
        }
      }
    },
    "CreateModelCustomizationJobResponse":{
      "type":"structure",
      "required":["jobArn"],
      "members":{
        "jobArn":{
          "shape":"ModelCustomizationJobArn",
          "documentation":"<p>Amazon Resource Name (ARN) of the fine tuning job</p>"
        }
      }
    },
    "CreateModelImportJobRequest":{
      "type":"structure",
      "required":[
        "jobName",
        "importedModelName",
        "roleArn",
        "modelDataSource"
      ],
      "members":{
        "jobName":{
          "shape":"JobName",
          "documentation":"<p>The name of the import job.</p>"
        },
        "importedModelName":{
          "shape":"ImportedModelName",
          "documentation":"<p>The name of the imported model.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model import job.</p>"
        },
        "modelDataSource":{
          "shape":"ModelDataSource",
          "documentation":"<p>The data source for the imported model.</p>"
        },
        "jobTags":{
          "shape":"TagList",
          "documentation":"<p>Tags to attach to this import job. </p>"
        },
        "importedModelTags":{
          "shape":"TagList",
          "documentation":"<p>Tags to attach to the imported model.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not 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>"
        },
        "vpcConfig":{
          "shape":"VpcConfig",
          "documentation":"<p>VPC configuration parameters for the private Virtual Private Cloud (VPC) that contains the resources you are using for the import job.</p>"
        },
        "importedModelKmsKeyId":{
          "shape":"KmsKeyId",
          "documentation":"<p>The imported model is encrypted at rest using this key.</p>"
        }
      }
    },
    "CreateModelImportJobResponse":{
      "type":"structure",
      "required":["jobArn"],
      "members":{
        "jobArn":{
          "shape":"ModelImportJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model import job.</p>"
        }
      }
    },
    "CreateModelInvocationJobRequest":{
      "type":"structure",
      "required":[
        "jobName",
        "roleArn",
        "modelId",
        "inputDataConfig",
        "outputDataConfig"
      ],
      "members":{
        "jobName":{
          "shape":"ModelInvocationJobName",
          "documentation":"<p>A name to give the batch inference job.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the service role with permissions to carry out and manage batch inference. You can use the console to create a default service role or follow the steps at <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-iam-sr.html\">Create a service role for batch inference</a>.</p>"
        },
        "clientRequestToken":{
          "shape":"ModelInvocationIdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not 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
        },
        "modelId":{
          "shape":"ModelId",
          "documentation":"<p>The unique identifier of the foundation model to use for the batch inference job.</p>"
        },
        "inputDataConfig":{
          "shape":"ModelInvocationJobInputDataConfig",
          "documentation":"<p>Details about the location of the input to the batch inference job.</p>"
        },
        "outputDataConfig":{
          "shape":"ModelInvocationJobOutputDataConfig",
          "documentation":"<p>Details about the location of the output of the batch inference job.</p>"
        },
        "vpcConfig":{
          "shape":"VpcConfig",
          "documentation":"<p>The configuration of the Virtual Private Cloud (VPC) for the data in the batch inference job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-vpc\">Protect batch inference jobs using a VPC</a>.</p>"
        },
        "timeoutDurationInHours":{
          "shape":"ModelInvocationJobTimeoutDurationInHours",
          "documentation":"<p>The number of hours after which to force the batch inference job to time out.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>Any tags to associate with the batch inference job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/tagging.html\">Tagging Amazon Bedrock resources</a>.</p>"
        },
        "modelInvocationType":{
          "shape":"ModelInvocationType",
          "documentation":"<p>The invocation endpoint for ModelInvocationJob</p>"
        }
      }
    },
    "CreateModelInvocationJobResponse":{
      "type":"structure",
      "required":["jobArn"],
      "members":{
        "jobArn":{
          "shape":"ModelInvocationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the batch inference job.</p>"
        }
      }
    },
    "CreatePromptRouterRequest":{
      "type":"structure",
      "required":[
        "promptRouterName",
        "models",
        "routingCriteria",
        "fallbackModel"
      ],
      "members":{
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure idempotency of your requests. If not specified, the Amazon Web Services SDK automatically generates one for you.</p>",
          "idempotencyToken":true
        },
        "promptRouterName":{
          "shape":"PromptRouterName",
          "documentation":"<p>The name of the prompt router. The name must be unique within your Amazon Web Services account in the current region.</p>"
        },
        "models":{
          "shape":"PromptRouterTargetModels",
          "documentation":"<p>A list of foundation models that the prompt router can route requests to. At least one model must be specified.</p>"
        },
        "description":{
          "shape":"PromptRouterDescription",
          "documentation":"<p>An optional description of the prompt router to help identify its purpose.</p>"
        },
        "routingCriteria":{
          "shape":"RoutingCriteria",
          "documentation":"<p>The criteria, which is the response quality difference, used to determine how incoming requests are routed to different models.</p>"
        },
        "fallbackModel":{
          "shape":"PromptRouterTargetModel",
          "documentation":"<p>The default model to use when the routing criteria is not met.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>An array of key-value pairs to apply to this resource as tags. You can use tags to categorize and manage your Amazon Web Services resources.</p>"
        }
      }
    },
    "CreatePromptRouterResponse":{
      "type":"structure",
      "members":{
        "promptRouterArn":{
          "shape":"PromptRouterArn",
          "documentation":"<p>The Amazon Resource Name (ARN) that uniquely identifies the prompt router.</p>"
        }
      }
    },
    "CreateProvisionedModelThroughputRequest":{
      "type":"structure",
      "required":[
        "modelUnits",
        "provisionedModelName",
        "modelId"
      ],
      "members":{
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring idempotency</a> in the Amazon S3 User Guide.</p>",
          "idempotencyToken":true
        },
        "modelUnits":{
          "shape":"PositiveInteger",
          "documentation":"<p>Number of model units to allocate. A model unit delivers a specific throughput level for the specified model. The throughput level of a model unit specifies the total number of input and output tokens that it can process and generate within a span of one minute. By default, your account has no model units for purchasing Provisioned Throughputs with commitment. You must first visit the <a href=\"https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase\">Amazon Web Services support center</a> to request MUs.</p> <p>For model unit quotas, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html#prov-thru-quotas\">Provisioned Throughput quotas</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p> <p>For more information about what an MU specifies, contact your Amazon Web Services account manager.</p>"
        },
        "provisionedModelName":{
          "shape":"ProvisionedModelName",
          "documentation":"<p>The name for this Provisioned Throughput.</p>"
        },
        "modelId":{
          "shape":"ModelIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) or name of the model to associate with this Provisioned Throughput. For a list of models for which you can purchase Provisioned Throughput, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#prov-throughput-models\">Amazon Bedrock model IDs for purchasing Provisioned Throughput</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>"
        },
        "commitmentDuration":{
          "shape":"CommitmentDuration",
          "documentation":"<p>The commitment duration requested for the Provisioned Throughput. Billing occurs hourly and is discounted for longer commitment terms. To request a no-commit Provisioned Throughput, omit this field.</p> <p>Custom models support all levels of commitment. To see which base models support no commitment, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/pt-supported.html\">Supported regions and models for Provisioned Throughput</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a> </p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>Tags to associate with this Provisioned Throughput.</p>"
        }
      }
    },
    "CreateProvisionedModelThroughputResponse":{
      "type":"structure",
      "required":["provisionedModelArn"],
      "members":{
        "provisionedModelArn":{
          "shape":"ProvisionedModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) for this Provisioned Throughput.</p>"
        }
      }
    },
    "CustomMetricBedrockEvaluatorModel":{
      "type":"structure",
      "required":["modelIdentifier"],
      "members":{
        "modelIdentifier":{
          "shape":"EvaluatorModelIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluator model for custom metrics. For a list of supported evaluator models, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/evaluation-judge.html\">Evaluate model performance using another LLM as a judge</a> and <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/evaluation-kb.html\">Evaluate the performance of RAG sources using Amazon Bedrock evaluations</a>.</p>"
        }
      },
      "documentation":"<p>Defines the model you want to evaluate custom metrics in an Amazon Bedrock evaluation job.</p>"
    },
    "CustomMetricBedrockEvaluatorModels":{
      "type":"list",
      "member":{"shape":"CustomMetricBedrockEvaluatorModel"},
      "max":1,
      "min":1
    },
    "CustomMetricDefinition":{
      "type":"structure",
      "required":[
        "name",
        "instructions"
      ],
      "members":{
        "name":{
          "shape":"MetricName",
          "documentation":"<p>The name for a custom metric. Names must be unique in your Amazon Web Services region.</p>"
        },
        "instructions":{
          "shape":"CustomMetricInstructions",
          "documentation":"<p>The prompt for a custom metric that instructs the evaluator model how to rate the model or RAG source under evaluation.</p>"
        },
        "ratingScale":{
          "shape":"RatingScale",
          "documentation":"<p>Defines the rating scale to be used for a custom metric. We recommend that you always define a ratings scale when creating a custom metric. If you don't define a scale, Amazon Bedrock won't be able to visually display the results of the evaluation in the console or calculate average values of numerical scores. For more information on specifying a rating scale, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-custom-metrics-prompt-formats.html#model-evaluation-custom-metrics-prompt-formats-schema\">Specifying an output schema (rating scale)</a>.</p>"
        }
      },
      "documentation":"<p>The definition of a custom metric for use in an Amazon Bedrock evaluation job. A custom metric definition includes a metric name, prompt (instructions) and optionally, a rating scale. Your prompt must include a task description and input variables. The required input variables are different for model-as-a-judge and RAG evaluations.</p> <p>For more information about how to define a custom metric in Amazon Bedrock, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-custom-metrics-prompt-formats.html\">Create a prompt for a custom metrics (LLM-as-a-judge model evaluations)</a> and <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/kb-evaluation-custom-metrics-prompt-formats.html\">Create a prompt for a custom metrics (RAG evaluations)</a>.</p>",
      "sensitive":true
    },
    "CustomMetricEvaluatorModelConfig":{
      "type":"structure",
      "required":["bedrockEvaluatorModels"],
      "members":{
        "bedrockEvaluatorModels":{
          "shape":"CustomMetricBedrockEvaluatorModels",
          "documentation":"<p>Defines the model you want to evaluate custom metrics in an Amazon Bedrock evaluation job.</p>"
        }
      },
      "documentation":"<p>Configuration of the evaluator model you want to use to evaluate custom metrics in an Amazon Bedrock evaluation job.</p>"
    },
    "CustomMetricInstructions":{
      "type":"string",
      "max":5000,
      "min":1
    },
    "CustomModelArn":{
      "type":"string",
      "max":1011,
      "min":20,
      "pattern":"arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:custom-model/(imported|[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})/[a-z0-9]{12}"
    },
    "CustomModelDeploymentArn":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:custom-model-deployment/[a-z0-9]{12}"
    },
    "CustomModelDeploymentDescription":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":".*"
    },
    "CustomModelDeploymentIdentifier":{
      "type":"string",
      "max":93,
      "min":1,
      "pattern":"(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:custom-model-deployment/[a-z0-9]{12})|^([0-9a-zA-Z][_-]?){1,63}"
    },
    "CustomModelDeploymentStatus":{
      "type":"string",
      "enum":[
        "Creating",
        "Active",
        "Failed"
      ]
    },
    "CustomModelDeploymentSummary":{
      "type":"structure",
      "required":[
        "customModelDeploymentArn",
        "customModelDeploymentName",
        "modelArn",
        "createdAt",
        "status"
      ],
      "members":{
        "customModelDeploymentArn":{
          "shape":"CustomModelDeploymentArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the custom model deployment.</p>"
        },
        "customModelDeploymentName":{
          "shape":"ModelDeploymentName",
          "documentation":"<p>The name of the custom model deployment.</p>"
        },
        "modelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the custom model associated with this deployment.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the custom model deployment was created.</p>"
        },
        "status":{
          "shape":"CustomModelDeploymentStatus",
          "documentation":"<p>The status of the custom model deployment. Possible values are <code>CREATING</code>, <code>ACTIVE</code>, and <code>FAILED</code>.</p>"
        },
        "lastUpdatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the custom model deployment was last modified.</p>"
        },
        "failureMessage":{
          "shape":"ErrorMessage",
          "documentation":"<p>If the deployment status is <code>FAILED</code>, this field contains a message describing the failure reason.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a custom model deployment, including its ARN, name, status, and associated custom model.</p>"
    },
    "CustomModelDeploymentSummaryList":{
      "type":"list",
      "member":{"shape":"CustomModelDeploymentSummary"}
    },
    "CustomModelDeploymentUpdateDetails":{
      "type":"structure",
      "required":[
        "modelArn",
        "updateStatus"
      ],
      "members":{
        "modelArn":{
          "shape":"ModelArn",
          "documentation":"<p> ARN of the new custom model being deployed as part of the update. </p>"
        },
        "updateStatus":{
          "shape":"CustomModelDeploymentUpdateStatus",
          "documentation":"<p> Current status of the deployment update. </p>"
        }
      },
      "documentation":"<p> Details about an update to a custom model deployment, including the new custom model resource ARN and current update status. </p>"
    },
    "CustomModelDeploymentUpdateStatus":{
      "type":"string",
      "enum":[
        "Updating",
        "UpdateCompleted",
        "UpdateFailed"
      ]
    },
    "CustomModelName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"([0-9a-zA-Z][_-]?){1,63}"
    },
    "CustomModelSummary":{
      "type":"structure",
      "required":[
        "modelArn",
        "modelName",
        "creationTime",
        "baseModelArn",
        "baseModelName"
      ],
      "members":{
        "modelArn":{
          "shape":"CustomModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the custom model.</p>"
        },
        "modelName":{
          "shape":"CustomModelName",
          "documentation":"<p>The name of the custom model.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>Creation time of the model.</p>"
        },
        "baseModelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The base model Amazon Resource Name (ARN).</p>"
        },
        "baseModelName":{
          "shape":"ModelName",
          "documentation":"<p>The base model name.</p>"
        },
        "customizationType":{
          "shape":"CustomizationType",
          "documentation":"<p>Specifies whether to carry out continued pre-training of a model or whether to fine-tune it. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a>.</p>"
        },
        "ownerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique identifier of the account that owns the model.</p>"
        },
        "modelStatus":{
          "shape":"ModelStatus",
          "documentation":"<p>The current status of the custom model. Possible values include:</p> <ul> <li> <p> <code>Creating</code> - The model is being created and validated.</p> </li> <li> <p> <code>Active</code> - The model has been successfully created and is ready for use.</p> </li> <li> <p> <code>Failed</code> - The model creation process failed.</p> </li> </ul>"
        }
      },
      "documentation":"<p>Summary information for a custom model.</p>"
    },
    "CustomModelSummaryList":{
      "type":"list",
      "member":{"shape":"CustomModelSummary"}
    },
    "CustomModelUnits":{
      "type":"structure",
      "members":{
        "customModelUnitsPerModelCopy":{
          "shape":"Integer",
          "documentation":"<p>The number of custom model units used to host a model copy. </p>"
        },
        "customModelUnitsVersion":{
          "shape":"CustomModelUnitsVersion",
          "documentation":"<p>The version of the custom model unit. Use to determine the billing rate for the custom model unit.</p>"
        }
      },
      "documentation":"<p>A <code>CustomModelUnit</code> (CMU) is an abstract view of the hardware utilization that Amazon Bedrock needs to host a single copy of your custom model. A model copy represents a single instance of your imported model that is ready to serve inference requests. Amazon Bedrock determines the number of custom model units that a model copy needs when you import the custom model. </p> <p>You can use <code>CustomModelUnits</code> to estimate the cost of running your custom model. For more information, see Calculate the cost of running a custom model in the Amazon Bedrock user guide. </p>"
    },
    "CustomModelUnitsVersion":{
      "type":"string",
      "pattern":"v\\d+.\\d+"
    },
    "CustomizationConfig":{
      "type":"structure",
      "members":{
        "distillationConfig":{
          "shape":"DistillationConfig",
          "documentation":"<p>The Distillation configuration for the custom model.</p>"
        },
        "rftConfig":{
          "shape":"RFTConfig",
          "documentation":"<p> Configuration settings for reinforcement fine-tuning (RFT) model customization, including grader configuration and hyperparameters. </p>"
        }
      },
      "documentation":"<p>A model customization configuration</p>",
      "union":true
    },
    "CustomizationType":{
      "type":"string",
      "enum":[
        "FINE_TUNING",
        "CONTINUED_PRE_TRAINING",
        "DISTILLATION",
        "REINFORCEMENT_FINE_TUNING",
        "IMPORTED"
      ]
    },
    "DataProcessingDetails":{
      "type":"structure",
      "members":{
        "status":{
          "shape":"JobStatusDetails",
          "documentation":"<p>The status of the data processing sub-task of the job.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time of the data processing sub-task of the job.</p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The latest update to the data processing sub-task of the job.</p>"
        }
      },
      "documentation":"<p>For a Distillation job, the status details for the data processing sub-task of the job.</p>"
    },
    "DeleteAutomatedReasoningPolicyBuildWorkflowRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId",
        "lastUpdatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy whose build workflow you want to delete.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow to delete.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        },
        "lastUpdatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the build workflow was last updated. This is used for optimistic concurrency control to prevent accidental deletion of workflows that have been modified.</p>",
          "location":"querystring",
          "locationName":"updatedAt"
        }
      }
    },
    "DeleteAutomatedReasoningPolicyBuildWorkflowResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteAutomatedReasoningPolicyRequest":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy to delete.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "force":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to force delete the automated reasoning policy even if it has active resources. When <code>false</code>, Amazon Bedrock validates if all artifacts have been deleted (e.g. policy version, test case, test result) for a policy before deletion. When <code>true</code>, Amazon Bedrock will delete the policy and all its artifacts without validation. Default is <code>false</code>. </p>",
          "location":"querystring",
          "locationName":"force"
        }
      }
    },
    "DeleteAutomatedReasoningPolicyResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteAutomatedReasoningPolicyTestCaseRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "testCaseId",
        "lastUpdatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy that contains the test.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "testCaseId":{
          "shape":"AutomatedReasoningPolicyTestCaseId",
          "documentation":"<p>The unique identifier of the test to delete.</p>",
          "location":"uri",
          "locationName":"testCaseId"
        },
        "lastUpdatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test was last updated. This is used as a concurrency token to prevent conflicting modifications.</p>",
          "location":"querystring",
          "locationName":"updatedAt"
        }
      }
    },
    "DeleteAutomatedReasoningPolicyTestCaseResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteCustomModelDeploymentRequest":{
      "type":"structure",
      "required":["customModelDeploymentIdentifier"],
      "members":{
        "customModelDeploymentIdentifier":{
          "shape":"CustomModelDeploymentIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) or name of the custom model deployment to delete.</p>",
          "location":"uri",
          "locationName":"customModelDeploymentIdentifier"
        }
      }
    },
    "DeleteCustomModelDeploymentResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteCustomModelRequest":{
      "type":"structure",
      "required":["modelIdentifier"],
      "members":{
        "modelIdentifier":{
          "shape":"ModelIdentifier",
          "documentation":"<p>Name of the model to delete.</p>",
          "location":"uri",
          "locationName":"modelIdentifier"
        }
      }
    },
    "DeleteCustomModelResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteEnforcedGuardrailConfigurationRequest":{
      "type":"structure",
      "required":["configId"],
      "members":{
        "configId":{
          "shape":"AccountEnforcedGuardrailConfigurationId",
          "documentation":"<p>Unique ID for the account enforced configuration.</p>",
          "location":"uri",
          "locationName":"configId"
        }
      }
    },
    "DeleteEnforcedGuardrailConfigurationResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteFoundationModelAgreementRequest":{
      "type":"structure",
      "required":["modelId"],
      "members":{
        "modelId":{
          "shape":"BedrockModelId",
          "documentation":"<p>Model Id of the model access to delete.</p>"
        }
      }
    },
    "DeleteFoundationModelAgreementResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteGuardrailRequest":{
      "type":"structure",
      "required":["guardrailIdentifier"],
      "members":{
        "guardrailIdentifier":{
          "shape":"GuardrailIdentifier",
          "documentation":"<p>The unique identifier of the guardrail. This can be an ID or the ARN.</p>",
          "location":"uri",
          "locationName":"guardrailIdentifier"
        },
        "guardrailVersion":{
          "shape":"GuardrailNumericalVersion",
          "documentation":"<p>The version of the guardrail.</p>",
          "location":"querystring",
          "locationName":"guardrailVersion"
        }
      }
    },
    "DeleteGuardrailResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteImportedModelRequest":{
      "type":"structure",
      "required":["modelIdentifier"],
      "members":{
        "modelIdentifier":{
          "shape":"ImportedModelIdentifier",
          "documentation":"<p>Name of the imported model to delete.</p>",
          "location":"uri",
          "locationName":"modelIdentifier"
        }
      }
    },
    "DeleteImportedModelResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteInferenceProfileRequest":{
      "type":"structure",
      "required":["inferenceProfileIdentifier"],
      "members":{
        "inferenceProfileIdentifier":{
          "shape":"InferenceProfileIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) or ID of the application inference profile to delete.</p>",
          "location":"uri",
          "locationName":"inferenceProfileIdentifier"
        }
      }
    },
    "DeleteInferenceProfileResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteMarketplaceModelEndpointRequest":{
      "type":"structure",
      "required":["endpointArn"],
      "members":{
        "endpointArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the endpoint you want to delete.</p>",
          "location":"uri",
          "locationName":"endpointArn"
        }
      }
    },
    "DeleteMarketplaceModelEndpointResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteModelInvocationLoggingConfigurationRequest":{
      "type":"structure",
      "members":{}
    },
    "DeleteModelInvocationLoggingConfigurationResponse":{
      "type":"structure",
      "members":{}
    },
    "DeletePromptRouterRequest":{
      "type":"structure",
      "required":["promptRouterArn"],
      "members":{
        "promptRouterArn":{
          "shape":"PromptRouterArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the prompt router to delete.</p>",
          "location":"uri",
          "locationName":"promptRouterArn"
        }
      }
    },
    "DeletePromptRouterResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteProvisionedModelThroughputRequest":{
      "type":"structure",
      "required":["provisionedModelId"],
      "members":{
        "provisionedModelId":{
          "shape":"ProvisionedModelId",
          "documentation":"<p>The Amazon Resource Name (ARN) or name of the Provisioned Throughput.</p>",
          "location":"uri",
          "locationName":"provisionedModelId"
        }
      }
    },
    "DeleteProvisionedModelThroughputResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteResourcePolicyRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"ResourcePolicyResourceArn",
          "documentation":"<p>The ARN of the Bedrock resource to which this resource policy applies.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "DeleteResourcePolicyResponse":{
      "type":"structure",
      "members":{}
    },
    "DeregisterMarketplaceModelEndpointRequest":{
      "type":"structure",
      "required":["endpointArn"],
      "members":{
        "endpointArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the endpoint you want to deregister.</p>",
          "location":"uri",
          "locationName":"endpointArn"
        }
      }
    },
    "DeregisterMarketplaceModelEndpointResponse":{
      "type":"structure",
      "members":{}
    },
    "DimensionalPriceRate":{
      "type":"structure",
      "members":{
        "dimension":{
          "shape":"String",
          "documentation":"<p>Dimension for the price rate.</p>"
        },
        "price":{
          "shape":"String",
          "documentation":"<p>Single-dimensional rate information.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>Description of the price rate.</p>"
        },
        "unit":{
          "shape":"String",
          "documentation":"<p>Unit associated with the price.</p>"
        }
      },
      "documentation":"<p>Dimensional price rate.</p>"
    },
    "DistillationConfig":{
      "type":"structure",
      "required":["teacherModelConfig"],
      "members":{
        "teacherModelConfig":{
          "shape":"TeacherModelConfig",
          "documentation":"<p>The teacher model configuration.</p>"
        }
      },
      "documentation":"<p>Settings for distilling a foundation model into a smaller and more efficient model.</p>"
    },
    "EndpointConfig":{
      "type":"structure",
      "members":{
        "sageMaker":{
          "shape":"SageMakerEndpoint",
          "documentation":"<p>The configuration specific to Amazon SageMaker for the endpoint.</p>"
        }
      },
      "documentation":"<p>Specifies the configuration for the endpoint.</p>",
      "union":true
    },
    "EndpointName":{
      "type":"string",
      "max":30,
      "min":1
    },
    "EntitlementAvailability":{
      "type":"string",
      "enum":[
        "AVAILABLE",
        "NOT_AVAILABLE"
      ]
    },
    "EpochCount":{
      "type":"integer",
      "box":true,
      "max":50,
      "min":1
    },
    "ErrorMessage":{
      "type":"string",
      "max":2048,
      "min":0
    },
    "ErrorMessages":{
      "type":"list",
      "member":{"shape":"ErrorMessage"},
      "max":20,
      "min":0
    },
    "EvaluationBedrockKnowledgeBaseIdentifiers":{
      "type":"list",
      "member":{"shape":"KnowledgeBaseId"},
      "max":1,
      "min":0
    },
    "EvaluationBedrockModel":{
      "type":"structure",
      "required":["modelIdentifier"],
      "members":{
        "modelIdentifier":{
          "shape":"EvaluationBedrockModelIdentifier",
          "documentation":"<p>The ARN of the Amazon Bedrock model or inference profile specified.</p>"
        },
        "inferenceParams":{
          "shape":"EvaluationModelInferenceParams",
          "documentation":"<p>Each Amazon Bedrock support different inference parameters that change how the model behaves during inference.</p>"
        },
        "performanceConfig":{
          "shape":"PerformanceConfiguration",
          "documentation":"<p>Specifies performance settings for the model or inference profile.</p>"
        }
      },
      "documentation":"<p>Contains the ARN of the Amazon Bedrock model or <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html\">inference profile</a> specified in your evaluation job. Each Amazon Bedrock model supports different <code>inferenceParams</code>. To learn more about supported inference parameters for Amazon Bedrock models, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html\">Inference parameters for foundation models</a>.</p> <p>The <code>inferenceParams</code> are specified using JSON. To successfully insert JSON as string make sure that all quotations are properly escaped. For example, <code>\"temperature\":\"0.25\"</code> key value pair would need to be formatted as <code>\\\"temperature\\\":\\\"0.25\\\"</code> to successfully accepted in the request.</p>"
    },
    "EvaluationBedrockModelIdentifier":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:((:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:application-inference-profile/[a-z0-9]{12})|([0-9]{12}:inference-profile/(([a-z-]{2,8}.)[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63})))|([0-9]{12}:(default-prompt-router|prompt-router)/[a-zA-Z0-9-:.]+)))|(([a-z]{2,4}[.]{1})([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|arn:aws(-[^:]+)?:sagemaker:[a-z0-9-]{1,20}:[0-9]{12}:endpoint/[a-z0-9-]{1,63}"
    },
    "EvaluationBedrockModelIdentifiers":{
      "type":"list",
      "member":{"shape":"EvaluationBedrockModelIdentifier"},
      "max":2,
      "min":0
    },
    "EvaluationConfig":{
      "type":"structure",
      "members":{
        "automated":{
          "shape":"AutomatedEvaluationConfig",
          "documentation":"<p>Contains the configuration details of an automated evaluation job that computes metrics.</p>"
        },
        "human":{
          "shape":"HumanEvaluationConfig",
          "documentation":"<p>Contains the configuration details of an evaluation job that uses human workers.</p>"
        }
      },
      "documentation":"<p>The configuration details of either an automated or human-based evaluation job.</p>",
      "union":true
    },
    "EvaluationDataset":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"EvaluationDatasetName",
          "documentation":"<p>Used to specify supported built-in prompt datasets. Valid values are <code>Builtin.Bold</code>, <code>Builtin.BoolQ</code>, <code>Builtin.NaturalQuestions</code>, <code>Builtin.Gigaword</code>, <code>Builtin.RealToxicityPrompts</code>, <code>Builtin.TriviaQA</code>, <code>Builtin.T-Rex</code>, <code>Builtin.WomensEcommerceClothingReviews</code> and <code>Builtin.Wikitext2</code>.</p>"
        },
        "datasetLocation":{
          "shape":"EvaluationDatasetLocation",
          "documentation":"<p>For custom prompt datasets, you must specify the location in Amazon S3 where the prompt dataset is saved.</p>"
        }
      },
      "documentation":"<p>Used to specify the name of a built-in prompt dataset and optionally, the Amazon S3 bucket where a custom prompt dataset is saved.</p>"
    },
    "EvaluationDatasetLocation":{
      "type":"structure",
      "members":{
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The S3 URI of the S3 bucket specified in the job.</p>"
        }
      },
      "documentation":"<p>The location in Amazon S3 where your prompt dataset is stored.</p>",
      "union":true
    },
    "EvaluationDatasetMetricConfig":{
      "type":"structure",
      "required":[
        "taskType",
        "dataset",
        "metricNames"
      ],
      "members":{
        "taskType":{
          "shape":"EvaluationTaskType",
          "documentation":"<p>The the type of task you want to evaluate for your evaluation job. This applies only to model evaluation jobs and is ignored for knowledge base evaluation jobs.</p>"
        },
        "dataset":{
          "shape":"EvaluationDataset",
          "documentation":"<p>Specifies the prompt dataset.</p>"
        },
        "metricNames":{
          "shape":"EvaluationMetricNames",
          "documentation":"<p>The names of the metrics you want to use for your evaluation job.</p> <p>For knowledge base evaluation jobs that evaluate retrieval only, valid values are \"<code>Builtin.ContextRelevance</code>\", \"<code>Builtin.ContextCoverage</code>\".</p> <p>For knowledge base evaluation jobs that evaluate retrieval with response generation, valid values are \"<code>Builtin.Correctness</code>\", \"<code>Builtin.Completeness</code>\", \"<code>Builtin.Helpfulness</code>\", \"<code>Builtin.LogicalCoherence</code>\", \"<code>Builtin.Faithfulness</code>\", \"<code>Builtin.Harmfulness</code>\", \"<code>Builtin.Stereotyping</code>\", \"<code>Builtin.Refusal</code>\".</p> <p>For automated model evaluation jobs, valid values are \"<code>Builtin.Accuracy</code>\", \"<code>Builtin.Robustness</code>\", and \"<code>Builtin.Toxicity</code>\". In model evaluation jobs that use a LLM as judge you can specify \"<code>Builtin.Correctness</code>\", \"<code>Builtin.Completeness\"</code>, \"<code>Builtin.Faithfulness\"</code>, \"<code>Builtin.Helpfulness</code>\", \"<code>Builtin.Coherence</code>\", \"<code>Builtin.Relevance</code>\", \"<code>Builtin.FollowingInstructions</code>\", \"<code>Builtin.ProfessionalStyleAndTone</code>\", You can also specify the following responsible AI related metrics only for model evaluation job that use a LLM as judge \"<code>Builtin.Harmfulness</code>\", \"<code>Builtin.Stereotyping</code>\", and \"<code>Builtin.Refusal</code>\".</p> <p>For human-based model evaluation jobs, the list of strings must match the <code>name</code> parameter specified in <code>HumanEvaluationCustomMetric</code>.</p>"
        }
      },
      "documentation":"<p>Defines the prompt datasets, built-in metric names and custom metric names, and the task type.</p>"
    },
    "EvaluationDatasetMetricConfigs":{
      "type":"list",
      "member":{"shape":"EvaluationDatasetMetricConfig"},
      "max":5,
      "min":1
    },
    "EvaluationDatasetName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"[0-9a-zA-Z-_.]+",
      "sensitive":true
    },
    "EvaluationInferenceConfig":{
      "type":"structure",
      "members":{
        "models":{
          "shape":"EvaluationModelConfigs",
          "documentation":"<p>Specifies the inference models.</p>"
        },
        "ragConfigs":{
          "shape":"RagConfigs",
          "documentation":"<p>Contains the configuration details of the inference for a knowledge base evaluation job, including either the retrieval only configuration or the retrieval with response generation configuration.</p>"
        }
      },
      "documentation":"<p>The configuration details of the inference model for an evaluation job.</p> <p>For automated model evaluation jobs, only a single model is supported.</p> <p>For human-based model evaluation jobs, your annotator can compare the responses for up to two different models.</p>",
      "union":true
    },
    "EvaluationInferenceConfigSummary":{
      "type":"structure",
      "members":{
        "modelConfigSummary":{
          "shape":"EvaluationModelConfigSummary",
          "documentation":"<p>A summary of the models used in an Amazon Bedrock model evaluation job. These resources can be models in Amazon Bedrock or models outside of Amazon Bedrock that you use to generate your own inference response data.</p>"
        },
        "ragConfigSummary":{
          "shape":"EvaluationRagConfigSummary",
          "documentation":"<p>A summary of the RAG resources used in an Amazon Bedrock Knowledge Base evaluation job. These resources can be Knowledge Bases in Amazon Bedrock or RAG sources outside of Amazon Bedrock that you use to generate your own inference response data.</p>"
        }
      },
      "documentation":"<p>Identifies the models, Knowledge Bases, or other RAG sources evaluated in a model or Knowledge Base evaluation job.</p>"
    },
    "EvaluationJobArn":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:evaluation-job/[a-z0-9]{12}"
    },
    "EvaluationJobDescription":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":".+",
      "sensitive":true
    },
    "EvaluationJobIdentifier":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:evaluation-job/[a-z0-9]{12})",
      "sensitive":true
    },
    "EvaluationJobIdentifiers":{
      "type":"list",
      "member":{"shape":"EvaluationJobIdentifier"},
      "max":25,
      "min":1
    },
    "EvaluationJobName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"[a-z0-9](-*[a-z0-9]){0,62}"
    },
    "EvaluationJobStatus":{
      "type":"string",
      "enum":[
        "InProgress",
        "Completed",
        "Failed",
        "Stopping",
        "Stopped",
        "Deleting"
      ]
    },
    "EvaluationJobType":{
      "type":"string",
      "enum":[
        "Human",
        "Automated"
      ]
    },
    "EvaluationMetricDescription":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":".+",
      "sensitive":true
    },
    "EvaluationMetricName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"[0-9a-zA-Z-_.]+",
      "sensitive":true
    },
    "EvaluationMetricNames":{
      "type":"list",
      "member":{"shape":"EvaluationMetricName"},
      "max":25,
      "min":1
    },
    "EvaluationModelConfig":{
      "type":"structure",
      "members":{
        "bedrockModel":{
          "shape":"EvaluationBedrockModel",
          "documentation":"<p>Defines the Amazon Bedrock model or inference profile and inference parameters you want used.</p>"
        },
        "precomputedInferenceSource":{
          "shape":"EvaluationPrecomputedInferenceSource",
          "documentation":"<p>Defines the model used to generate inference response data for a model evaluation job where you provide your own inference response data.</p>"
        }
      },
      "documentation":"<p>Defines the models used in the model evaluation job.</p>",
      "union":true
    },
    "EvaluationModelConfigSummary":{
      "type":"structure",
      "members":{
        "bedrockModelIdentifiers":{
          "shape":"EvaluationBedrockModelIdentifiers",
          "documentation":"<p>The Amazon Resource Names (ARNs) of the models used for the evaluation job.</p>"
        },
        "precomputedInferenceSourceIdentifiers":{
          "shape":"EvaluationPrecomputedInferenceSourceIdentifiers",
          "documentation":"<p>A label that identifies the models used for a model evaluation job where you provide your own inference response data.</p>"
        }
      },
      "documentation":"<p>A summary of the models used in an Amazon Bedrock model evaluation job. These resources can be models in Amazon Bedrock or models outside of Amazon Bedrock that you use to generate your own inference response data.</p>"
    },
    "EvaluationModelConfigs":{
      "type":"list",
      "member":{"shape":"EvaluationModelConfig"},
      "max":2,
      "min":1
    },
    "EvaluationModelInferenceParams":{
      "type":"string",
      "max":1023,
      "min":1,
      "sensitive":true
    },
    "EvaluationOutputDataConfig":{
      "type":"structure",
      "required":["s3Uri"],
      "members":{
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The Amazon S3 URI where the results of the evaluation job are saved.</p>"
        }
      },
      "documentation":"<p>The Amazon S3 location where the results of your evaluation job are saved.</p>"
    },
    "EvaluationPrecomputedInferenceSource":{
      "type":"structure",
      "required":["inferenceSourceIdentifier"],
      "members":{
        "inferenceSourceIdentifier":{
          "shape":"EvaluationPrecomputedInferenceSourceIdentifier",
          "documentation":"<p>A label that identifies a model used in a model evaluation job where you provide your own inference response data.</p>"
        }
      },
      "documentation":"<p>A summary of a model used for a model evaluation job where you provide your own inference response data.</p>"
    },
    "EvaluationPrecomputedInferenceSourceIdentifier":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9]([a-zA-Z0-9._-]){0,255}"
    },
    "EvaluationPrecomputedInferenceSourceIdentifiers":{
      "type":"list",
      "member":{"shape":"EvaluationPrecomputedInferenceSourceIdentifier"},
      "max":2,
      "min":0
    },
    "EvaluationPrecomputedRagSourceConfig":{
      "type":"structure",
      "members":{
        "retrieveSourceConfig":{
          "shape":"EvaluationPrecomputedRetrieveSourceConfig",
          "documentation":"<p>A summary of a RAG source used for a retrieve-only Knowledge Base evaluation job where you provide your own inference response data.</p>"
        },
        "retrieveAndGenerateSourceConfig":{
          "shape":"EvaluationPrecomputedRetrieveAndGenerateSourceConfig",
          "documentation":"<p>A summary of a RAG source used for a retrieve-and-generate Knowledge Base evaluation job where you provide your own inference response data.</p>"
        }
      },
      "documentation":"<p>A summary of a RAG source used for a Knowledge Base evaluation job where you provide your own inference response data.</p>",
      "union":true
    },
    "EvaluationPrecomputedRagSourceIdentifier":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9]([a-zA-Z0-9._-]){0,255}"
    },
    "EvaluationPrecomputedRagSourceIdentifiers":{
      "type":"list",
      "member":{"shape":"EvaluationPrecomputedRagSourceIdentifier"},
      "max":1,
      "min":0
    },
    "EvaluationPrecomputedRetrieveAndGenerateSourceConfig":{
      "type":"structure",
      "required":["ragSourceIdentifier"],
      "members":{
        "ragSourceIdentifier":{
          "shape":"EvaluationPrecomputedRagSourceIdentifier",
          "documentation":"<p>A label that identifies the RAG source used for a retrieve-and-generate Knowledge Base evaluation job where you provide your own inference response data.</p>"
        }
      },
      "documentation":"<p>A summary of a RAG source used for a retrieve-and-generate Knowledge Base evaluation job where you provide your own inference response data.</p>"
    },
    "EvaluationPrecomputedRetrieveSourceConfig":{
      "type":"structure",
      "required":["ragSourceIdentifier"],
      "members":{
        "ragSourceIdentifier":{
          "shape":"EvaluationPrecomputedRagSourceIdentifier",
          "documentation":"<p>A label that identifies the RAG source used for a retrieve-only Knowledge Base evaluation job where you provide your own inference response data.</p>"
        }
      },
      "documentation":"<p>A summary of a RAG source used for a retrieve-only Knowledge Base evaluation job where you provide your own inference response data.</p>"
    },
    "EvaluationRagConfigSummary":{
      "type":"structure",
      "members":{
        "bedrockKnowledgeBaseIdentifiers":{
          "shape":"EvaluationBedrockKnowledgeBaseIdentifiers",
          "documentation":"<p>The Amazon Resource Names (ARNs) of the Knowledge Base resources used for a Knowledge Base evaluation job where Amazon Bedrock invokes the Knowledge Base for you.</p>"
        },
        "precomputedRagSourceIdentifiers":{
          "shape":"EvaluationPrecomputedRagSourceIdentifiers",
          "documentation":"<p>A label that identifies the RAG sources used for a Knowledge Base evaluation job where you provide your own inference response data.</p>"
        }
      },
      "documentation":"<p>A summary of the RAG resources used in an Amazon Bedrock Knowledge Base evaluation job. These resources can be Knowledge Bases in Amazon Bedrock or RAG sources outside of Amazon Bedrock that you use to generate your own inference response data.</p>"
    },
    "EvaluationRatingMethod":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[0-9a-zA-Z-_]+"
    },
    "EvaluationSummaries":{
      "type":"list",
      "member":{"shape":"EvaluationSummary"},
      "max":5,
      "min":1
    },
    "EvaluationSummary":{
      "type":"structure",
      "required":[
        "jobArn",
        "jobName",
        "status",
        "creationTime",
        "jobType",
        "evaluationTaskTypes"
      ],
      "members":{
        "jobArn":{
          "shape":"EvaluationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluation job.</p>"
        },
        "jobName":{
          "shape":"EvaluationJobName",
          "documentation":"<p>The name for the evaluation job.</p>"
        },
        "status":{
          "shape":"EvaluationJobStatus",
          "documentation":"<p>The current status of the evaluation job.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the evaluation job was created.</p>"
        },
        "jobType":{
          "shape":"EvaluationJobType",
          "documentation":"<p>Specifies whether the evaluation job is automated or human-based.</p>"
        },
        "evaluationTaskTypes":{
          "shape":"EvaluationTaskTypes",
          "documentation":"<p>The type of task for model evaluation.</p>"
        },
        "modelIdentifiers":{
          "shape":"EvaluationBedrockModelIdentifiers",
          "documentation":"<p>The Amazon Resource Names (ARNs) of the model(s) used for the evaluation job.</p>",
          "deprecated":true,
          "deprecatedMessage":"Inference identifiers should be retrieved from the inferenceConfigSummary",
          "deprecatedSince":"2025-03-07"
        },
        "ragIdentifiers":{
          "shape":"EvaluationBedrockKnowledgeBaseIdentifiers",
          "documentation":"<p>The Amazon Resource Names (ARNs) of the knowledge base resources used for a knowledge base evaluation job.</p>",
          "deprecated":true,
          "deprecatedMessage":"Inference identifiers should be retrieved from the inferenceConfigSummary",
          "deprecatedSince":"2025-03-07"
        },
        "evaluatorModelIdentifiers":{
          "shape":"EvaluatorModelIdentifiers",
          "documentation":"<p>The Amazon Resource Names (ARNs) of the models used to compute the metrics for a knowledge base evaluation job.</p>"
        },
        "customMetricsEvaluatorModelIdentifiers":{
          "shape":"EvaluatorModelIdentifiers",
          "documentation":"<p>The Amazon Resource Names (ARNs) of the models used to compute custom metrics in an Amazon Bedrock evaluation job.</p>"
        },
        "inferenceConfigSummary":{
          "shape":"EvaluationInferenceConfigSummary",
          "documentation":"<p>Identifies the models, Knowledge Bases, or other RAG sources evaluated in a model or Knowledge Base evaluation job.</p>"
        },
        "applicationType":{
          "shape":"ApplicationType",
          "documentation":"<p>Specifies whether the evaluation job is for evaluating a model or evaluating a knowledge base (retrieval and response generation).</p>"
        }
      },
      "documentation":"<p>Summary information of an evaluation job.</p>"
    },
    "EvaluationTaskType":{
      "type":"string",
      "enum":[
        "Summarization",
        "Classification",
        "QuestionAndAnswer",
        "Generation",
        "Custom"
      ],
      "max":63,
      "min":1,
      "pattern":"[A-Za-z0-9]+"
    },
    "EvaluationTaskTypes":{
      "type":"list",
      "member":{"shape":"EvaluationTaskType"},
      "max":5,
      "min":1
    },
    "EvaluatorModelConfig":{
      "type":"structure",
      "members":{
        "bedrockEvaluatorModels":{
          "shape":"BedrockEvaluatorModels",
          "documentation":"<p>The evaluator model used in knowledge base evaluation job or in model evaluation job that use a model as judge. This model computes all evaluation related metrics.</p>"
        }
      },
      "documentation":"<p>Specifies the model configuration for the evaluator model. <code>EvaluatorModelConfig</code> is required for evaluation jobs that use a knowledge base or in model evaluation job that use a model as judge. This model computes all evaluation related metrics.</p>",
      "union":true
    },
    "EvaluatorModelIdentifier":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:((:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:inference-profile/(([a-z-]{2,8}.)[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63})))))$|(^[a-z0-9-]+[.][a-z0-9-]+([.][a-z0-9-]+)*(:[a-z0-9-]+)?$)|^[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12}|)"
    },
    "EvaluatorModelIdentifiers":{
      "type":"list",
      "member":{"shape":"EvaluatorModelIdentifier"},
      "max":1,
      "min":0
    },
    "ExcludedModelId":{
      "type":"string",
      "pattern":"([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12}){0,1}"
    },
    "ExcludedModelsList":{
      "type":"list",
      "member":{"shape":"ExcludedModelId"},
      "min":0
    },
    "ExportAutomatedReasoningPolicyVersionRequest":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy to export. Can be either the unversioned ARN for the draft policy or a versioned ARN for a specific policy version.</p>",
          "location":"uri",
          "locationName":"policyArn"
        }
      }
    },
    "ExportAutomatedReasoningPolicyVersionResponse":{
      "type":"structure",
      "required":["policyDefinition"],
      "members":{
        "policyDefinition":{
          "shape":"AutomatedReasoningPolicyDefinition",
          "documentation":"<p>The exported policy definition containing the formal logic rules, variables, and custom variable types.</p>"
        }
      },
      "payload":"policyDefinition"
    },
    "ExternalSource":{
      "type":"structure",
      "required":["sourceType"],
      "members":{
        "sourceType":{
          "shape":"ExternalSourceType",
          "documentation":"<p>The source type of the external source wrapper object.</p>"
        },
        "s3Location":{
          "shape":"S3ObjectDoc",
          "documentation":"<p>The S3 location of the external source wrapper object.</p>"
        },
        "byteContent":{
          "shape":"ByteContentDoc",
          "documentation":"<p>The identifier, content type, and data of the external source wrapper object.</p>"
        }
      },
      "documentation":"<p>The unique external source of the content contained in the wrapper object.</p>"
    },
    "ExternalSourceType":{
      "type":"string",
      "enum":[
        "S3",
        "BYTE_CONTENT"
      ]
    },
    "ExternalSources":{
      "type":"list",
      "member":{"shape":"ExternalSource"},
      "max":1,
      "min":1
    },
    "ExternalSourcesGenerationConfiguration":{
      "type":"structure",
      "members":{
        "promptTemplate":{
          "shape":"PromptTemplate",
          "documentation":"<p>Contains the template for the prompt for the external source wrapper object.</p>"
        },
        "guardrailConfiguration":{
          "shape":"GuardrailConfiguration",
          "documentation":"<p>Configuration details for the guardrail.</p>"
        },
        "kbInferenceConfig":{
          "shape":"KbInferenceConfig",
          "documentation":"<p>Configuration details for inference when using <code>RetrieveAndGenerate</code> to generate responses while using an external source.</p>"
        },
        "additionalModelRequestFields":{
          "shape":"AdditionalModelRequestFields",
          "documentation":"<p>Additional model parameters and their corresponding values not included in the text inference configuration for an external source. Takes in custom model parameters specific to the language model being used.</p>"
        }
      },
      "documentation":"<p>The response generation configuration of the external source wrapper object.</p>"
    },
    "ExternalSourcesRetrieveAndGenerateConfiguration":{
      "type":"structure",
      "required":[
        "modelArn",
        "sources"
      ],
      "members":{
        "modelArn":{
          "shape":"BedrockModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the foundation model or <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html\">inference profile</a> used to generate responses. </p>"
        },
        "sources":{
          "shape":"ExternalSources",
          "documentation":"<p>The document for the external source wrapper object in the <code>retrieveAndGenerate</code> function.</p>"
        },
        "generationConfiguration":{
          "shape":"ExternalSourcesGenerationConfiguration",
          "documentation":"<p>Contains configurations details for response generation based on retrieved text chunks.</p>"
        }
      },
      "documentation":"<p>The configuration of the external source wrapper object in the <code>retrieveAndGenerate</code> function.</p>"
    },
    "FieldForReranking":{
      "type":"structure",
      "required":["fieldName"],
      "members":{
        "fieldName":{
          "shape":"FieldForRerankingFieldNameString",
          "documentation":"<p>The name of the metadata field to be used during the reranking process.</p>"
        }
      },
      "documentation":"<p>Specifies a field to be used during the reranking process in a Knowledge Base vector search. This structure identifies metadata fields that should be considered when reordering search results to improve relevance.</p>"
    },
    "FieldForRerankingFieldNameString":{
      "type":"string",
      "max":2000,
      "min":1
    },
    "FieldsForReranking":{
      "type":"list",
      "member":{"shape":"FieldForReranking"},
      "max":100,
      "min":1,
      "sensitive":true
    },
    "FilterAttribute":{
      "type":"structure",
      "required":[
        "key",
        "value"
      ],
      "members":{
        "key":{
          "shape":"FilterKey",
          "documentation":"<p>The name of metadata attribute/field, which must match the name in your data source/document metadata.</p>"
        },
        "value":{
          "shape":"FilterValue",
          "documentation":"<p>The value of the metadata attribute/field.</p>"
        }
      },
      "documentation":"<p>Specifies the name of the metadata attribute/field to apply filters. You must match the name of the attribute/field in your data source/document metadata.</p>"
    },
    "FilterKey":{
      "type":"string",
      "max":100,
      "min":1
    },
    "FilterValue":{
      "type":"structure",
      "members":{},
      "document":true
    },
    "FineTuningJobStatus":{
      "type":"string",
      "enum":[
        "InProgress",
        "Completed",
        "Failed",
        "Stopping",
        "Stopped"
      ]
    },
    "Float":{
      "type":"float",
      "box":true
    },
    "FoundationModelArn":{
      "type":"string",
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}"
    },
    "FoundationModelDetails":{
      "type":"structure",
      "required":[
        "modelArn",
        "modelId"
      ],
      "members":{
        "modelArn":{
          "shape":"FoundationModelArn",
          "documentation":"<p>The model Amazon Resource Name (ARN).</p>"
        },
        "modelId":{
          "shape":"BedrockModelId",
          "documentation":"<p>The model identifier.</p>"
        },
        "modelName":{
          "shape":"BrandedName",
          "documentation":"<p>The model name.</p>"
        },
        "providerName":{
          "shape":"BrandedName",
          "documentation":"<p>The model's provider name.</p>"
        },
        "inputModalities":{
          "shape":"ModelModalityList",
          "documentation":"<p>The input modalities that the model supports.</p>"
        },
        "outputModalities":{
          "shape":"ModelModalityList",
          "documentation":"<p>The output modalities that the model supports.</p>"
        },
        "responseStreamingSupported":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the model supports streaming.</p>"
        },
        "customizationsSupported":{
          "shape":"ModelCustomizationList",
          "documentation":"<p>The customization that the model supports.</p>"
        },
        "inferenceTypesSupported":{
          "shape":"InferenceTypeList",
          "documentation":"<p>The inference types that the model supports.</p>"
        },
        "modelLifecycle":{
          "shape":"FoundationModelLifecycle",
          "documentation":"<p>Contains details about whether a model version is available or deprecated</p>"
        }
      },
      "documentation":"<p>Information about a foundation model.</p>"
    },
    "FoundationModelLifecycle":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"FoundationModelLifecycleStatus",
          "documentation":"<p>Specifies whether a model version is available (<code>ACTIVE</code>) or deprecated (<code>LEGACY</code>.</p>"
        },
        "startOfLifeTime":{
          "shape":"Timestamp",
          "documentation":"<p>Launch time when the model first becomes available</p>"
        },
        "endOfLifeTime":{
          "shape":"Timestamp",
          "documentation":"<p>Time when the model is no longer available for use</p>"
        },
        "legacyTime":{
          "shape":"Timestamp",
          "documentation":"<p>Time when the model enters legacy state. Models in legacy state can still be used, but users should plan to transition to an Active model before the end of life time</p>"
        },
        "publicExtendedAccessTime":{
          "shape":"Timestamp",
          "documentation":"<p>Public extended access portion of the legacy period, when users should expect higher pricing</p>"
        }
      },
      "documentation":"<p>Details about whether a model version is available or deprecated.</p>"
    },
    "FoundationModelLifecycleStatus":{
      "type":"string",
      "enum":[
        "ACTIVE",
        "LEGACY"
      ]
    },
    "FoundationModelSummary":{
      "type":"structure",
      "required":[
        "modelArn",
        "modelId"
      ],
      "members":{
        "modelArn":{
          "shape":"FoundationModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the foundation model.</p>"
        },
        "modelId":{
          "shape":"BedrockModelId",
          "documentation":"<p>The model ID of the foundation model.</p>"
        },
        "modelName":{
          "shape":"BrandedName",
          "documentation":"<p>The name of the model.</p>"
        },
        "providerName":{
          "shape":"BrandedName",
          "documentation":"<p>The model's provider name.</p>"
        },
        "inputModalities":{
          "shape":"ModelModalityList",
          "documentation":"<p>The input modalities that the model supports.</p>"
        },
        "outputModalities":{
          "shape":"ModelModalityList",
          "documentation":"<p>The output modalities that the model supports.</p>"
        },
        "responseStreamingSupported":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the model supports streaming.</p>"
        },
        "customizationsSupported":{
          "shape":"ModelCustomizationList",
          "documentation":"<p>Whether the model supports fine-tuning or continual pre-training.</p>"
        },
        "inferenceTypesSupported":{
          "shape":"InferenceTypeList",
          "documentation":"<p>The inference types that the model supports.</p>"
        },
        "modelLifecycle":{
          "shape":"FoundationModelLifecycle",
          "documentation":"<p>Contains details about whether a model version is available or deprecated.</p>"
        }
      },
      "documentation":"<p>Summary information for a foundation model.</p>"
    },
    "FoundationModelSummaryList":{
      "type":"list",
      "member":{"shape":"FoundationModelSummary"}
    },
    "GenerationConfiguration":{
      "type":"structure",
      "members":{
        "promptTemplate":{
          "shape":"PromptTemplate",
          "documentation":"<p>Contains the template for the prompt that's sent to the model for response generation.</p>"
        },
        "guardrailConfiguration":{
          "shape":"GuardrailConfiguration",
          "documentation":"<p>Contains configuration details for the guardrail.</p>"
        },
        "kbInferenceConfig":{
          "shape":"KbInferenceConfig",
          "documentation":"<p>Contains configuration details for inference for knowledge base retrieval and response generation.</p>"
        },
        "additionalModelRequestFields":{
          "shape":"AdditionalModelRequestFields",
          "documentation":"<p>Additional model parameters and corresponding values not included in the <code>textInferenceConfig</code> structure for a knowledge base. This allows you to provide custom model parameters specific to the language model being used.</p>"
        }
      },
      "documentation":"<p>The configuration details for response generation based on retrieved text chunks.</p>"
    },
    "GetAutomatedReasoningPolicyAnnotationsRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy whose annotations you want to retrieve.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow whose annotations you want to retrieve.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        }
      }
    },
    "GetAutomatedReasoningPolicyAnnotationsResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "name",
        "buildWorkflowId",
        "annotations",
        "annotationSetHash",
        "updatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy.</p>"
        },
        "name":{
          "shape":"AutomatedReasoningPolicyName",
          "documentation":"<p>The name of the Automated Reasoning policy.</p>"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow.</p>"
        },
        "annotations":{
          "shape":"AutomatedReasoningPolicyAnnotationList",
          "documentation":"<p>The current set of annotations containing rules, variables, and types extracted from the source documents. These can be modified before finalizing the policy.</p>"
        },
        "annotationSetHash":{
          "shape":"AutomatedReasoningPolicyHash",
          "documentation":"<p>A hash value representing the current state of the annotations. This is used for optimistic concurrency control when updating annotations.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the annotations were last updated.</p>"
        }
      }
    },
    "GetAutomatedReasoningPolicyBuildWorkflowRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy whose build workflow you want to retrieve.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow to retrieve.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        }
      }
    },
    "GetAutomatedReasoningPolicyBuildWorkflowResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId",
        "status",
        "buildWorkflowType",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy.</p>"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow.</p>"
        },
        "status":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowStatus",
          "documentation":"<p>The current status of the build workflow (e.g., RUNNING, COMPLETED, FAILED, CANCELLED).</p>"
        },
        "buildWorkflowType":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowType",
          "documentation":"<p>The type of build workflow being executed (e.g., DOCUMENT_INGESTION, POLICY_REPAIR).</p>"
        },
        "documentName":{
          "shape":"AutomatedReasoningPolicyBuildDocumentName",
          "documentation":"<p>The name of the source document used in the build workflow.</p>"
        },
        "documentContentType":{
          "shape":"AutomatedReasoningPolicyBuildDocumentContentType",
          "documentation":"<p>The content type of the source document (e.g., text/plain, application/pdf).</p>"
        },
        "documentDescription":{
          "shape":"AutomatedReasoningPolicyBuildDocumentDescription",
          "documentation":"<p>A detailed description of the document's content and how it should be used in the policy generation process.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the build workflow was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the build workflow was last updated.</p>"
        }
      }
    },
    "GetAutomatedReasoningPolicyBuildWorkflowResultAssetsRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId",
        "assetType"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy whose build workflow assets you want to retrieve.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow whose result assets you want to retrieve.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        },
        "assetType":{
          "shape":"AutomatedReasoningPolicyBuildResultAssetType",
          "documentation":"<p>The type of asset to retrieve (e.g., BUILD_LOG, QUALITY_REPORT, POLICY_DEFINITION, GENERATED_TEST_CASES, POLICY_SCENARIOS, FIDELITY_REPORT, ASSET_MANIFEST, SOURCE_DOCUMENT).</p>",
          "location":"querystring",
          "locationName":"assetType"
        },
        "assetId":{
          "shape":"AutomatedReasoningPolicyBuildResultAssetId",
          "documentation":"<p>The unique identifier of the specific asset to retrieve when multiple assets of the same type exist. This is required when retrieving SOURCE_DOCUMENT assets, as multiple source documents may have been used in the workflow. The asset ID can be obtained from the asset manifest.</p>",
          "location":"querystring",
          "locationName":"assetId"
        }
      }
    },
    "GetAutomatedReasoningPolicyBuildWorkflowResultAssetsResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy.</p>"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow.</p>"
        },
        "buildWorkflowAssets":{
          "shape":"AutomatedReasoningPolicyBuildResultAssets",
          "documentation":"<p>The requested build workflow asset. This is a union type that returns only one of the available asset types (logs, reports, or generated artifacts) based on the specific asset type requested in the API call.</p>"
        }
      }
    },
    "GetAutomatedReasoningPolicyNextScenarioRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy for which you want to get the next test scenario.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow associated with the test scenarios.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        }
      }
    },
    "GetAutomatedReasoningPolicyNextScenarioResponse":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy.</p>"
        },
        "scenario":{
          "shape":"AutomatedReasoningPolicyScenario",
          "documentation":"<p>The next test scenario to validate, including the test expression and expected results.</p>"
        }
      }
    },
    "GetAutomatedReasoningPolicyRequest":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy to retrieve. Can be either the unversioned ARN for the draft policy or an ARN for a specific policy version.</p>",
          "location":"uri",
          "locationName":"policyArn"
        }
      }
    },
    "GetAutomatedReasoningPolicyResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "name",
        "version",
        "policyId",
        "definitionHash",
        "updatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy.</p>"
        },
        "name":{
          "shape":"AutomatedReasoningPolicyName",
          "documentation":"<p>The name of the policy.</p>"
        },
        "version":{
          "shape":"AutomatedReasoningPolicyVersion",
          "documentation":"<p>The version of the policy.</p>"
        },
        "policyId":{
          "shape":"AutomatedReasoningPolicyId",
          "documentation":"<p>The unique identifier of the policy.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDescription",
          "documentation":"<p>The description of the policy.</p>"
        },
        "definitionHash":{
          "shape":"AutomatedReasoningPolicyHash",
          "documentation":"<p>The hash of the policy definition used as a concurrency token.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the automated reasoning policy and its associated artifacts. If a KMS key is not provided during the initial CreateAutomatedReasoningPolicyRequest, the kmsKeyArn won't be included in the GetAutomatedReasoningPolicyResponse. </p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was last updated.</p>"
        }
      }
    },
    "GetAutomatedReasoningPolicyTestCaseRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "testCaseId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy that contains the test.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "testCaseId":{
          "shape":"AutomatedReasoningPolicyTestCaseId",
          "documentation":"<p>The unique identifier of the test to retrieve.</p>",
          "location":"uri",
          "locationName":"testCaseId"
        }
      }
    },
    "GetAutomatedReasoningPolicyTestCaseResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "testCase"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy that contains the test.</p>"
        },
        "testCase":{
          "shape":"AutomatedReasoningPolicyTestCase",
          "documentation":"<p>The test details including the content, query, expected result, and metadata.</p>"
        }
      }
    },
    "GetAutomatedReasoningPolicyTestResultRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId",
        "testCaseId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The build workflow identifier. The build workflow must display a <code>COMPLETED</code> status to get results.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        },
        "testCaseId":{
          "shape":"AutomatedReasoningPolicyTestCaseId",
          "documentation":"<p>The unique identifier of the test for which to retrieve results.</p>",
          "location":"uri",
          "locationName":"testCaseId"
        }
      }
    },
    "GetAutomatedReasoningPolicyTestResultResponse":{
      "type":"structure",
      "required":["testResult"],
      "members":{
        "testResult":{
          "shape":"AutomatedReasoningPolicyTestResult",
          "documentation":"<p>The test result containing validation findings, execution status, and detailed analysis.</p>"
        }
      }
    },
    "GetCustomModelDeploymentRequest":{
      "type":"structure",
      "required":["customModelDeploymentIdentifier"],
      "members":{
        "customModelDeploymentIdentifier":{
          "shape":"CustomModelDeploymentIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) or name of the custom model deployment to retrieve information about.</p>",
          "location":"uri",
          "locationName":"customModelDeploymentIdentifier"
        }
      }
    },
    "GetCustomModelDeploymentResponse":{
      "type":"structure",
      "required":[
        "customModelDeploymentArn",
        "modelDeploymentName",
        "modelArn",
        "createdAt",
        "status"
      ],
      "members":{
        "customModelDeploymentArn":{
          "shape":"CustomModelDeploymentArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the custom model deployment.</p>"
        },
        "modelDeploymentName":{
          "shape":"ModelDeploymentName",
          "documentation":"<p>The name of the custom model deployment.</p>"
        },
        "modelArn":{
          "shape":"CustomModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the custom model associated with this deployment.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the custom model deployment was created.</p>"
        },
        "status":{
          "shape":"CustomModelDeploymentStatus",
          "documentation":"<p>The status of the custom model deployment. Possible values are:</p> <ul> <li> <p> <code>CREATING</code> - The deployment is being set up and prepared for inference.</p> </li> <li> <p> <code>ACTIVE</code> - The deployment is ready and available for inference requests.</p> </li> <li> <p> <code>FAILED</code> - The deployment failed to be created or became unavailable.</p> </li> </ul>"
        },
        "description":{
          "shape":"CustomModelDeploymentDescription",
          "documentation":"<p>The description of the custom model deployment.</p>"
        },
        "updateDetails":{
          "shape":"CustomModelDeploymentUpdateDetails",
          "documentation":"<p> Details about any pending or completed updates to the custom model deployment, including the new model ARN and update status. </p>"
        },
        "failureMessage":{
          "shape":"ErrorMessage",
          "documentation":"<p>If the deployment status is <code>FAILED</code>, this field contains a message describing the failure reason.</p>"
        },
        "lastUpdatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the custom model deployment was last updated.</p>"
        }
      }
    },
    "GetCustomModelRequest":{
      "type":"structure",
      "required":["modelIdentifier"],
      "members":{
        "modelIdentifier":{
          "shape":"ModelIdentifier",
          "documentation":"<p>Name or Amazon Resource Name (ARN) of the custom model.</p>",
          "location":"uri",
          "locationName":"modelIdentifier"
        }
      }
    },
    "GetCustomModelResponse":{
      "type":"structure",
      "required":[
        "modelArn",
        "modelName",
        "creationTime"
      ],
      "members":{
        "modelArn":{
          "shape":"ModelArn",
          "documentation":"<p>Amazon Resource Name (ARN) associated with this model.</p>"
        },
        "modelName":{
          "shape":"CustomModelName",
          "documentation":"<p>Model name associated with this model.</p>"
        },
        "jobName":{
          "shape":"JobName",
          "documentation":"<p>Job name associated with this model.</p>"
        },
        "jobArn":{
          "shape":"ModelCustomizationJobArn",
          "documentation":"<p>Job Amazon Resource Name (ARN) associated with this model. For models that you create with the <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModel.html\">CreateCustomModel</a> API operation, this is <code>NULL</code>.</p>"
        },
        "baseModelArn":{
          "shape":"ModelArn",
          "documentation":"<p>Amazon Resource Name (ARN) of the base model.</p>"
        },
        "customizationType":{
          "shape":"CustomizationType",
          "documentation":"<p>The type of model customization.</p>"
        },
        "modelKmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The custom model is encrypted at rest using this key.</p>"
        },
        "hyperParameters":{
          "shape":"ModelCustomizationHyperParameters",
          "documentation":"<p>Hyperparameter values associated with this model. For details on the format for different models, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models-hp.html\">Custom model hyperparameters</a>.</p>"
        },
        "trainingDataConfig":{
          "shape":"TrainingDataConfig",
          "documentation":"<p>Contains information about the training dataset.</p>"
        },
        "validationDataConfig":{
          "shape":"ValidationDataConfig",
          "documentation":"<p>Contains information about the validation dataset.</p>"
        },
        "outputDataConfig":{
          "shape":"OutputDataConfig",
          "documentation":"<p>Output data configuration associated with this custom model.</p>"
        },
        "trainingMetrics":{
          "shape":"TrainingMetrics",
          "documentation":"<p>Contains training metrics from the job creation.</p>"
        },
        "validationMetrics":{
          "shape":"ValidationMetrics",
          "documentation":"<p>The validation metrics from the job creation.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>Creation time of the model.</p>"
        },
        "customizationConfig":{
          "shape":"CustomizationConfig",
          "documentation":"<p>The customization configuration for the custom model.</p>"
        },
        "modelStatus":{
          "shape":"ModelStatus",
          "documentation":"<p>The current status of the custom model. Possible values include:</p> <ul> <li> <p> <code>Creating</code> - The model is being created and validated.</p> </li> <li> <p> <code>Active</code> - The model has been successfully created and is ready for use.</p> </li> <li> <p> <code>Failed</code> - The model creation process failed. Check the <code>failureMessage</code> field for details.</p> </li> </ul>"
        },
        "failureMessage":{
          "shape":"ErrorMessage",
          "documentation":"<p>A failure message for any issues that occurred when creating the custom model. This is included for only a failed CreateCustomModel operation.</p>"
        }
      }
    },
    "GetEvaluationJobRequest":{
      "type":"structure",
      "required":["jobIdentifier"],
      "members":{
        "jobIdentifier":{
          "shape":"EvaluationJobIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluation job you want get information on.</p>",
          "location":"uri",
          "locationName":"jobIdentifier"
        }
      }
    },
    "GetEvaluationJobResponse":{
      "type":"structure",
      "required":[
        "jobName",
        "status",
        "jobArn",
        "roleArn",
        "jobType",
        "evaluationConfig",
        "inferenceConfig",
        "outputDataConfig",
        "creationTime"
      ],
      "members":{
        "jobName":{
          "shape":"EvaluationJobName",
          "documentation":"<p>The name for the evaluation job.</p>"
        },
        "status":{
          "shape":"EvaluationJobStatus",
          "documentation":"<p>The current status of the evaluation job.</p>"
        },
        "jobArn":{
          "shape":"EvaluationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluation job.</p>"
        },
        "jobDescription":{
          "shape":"EvaluationJobDescription",
          "documentation":"<p>The description of the evaluation job.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM service role used in the evaluation job.</p>"
        },
        "customerEncryptionKeyId":{
          "shape":"KmsKeyId",
          "documentation":"<p>The Amazon Resource Name (ARN) of the customer managed encryption key specified when the evaluation job was created.</p>"
        },
        "jobType":{
          "shape":"EvaluationJobType",
          "documentation":"<p>Specifies whether the evaluation job is automated or human-based.</p>"
        },
        "applicationType":{
          "shape":"ApplicationType",
          "documentation":"<p>Specifies whether the evaluation job is for evaluating a model or evaluating a knowledge base (retrieval and response generation).</p>"
        },
        "evaluationConfig":{
          "shape":"EvaluationConfig",
          "documentation":"<p>Contains the configuration details of either an automated or human-based evaluation job.</p>"
        },
        "inferenceConfig":{
          "shape":"EvaluationInferenceConfig",
          "documentation":"<p>Contains the configuration details of the inference model used for the evaluation job. </p>"
        },
        "outputDataConfig":{
          "shape":"EvaluationOutputDataConfig",
          "documentation":"<p>Contains the configuration details of the Amazon S3 bucket for storing the results of the evaluation job.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the evaluation job was created.</p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the evaluation job was last modified.</p>"
        },
        "failureMessages":{
          "shape":"ErrorMessages",
          "documentation":"<p>A list of strings that specify why the evaluation job failed to create.</p>"
        }
      }
    },
    "GetFoundationModelAvailabilityRequest":{
      "type":"structure",
      "required":["modelId"],
      "members":{
        "modelId":{
          "shape":"BedrockModelId",
          "documentation":"<p>The model Id of the foundation model.</p>",
          "location":"uri",
          "locationName":"modelId"
        }
      }
    },
    "GetFoundationModelAvailabilityResponse":{
      "type":"structure",
      "required":[
        "modelId",
        "agreementAvailability",
        "authorizationStatus",
        "entitlementAvailability",
        "regionAvailability"
      ],
      "members":{
        "modelId":{
          "shape":"BedrockModelId",
          "documentation":"<p>The model Id of the foundation model.</p>"
        },
        "agreementAvailability":{
          "shape":"AgreementAvailability",
          "documentation":"<p>Agreement availability. </p>"
        },
        "authorizationStatus":{
          "shape":"AuthorizationStatus",
          "documentation":"<p>Authorization status.</p>"
        },
        "entitlementAvailability":{
          "shape":"EntitlementAvailability",
          "documentation":"<p>Entitlement availability. </p>"
        },
        "regionAvailability":{
          "shape":"RegionAvailability",
          "documentation":"<p>Region availability. </p>"
        }
      }
    },
    "GetFoundationModelIdentifier":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})"
    },
    "GetFoundationModelRequest":{
      "type":"structure",
      "required":["modelIdentifier"],
      "members":{
        "modelIdentifier":{
          "shape":"GetFoundationModelIdentifier",
          "documentation":"<p>The model identifier. </p>",
          "location":"uri",
          "locationName":"modelIdentifier"
        }
      }
    },
    "GetFoundationModelResponse":{
      "type":"structure",
      "members":{
        "modelDetails":{
          "shape":"FoundationModelDetails",
          "documentation":"<p>Information about the foundation model.</p>"
        }
      }
    },
    "GetGuardrailRequest":{
      "type":"structure",
      "required":["guardrailIdentifier"],
      "members":{
        "guardrailIdentifier":{
          "shape":"GuardrailIdentifier",
          "documentation":"<p>The unique identifier of the guardrail for which to get details. This can be an ID or the ARN.</p>",
          "location":"uri",
          "locationName":"guardrailIdentifier"
        },
        "guardrailVersion":{
          "shape":"GuardrailVersion",
          "documentation":"<p>The version of the guardrail for which to get details. If you don't specify a version, the response returns details for the <code>DRAFT</code> version.</p>",
          "location":"querystring",
          "locationName":"guardrailVersion"
        }
      }
    },
    "GetGuardrailResponse":{
      "type":"structure",
      "required":[
        "name",
        "guardrailId",
        "guardrailArn",
        "version",
        "status",
        "createdAt",
        "updatedAt",
        "blockedInputMessaging",
        "blockedOutputsMessaging"
      ],
      "members":{
        "name":{
          "shape":"GuardrailName",
          "documentation":"<p>The name of the guardrail.</p>"
        },
        "description":{
          "shape":"GuardrailDescription",
          "documentation":"<p>The description of the guardrail.</p>"
        },
        "guardrailId":{
          "shape":"GuardrailId",
          "documentation":"<p>The unique identifier of the guardrail.</p>"
        },
        "guardrailArn":{
          "shape":"GuardrailArn",
          "documentation":"<p>The ARN of the guardrail.</p>"
        },
        "version":{
          "shape":"GuardrailVersion",
          "documentation":"<p>The version of the guardrail.</p>"
        },
        "status":{
          "shape":"GuardrailStatus",
          "documentation":"<p>The status of the guardrail.</p>"
        },
        "topicPolicy":{
          "shape":"GuardrailTopicPolicy",
          "documentation":"<p>The topic policy that was configured for the guardrail.</p>"
        },
        "contentPolicy":{
          "shape":"GuardrailContentPolicy",
          "documentation":"<p>The content policy that was configured for the guardrail.</p>"
        },
        "wordPolicy":{
          "shape":"GuardrailWordPolicy",
          "documentation":"<p>The word policy that was configured for the guardrail.</p>"
        },
        "sensitiveInformationPolicy":{
          "shape":"GuardrailSensitiveInformationPolicy",
          "documentation":"<p>The sensitive information policy that was configured for the guardrail.</p>"
        },
        "contextualGroundingPolicy":{
          "shape":"GuardrailContextualGroundingPolicy",
          "documentation":"<p>The contextual grounding policy used in the guardrail.</p>"
        },
        "automatedReasoningPolicy":{
          "shape":"GuardrailAutomatedReasoningPolicy",
          "documentation":"<p>The current Automated Reasoning policy configuration for the guardrail, if any is configured.</p>"
        },
        "crossRegionDetails":{
          "shape":"GuardrailCrossRegionDetails",
          "documentation":"<p>Details about the system-defined guardrail profile that you're using with your guardrail, including the guardrail profile ID and Amazon Resource Name (ARN).</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the guardrail was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the guardrail was updated.</p>"
        },
        "statusReasons":{
          "shape":"GuardrailStatusReasons",
          "documentation":"<p>Appears if the <code>status</code> is <code>FAILED</code>. A list of reasons for why the guardrail failed to be created, updated, versioned, or deleted.</p>"
        },
        "failureRecommendations":{
          "shape":"GuardrailFailureRecommendations",
          "documentation":"<p>Appears if the <code>status</code> of the guardrail is <code>FAILED</code>. A list of recommendations to carry out before retrying the request.</p>"
        },
        "blockedInputMessaging":{
          "shape":"GuardrailBlockedMessaging",
          "documentation":"<p>The message that the guardrail returns when it blocks a prompt.</p>"
        },
        "blockedOutputsMessaging":{
          "shape":"GuardrailBlockedMessaging",
          "documentation":"<p>The message that the guardrail returns when it blocks a model response.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The ARN of the KMS key that encrypts the guardrail.</p>"
        }
      }
    },
    "GetImportedModelRequest":{
      "type":"structure",
      "required":["modelIdentifier"],
      "members":{
        "modelIdentifier":{
          "shape":"ImportedModelIdentifier",
          "documentation":"<p>Name or Amazon Resource Name (ARN) of the imported model.</p>",
          "location":"uri",
          "locationName":"modelIdentifier"
        }
      }
    },
    "GetImportedModelResponse":{
      "type":"structure",
      "members":{
        "modelArn":{
          "shape":"ImportedModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) associated with this imported model.</p>"
        },
        "modelName":{
          "shape":"ImportedModelName",
          "documentation":"<p>The name of the imported model.</p>"
        },
        "jobName":{
          "shape":"JobName",
          "documentation":"<p>Job name associated with the imported model.</p>"
        },
        "jobArn":{
          "shape":"ModelImportJobArn",
          "documentation":"<p>Job Amazon Resource Name (ARN) associated with the imported model.</p>"
        },
        "modelDataSource":{
          "shape":"ModelDataSource",
          "documentation":"<p>The data source for this imported model.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>Creation time of the imported model.</p>"
        },
        "modelArchitecture":{
          "shape":"String",
          "documentation":"<p>The architecture of the imported model.</p>"
        },
        "modelKmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The imported model is encrypted at rest using this key.</p>"
        },
        "instructSupported":{
          "shape":"InstructSupported",
          "documentation":"<p>Specifies if the imported model supports converse.</p>"
        },
        "customModelUnits":{
          "shape":"CustomModelUnits",
          "documentation":"<p>Information about the hardware utilization for a single copy of the model.</p>"
        }
      }
    },
    "GetInferenceProfileRequest":{
      "type":"structure",
      "required":["inferenceProfileIdentifier"],
      "members":{
        "inferenceProfileIdentifier":{
          "shape":"InferenceProfileIdentifier",
          "documentation":"<p>The ID or Amazon Resource Name (ARN) of the inference profile.</p>",
          "location":"uri",
          "locationName":"inferenceProfileIdentifier"
        }
      }
    },
    "GetInferenceProfileResponse":{
      "type":"structure",
      "required":[
        "inferenceProfileName",
        "inferenceProfileArn",
        "models",
        "inferenceProfileId",
        "status",
        "type"
      ],
      "members":{
        "inferenceProfileName":{
          "shape":"InferenceProfileName",
          "documentation":"<p>The name of the inference profile.</p>"
        },
        "description":{
          "shape":"InferenceProfileDescription",
          "documentation":"<p>The description of the inference profile.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the inference profile was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the inference profile was last updated.</p>"
        },
        "inferenceProfileArn":{
          "shape":"InferenceProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the inference profile.</p>"
        },
        "models":{
          "shape":"InferenceProfileModels",
          "documentation":"<p>A list of information about each model in the inference profile.</p>"
        },
        "inferenceProfileId":{
          "shape":"InferenceProfileId",
          "documentation":"<p>The unique identifier of the inference profile.</p>"
        },
        "status":{
          "shape":"InferenceProfileStatus",
          "documentation":"<p>The status of the inference profile. <code>ACTIVE</code> means that the inference profile is ready to be used.</p>"
        },
        "type":{
          "shape":"InferenceProfileType",
          "documentation":"<p>The type of the inference profile. The following types are possible:</p> <ul> <li> <p> <code>SYSTEM_DEFINED</code> – The inference profile is defined by Amazon Bedrock. You can route inference requests across regions with these inference profiles.</p> </li> <li> <p> <code>APPLICATION</code> – The inference profile was created by a user. This type of inference profile can track metrics and costs when invoking the model in it. The inference profile may route requests to one or multiple regions.</p> </li> </ul>"
        }
      }
    },
    "GetMarketplaceModelEndpointRequest":{
      "type":"structure",
      "required":["endpointArn"],
      "members":{
        "endpointArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the endpoint you want to get information about.</p>",
          "location":"uri",
          "locationName":"endpointArn"
        }
      }
    },
    "GetMarketplaceModelEndpointResponse":{
      "type":"structure",
      "members":{
        "marketplaceModelEndpoint":{
          "shape":"MarketplaceModelEndpoint",
          "documentation":"<p>Details about the requested endpoint.</p>"
        }
      }
    },
    "GetModelCopyJobRequest":{
      "type":"structure",
      "required":["jobArn"],
      "members":{
        "jobArn":{
          "shape":"ModelCopyJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model copy job.</p>",
          "location":"uri",
          "locationName":"jobArn"
        }
      }
    },
    "GetModelCopyJobResponse":{
      "type":"structure",
      "required":[
        "jobArn",
        "status",
        "creationTime",
        "targetModelArn",
        "sourceAccountId",
        "sourceModelArn"
      ],
      "members":{
        "jobArn":{
          "shape":"ModelCopyJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model copy job.</p>"
        },
        "status":{
          "shape":"ModelCopyJobStatus",
          "documentation":"<p>The status of the model copy job.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the model copy job was created.</p>"
        },
        "targetModelArn":{
          "shape":"CustomModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the copied model.</p>"
        },
        "targetModelName":{
          "shape":"CustomModelName",
          "documentation":"<p>The name of the copied model.</p>"
        },
        "sourceAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique identifier of the account that the model being copied originated from.</p>"
        },
        "sourceModelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the original model being copied.</p>"
        },
        "targetModelKmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key encrypting the copied model.</p>"
        },
        "targetModelTags":{
          "shape":"TagList",
          "documentation":"<p>The tags associated with the copied model.</p>"
        },
        "failureMessage":{
          "shape":"ErrorMessage",
          "documentation":"<p>An error message for why the model copy job failed.</p>"
        },
        "sourceModelName":{
          "shape":"CustomModelName",
          "documentation":"<p>The name of the original model being copied.</p>"
        }
      }
    },
    "GetModelCustomizationJobRequest":{
      "type":"structure",
      "required":["jobIdentifier"],
      "members":{
        "jobIdentifier":{
          "shape":"ModelCustomizationJobIdentifier",
          "documentation":"<p>Identifier for the customization job.</p>",
          "location":"uri",
          "locationName":"jobIdentifier"
        }
      }
    },
    "GetModelCustomizationJobResponse":{
      "type":"structure",
      "required":[
        "jobArn",
        "jobName",
        "outputModelName",
        "roleArn",
        "creationTime",
        "baseModelArn",
        "trainingDataConfig",
        "validationDataConfig",
        "outputDataConfig"
      ],
      "members":{
        "jobArn":{
          "shape":"ModelCustomizationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the customization job.</p>"
        },
        "jobName":{
          "shape":"JobName",
          "documentation":"<p>The name of the customization job.</p>"
        },
        "outputModelName":{
          "shape":"CustomModelName",
          "documentation":"<p>The name of the output model.</p>"
        },
        "outputModelArn":{
          "shape":"CustomModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the output model.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>The token that you specified in the <code>CreateCustomizationJob</code> request.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role.</p>"
        },
        "status":{
          "shape":"ModelCustomizationJobStatus",
          "documentation":"<p>The status of the job. A successful job transitions from in-progress to completed when the output model is ready to use. If the job failed, the failure message contains information about why the job failed.</p>"
        },
        "statusDetails":{
          "shape":"StatusDetails",
          "documentation":"<p>For a Distillation job, the details about the statuses of the sub-tasks of the customization job. </p>"
        },
        "failureMessage":{
          "shape":"ErrorMessage",
          "documentation":"<p>Information about why the job failed.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>Time that the resource was created.</p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>Time that the resource was last modified.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>Time that the resource transitioned to terminal state.</p>"
        },
        "baseModelArn":{
          "shape":"FoundationModelArn",
          "documentation":"<p>Amazon Resource Name (ARN) of the base model.</p>"
        },
        "hyperParameters":{
          "shape":"ModelCustomizationHyperParameters",
          "documentation":"<p>The hyperparameter values for the job. For details on the format for different models, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models-hp.html\">Custom model hyperparameters</a>.</p>"
        },
        "trainingDataConfig":{
          "shape":"TrainingDataConfig",
          "documentation":"<p>Contains information about the training dataset.</p>"
        },
        "validationDataConfig":{
          "shape":"ValidationDataConfig",
          "documentation":"<p>Contains information about the validation dataset.</p>"
        },
        "outputDataConfig":{
          "shape":"OutputDataConfig",
          "documentation":"<p>Output data configuration </p>"
        },
        "customizationType":{
          "shape":"CustomizationType",
          "documentation":"<p>The type of model customization.</p>"
        },
        "outputModelKmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The custom model is encrypted at rest using this key.</p>"
        },
        "trainingMetrics":{
          "shape":"TrainingMetrics",
          "documentation":"<p>Contains training metrics from the job creation.</p>"
        },
        "validationMetrics":{
          "shape":"ValidationMetrics",
          "documentation":"<p>The loss metric for each validator that you provided in the createjob request.</p>"
        },
        "vpcConfig":{
          "shape":"VpcConfig",
          "documentation":"<p>VPC configuration for the custom model job.</p>"
        },
        "customizationConfig":{
          "shape":"CustomizationConfig",
          "documentation":"<p>The customization configuration for the model customization job.</p>"
        }
      }
    },
    "GetModelImportJobRequest":{
      "type":"structure",
      "required":["jobIdentifier"],
      "members":{
        "jobIdentifier":{
          "shape":"ModelImportJobIdentifier",
          "documentation":"<p>The identifier of the import job.</p>",
          "location":"uri",
          "locationName":"jobIdentifier"
        }
      }
    },
    "GetModelImportJobResponse":{
      "type":"structure",
      "members":{
        "jobArn":{
          "shape":"ModelImportJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the import job.</p>"
        },
        "jobName":{
          "shape":"JobName",
          "documentation":"<p>The name of the import job.</p>"
        },
        "importedModelName":{
          "shape":"ImportedModelName",
          "documentation":"<p>The name of the imported model.</p>"
        },
        "importedModelArn":{
          "shape":"ImportedModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the imported model.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role associated with this job.</p>"
        },
        "modelDataSource":{
          "shape":"ModelDataSource",
          "documentation":"<p>The data source for the imported model.</p>"
        },
        "status":{
          "shape":"ModelImportJobStatus",
          "documentation":"<p>The status of the job. A successful job transitions from in-progress to completed when the imported model is ready to use. If the job failed, the failure message contains information about why the job failed.</p>"
        },
        "failureMessage":{
          "shape":"ErrorMessage",
          "documentation":"<p>Information about why the import job failed.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the resource was created.</p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>Time the resource was last modified.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>Time that the resource transitioned to terminal state.</p>"
        },
        "vpcConfig":{
          "shape":"VpcConfig",
          "documentation":"<p>The Virtual Private Cloud (VPC) configuration of the import model job.</p>"
        },
        "importedModelKmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The imported model is encrypted at rest using this key.</p>"
        }
      }
    },
    "GetModelInvocationJobRequest":{
      "type":"structure",
      "required":["jobIdentifier"],
      "members":{
        "jobIdentifier":{
          "shape":"ModelInvocationJobIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) of the batch inference job.</p>",
          "location":"uri",
          "locationName":"jobIdentifier"
        }
      }
    },
    "GetModelInvocationJobResponse":{
      "type":"structure",
      "required":[
        "jobArn",
        "modelId",
        "roleArn",
        "submitTime",
        "inputDataConfig",
        "outputDataConfig"
      ],
      "members":{
        "jobArn":{
          "shape":"ModelInvocationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the batch inference job.</p>"
        },
        "jobName":{
          "shape":"ModelInvocationJobName",
          "documentation":"<p>The name of the batch inference job.</p>"
        },
        "modelId":{
          "shape":"ModelId",
          "documentation":"<p>The unique identifier of the foundation model used for model inference.</p>"
        },
        "clientRequestToken":{
          "shape":"ModelInvocationIdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not 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>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the service role with permissions to carry out and manage batch inference. You can use the console to create a default service role or follow the steps at <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-iam-sr.html\">Create a service role for batch inference</a>.</p>"
        },
        "status":{
          "shape":"ModelInvocationJobStatus",
          "documentation":"<p>The status of the batch inference job.</p> <p>The following statuses are possible:</p> <ul> <li> <p>Submitted – This job has been submitted to a queue for validation.</p> </li> <li> <p>Validating – This job is being validated for the requirements described in <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-inference-data.html\">Format and upload your batch inference data</a>. The criteria include the following:</p> <ul> <li> <p>Your IAM service role has access to the Amazon S3 buckets containing your files.</p> </li> <li> <p>Your files are .jsonl files and each individual record is a JSON object in the correct format. Note that validation doesn't check if the <code>modelInput</code> value matches the request body for the model.</p> </li> <li> <p>Your files fulfill the requirements for file size and number of records. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html\">Quotas for Amazon Bedrock</a>.</p> </li> </ul> </li> <li> <p>Scheduled – This job has been validated and is now in a queue. The job will automatically start when it reaches its turn.</p> </li> <li> <p>Expired – This job timed out because it was scheduled but didn't begin before the set timeout duration. Submit a new job request.</p> </li> <li> <p>InProgress – This job has begun. You can start viewing the results in the output S3 location.</p> </li> <li> <p>Completed – This job has successfully completed. View the output files in the output S3 location.</p> </li> <li> <p>PartiallyCompleted – This job has partially completed. Not all of your records could be processed in time. View the output files in the output S3 location.</p> </li> <li> <p>Failed – This job has failed. Check the failure message for any further details. For further assistance, reach out to the <a href=\"https://console.aws.amazon.com/support/home/\">Amazon Web Services Support Center</a>.</p> </li> <li> <p>Stopped – This job was stopped by a user.</p> </li> <li> <p>Stopping – This job is being stopped by a user.</p> </li> </ul>"
        },
        "message":{
          "shape":"Message",
          "documentation":"<p>If the batch inference job failed, this field contains a message describing why the job failed.</p>"
        },
        "submitTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the batch inference job was submitted.</p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the batch inference job was last modified.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the batch inference job ended.</p>"
        },
        "inputDataConfig":{
          "shape":"ModelInvocationJobInputDataConfig",
          "documentation":"<p>Details about the location of the input to the batch inference job.</p>"
        },
        "outputDataConfig":{
          "shape":"ModelInvocationJobOutputDataConfig",
          "documentation":"<p>Details about the location of the output of the batch inference job.</p>"
        },
        "vpcConfig":{
          "shape":"VpcConfig",
          "documentation":"<p>The configuration of the Virtual Private Cloud (VPC) for the data in the batch inference job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-vpc\">Protect batch inference jobs using a VPC</a>.</p>"
        },
        "timeoutDurationInHours":{
          "shape":"ModelInvocationJobTimeoutDurationInHours",
          "documentation":"<p>The number of hours after which batch inference job was set to time out.</p>"
        },
        "jobExpirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the batch inference job times or timed out.</p>"
        },
        "modelInvocationType":{
          "shape":"ModelInvocationType",
          "documentation":"<p>The invocation endpoint for ModelInvocationJob</p>"
        },
        "totalRecordCount":{
          "shape":"NonNegativeLong",
          "documentation":"<p>The total number of records in the batch inference job.</p>"
        },
        "processedRecordCount":{
          "shape":"NonNegativeLong",
          "documentation":"<p>The number of records that have been processed in the batch inference job.</p>"
        },
        "successRecordCount":{
          "shape":"NonNegativeLong",
          "documentation":"<p>The number of records that were successfully processed in the batch inference job.</p>"
        },
        "errorRecordCount":{
          "shape":"NonNegativeLong",
          "documentation":"<p>The number of records that failed to process in the batch inference job.</p>"
        }
      }
    },
    "GetModelInvocationLoggingConfigurationRequest":{
      "type":"structure",
      "members":{}
    },
    "GetModelInvocationLoggingConfigurationResponse":{
      "type":"structure",
      "members":{
        "loggingConfig":{
          "shape":"LoggingConfig",
          "documentation":"<p>The current configuration values.</p>"
        }
      }
    },
    "GetPromptRouterRequest":{
      "type":"structure",
      "required":["promptRouterArn"],
      "members":{
        "promptRouterArn":{
          "shape":"PromptRouterArn",
          "documentation":"<p>The prompt router's ARN</p>",
          "location":"uri",
          "locationName":"promptRouterArn"
        }
      }
    },
    "GetPromptRouterResponse":{
      "type":"structure",
      "required":[
        "promptRouterName",
        "routingCriteria",
        "promptRouterArn",
        "models",
        "fallbackModel",
        "status",
        "type"
      ],
      "members":{
        "promptRouterName":{
          "shape":"PromptRouterName",
          "documentation":"<p>The router's name.</p>"
        },
        "routingCriteria":{
          "shape":"RoutingCriteria",
          "documentation":"<p>The router's routing criteria.</p>"
        },
        "description":{
          "shape":"PromptRouterDescription",
          "documentation":"<p>The router's description.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>When the router was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>When the router was updated.</p>"
        },
        "promptRouterArn":{
          "shape":"PromptRouterArn",
          "documentation":"<p>The prompt router's ARN</p>"
        },
        "models":{
          "shape":"PromptRouterTargetModels",
          "documentation":"<p>The router's models.</p>"
        },
        "fallbackModel":{
          "shape":"PromptRouterTargetModel",
          "documentation":"<p>The router's fallback model.</p>"
        },
        "status":{
          "shape":"PromptRouterStatus",
          "documentation":"<p>The router's status.</p>"
        },
        "type":{
          "shape":"PromptRouterType",
          "documentation":"<p>The router's type.</p>"
        }
      }
    },
    "GetProvisionedModelThroughputRequest":{
      "type":"structure",
      "required":["provisionedModelId"],
      "members":{
        "provisionedModelId":{
          "shape":"ProvisionedModelId",
          "documentation":"<p>The Amazon Resource Name (ARN) or name of the Provisioned Throughput.</p>",
          "location":"uri",
          "locationName":"provisionedModelId"
        }
      }
    },
    "GetProvisionedModelThroughputResponse":{
      "type":"structure",
      "required":[
        "modelUnits",
        "desiredModelUnits",
        "provisionedModelName",
        "provisionedModelArn",
        "modelArn",
        "desiredModelArn",
        "foundationModelArn",
        "status",
        "creationTime",
        "lastModifiedTime"
      ],
      "members":{
        "modelUnits":{
          "shape":"PositiveInteger",
          "documentation":"<p>The number of model units allocated to this Provisioned Throughput.</p>"
        },
        "desiredModelUnits":{
          "shape":"PositiveInteger",
          "documentation":"<p>The number of model units that was requested for this Provisioned Throughput.</p>"
        },
        "provisionedModelName":{
          "shape":"ProvisionedModelName",
          "documentation":"<p>The name of the Provisioned Throughput.</p>"
        },
        "provisionedModelArn":{
          "shape":"ProvisionedModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Provisioned Throughput.</p>"
        },
        "modelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model associated with this Provisioned Throughput.</p>"
        },
        "desiredModelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model requested to be associated to this Provisioned Throughput. This value differs from the <code>modelArn</code> if updating hasn't completed.</p>"
        },
        "foundationModelArn":{
          "shape":"FoundationModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the base model for which the Provisioned Throughput was created, or of the base model that the custom model for which the Provisioned Throughput was created was customized.</p>"
        },
        "status":{
          "shape":"ProvisionedModelStatus",
          "documentation":"<p>The status of the Provisioned Throughput. </p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the creation time for this Provisioned Throughput. </p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the last time that this Provisioned Throughput was modified. </p>"
        },
        "failureMessage":{
          "shape":"ErrorMessage",
          "documentation":"<p>A failure message for any issues that occurred during creation, updating, or deletion of the Provisioned Throughput.</p>"
        },
        "commitmentDuration":{
          "shape":"CommitmentDuration",
          "documentation":"<p>Commitment duration of the Provisioned Throughput.</p>"
        },
        "commitmentExpirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp for when the commitment term for the Provisioned Throughput expires.</p>"
        }
      }
    },
    "GetResourcePolicyRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"ResourcePolicyResourceArn",
          "documentation":"<p>The ARN of the Bedrock resource to which this resource policy applies.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "GetResourcePolicyResponse":{
      "type":"structure",
      "members":{
        "resourcePolicy":{
          "shape":"ResourcePolicyDocument",
          "documentation":"<p>The JSON string representing the Bedrock resource policy.</p>"
        }
      }
    },
    "GetUseCaseForModelAccessRequest":{
      "type":"structure",
      "members":{}
    },
    "GetUseCaseForModelAccessResponse":{
      "type":"structure",
      "required":["formData"],
      "members":{
        "formData":{
          "shape":"AcknowledgementFormDataBody",
          "documentation":"<p>Get customer profile Response.</p>"
        }
      }
    },
    "GraderConfig":{
      "type":"structure",
      "members":{
        "lambdaGrader":{
          "shape":"LambdaGraderConfig",
          "documentation":"<p> Configuration for using an AWS Lambda function as the grader for evaluating model responses and provide reward signals in reinforcement fine-tuning. </p>"
        }
      },
      "documentation":"<p> Configuration for the grader used in reinforcement fine-tuning to evaluate model responses and provide reward signals. </p>",
      "union":true
    },
    "GuardrailArn":{
      "type":"string",
      "max":2048,
      "min":0,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+"
    },
    "GuardrailAutomatedReasoningPolicy":{
      "type":"structure",
      "required":["policies"],
      "members":{
        "policies":{
          "shape":"GuardrailAutomatedReasoningPolicyPoliciesList",
          "documentation":"<p>The list of Automated Reasoning policy ARNs that should be applied as part of this guardrail configuration.</p>"
        },
        "confidenceThreshold":{
          "shape":"AutomatedReasoningConfidenceFilterThreshold",
          "documentation":"<p>The minimum confidence level required for Automated Reasoning policy violations to trigger guardrail actions. Values range from 0.0 to 1.0.</p>"
        }
      },
      "documentation":"<p>Represents the configuration of Automated Reasoning policies within a Amazon Bedrock Guardrail, including the policies to apply and confidence thresholds.</p>"
    },
    "GuardrailAutomatedReasoningPolicyConfig":{
      "type":"structure",
      "required":["policies"],
      "members":{
        "policies":{
          "shape":"GuardrailAutomatedReasoningPolicyConfigPoliciesList",
          "documentation":"<p>The list of Automated Reasoning policy ARNs to include in the guardrail configuration.</p>"
        },
        "confidenceThreshold":{
          "shape":"AutomatedReasoningConfidenceFilterThreshold",
          "documentation":"<p>The confidence threshold for triggering guardrail actions based on Automated Reasoning policy violations.</p>"
        }
      },
      "documentation":"<p>Configuration settings for integrating Automated Reasoning policies with Amazon Bedrock Guardrails.</p>"
    },
    "GuardrailAutomatedReasoningPolicyConfigPoliciesList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyArn"},
      "max":2,
      "min":1
    },
    "GuardrailAutomatedReasoningPolicyPoliciesList":{
      "type":"list",
      "member":{"shape":"AutomatedReasoningPolicyArn"},
      "max":2,
      "min":1
    },
    "GuardrailBlockedMessaging":{
      "type":"string",
      "max":500,
      "min":1,
      "sensitive":true
    },
    "GuardrailConfiguration":{
      "type":"structure",
      "required":[
        "guardrailId",
        "guardrailVersion"
      ],
      "members":{
        "guardrailId":{
          "shape":"GuardrailConfigurationGuardrailIdString",
          "documentation":"<p>The unique identifier for the guardrail.</p>"
        },
        "guardrailVersion":{
          "shape":"GuardrailConfigurationGuardrailVersionString",
          "documentation":"<p>The version of the guardrail.</p>"
        }
      },
      "documentation":"<p>The configuration details for the guardrail.</p>"
    },
    "GuardrailConfigurationGuardrailIdString":{
      "type":"string",
      "max":64,
      "min":0,
      "pattern":"[a-z0-9]+"
    },
    "GuardrailConfigurationGuardrailVersionString":{
      "type":"string",
      "max":5,
      "min":1,
      "pattern":"(([1-9][0-9]{0,7})|(DRAFT))"
    },
    "GuardrailContentFilter":{
      "type":"structure",
      "required":[
        "type",
        "inputStrength",
        "outputStrength"
      ],
      "members":{
        "type":{
          "shape":"GuardrailContentFilterType",
          "documentation":"<p>The harmful category that the content filter is applied to.</p>"
        },
        "inputStrength":{
          "shape":"GuardrailFilterStrength",
          "documentation":"<p>The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces.</p>"
        },
        "outputStrength":{
          "shape":"GuardrailFilterStrength",
          "documentation":"<p>The strength of the content filter to apply to model responses. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces.</p>"
        },
        "inputModalities":{
          "shape":"GuardrailModalities",
          "documentation":"<p>The input modalities selected for the guardrail content filter.</p>"
        },
        "outputModalities":{
          "shape":"GuardrailModalities",
          "documentation":"<p>The output modalities selected for the guardrail content filter.</p>"
        },
        "inputAction":{
          "shape":"GuardrailContentFilterAction",
          "documentation":"<p>The action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailContentFilterAction",
          "documentation":"<p>The action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>Contains filter strengths for harmful content. Guardrails support the following content filters to detect and filter harmful user inputs and FM-generated outputs.</p> <ul> <li> <p> <b>Hate</b> – Describes language or a statement that discriminates, criticizes, insults, denounces, or dehumanizes a person or group on the basis of an identity (such as race, ethnicity, gender, religion, sexual orientation, ability, and national origin).</p> </li> <li> <p> <b>Insults</b> – Describes language or a statement that includes demeaning, humiliating, mocking, insulting, or belittling language. This type of language is also labeled as bullying.</p> </li> <li> <p> <b>Sexual</b> – Describes language or a statement that indicates sexual interest, activity, or arousal using direct or indirect references to body parts, physical traits, or sex.</p> </li> <li> <p> <b>Violence</b> – Describes language or a statement that includes glorification of or threats to inflict physical pain, hurt, or injury toward a person, group or thing.</p> </li> </ul> <p>Content filtering depends on the confidence classification of user inputs and FM responses across each of the four harmful categories. All input and output statements are classified into one of four confidence levels (NONE, LOW, MEDIUM, HIGH) for each harmful category. For example, if a statement is classified as <i>Hate</i> with HIGH confidence, the likelihood of the statement representing hateful content is high. A single statement can be classified across multiple categories with varying confidence levels. For example, a single statement can be classified as <i>Hate</i> with HIGH confidence, <i>Insults</i> with LOW confidence, <i>Sexual</i> with NONE confidence, and <i>Violence</i> with MEDIUM confidence.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-filters.html\">Guardrails content filters</a>.</p> <p>This data type is used in the following API operations:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetGuardrail.html#API_GetGuardrail_ResponseSyntax\">GetGuardrail response body</a> </p> </li> </ul>"
    },
    "GuardrailContentFilterAction":{
      "type":"string",
      "enum":[
        "BLOCK",
        "NONE"
      ],
      "sensitive":true
    },
    "GuardrailContentFilterConfig":{
      "type":"structure",
      "required":[
        "type",
        "inputStrength",
        "outputStrength"
      ],
      "members":{
        "type":{
          "shape":"GuardrailContentFilterType",
          "documentation":"<p>The harmful category that the content filter is applied to.</p>"
        },
        "inputStrength":{
          "shape":"GuardrailFilterStrength",
          "documentation":"<p>The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces.</p>"
        },
        "outputStrength":{
          "shape":"GuardrailFilterStrength",
          "documentation":"<p>The strength of the content filter to apply to model responses. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces.</p>"
        },
        "inputModalities":{
          "shape":"GuardrailModalities",
          "documentation":"<p>The input modalities selected for the guardrail content filter configuration.</p>"
        },
        "outputModalities":{
          "shape":"GuardrailModalities",
          "documentation":"<p>The output modalities selected for the guardrail content filter configuration.</p>"
        },
        "inputAction":{
          "shape":"GuardrailContentFilterAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailContentFilterAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>Contains filter strengths for harmful content. Guardrails support the following content filters to detect and filter harmful user inputs and FM-generated outputs.</p> <ul> <li> <p> <b>Hate</b> – Describes language or a statement that discriminates, criticizes, insults, denounces, or dehumanizes a person or group on the basis of an identity (such as race, ethnicity, gender, religion, sexual orientation, ability, and national origin).</p> </li> <li> <p> <b>Insults</b> – Describes language or a statement that includes demeaning, humiliating, mocking, insulting, or belittling language. This type of language is also labeled as bullying.</p> </li> <li> <p> <b>Sexual</b> – Describes language or a statement that indicates sexual interest, activity, or arousal using direct or indirect references to body parts, physical traits, or sex.</p> </li> <li> <p> <b>Violence</b> – Describes language or a statement that includes glorification of or threats to inflict physical pain, hurt, or injury toward a person, group or thing.</p> </li> </ul> <p>Content filtering depends on the confidence classification of user inputs and FM responses across each of the four harmful categories. All input and output statements are classified into one of four confidence levels (NONE, LOW, MEDIUM, HIGH) for each harmful category. For example, if a statement is classified as <i>Hate</i> with HIGH confidence, the likelihood of the statement representing hateful content is high. A single statement can be classified across multiple categories with varying confidence levels. For example, a single statement can be classified as <i>Hate</i> with HIGH confidence, <i>Insults</i> with LOW confidence, <i>Sexual</i> with NONE confidence, and <i>Violence</i> with MEDIUM confidence.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-filters.html\">Guardrails content filters</a>.</p>"
    },
    "GuardrailContentFilterType":{
      "type":"string",
      "enum":[
        "SEXUAL",
        "VIOLENCE",
        "HATE",
        "INSULTS",
        "MISCONDUCT",
        "PROMPT_ATTACK"
      ]
    },
    "GuardrailContentFilters":{
      "type":"list",
      "member":{"shape":"GuardrailContentFilter"},
      "max":6,
      "min":1
    },
    "GuardrailContentFiltersConfig":{
      "type":"list",
      "member":{"shape":"GuardrailContentFilterConfig"},
      "max":6,
      "min":1
    },
    "GuardrailContentFiltersTier":{
      "type":"structure",
      "required":["tierName"],
      "members":{
        "tierName":{
          "shape":"GuardrailContentFiltersTierName",
          "documentation":"<p>The tier that your guardrail uses for content filters. Valid values include:</p> <ul> <li> <p> <code>CLASSIC</code> tier – Provides established guardrails functionality supporting English, French, and Spanish languages.</p> </li> <li> <p> <code>STANDARD</code> tier – Provides a more robust solution than the <code>CLASSIC</code> tier and has more comprehensive language support. This tier requires that your guardrail use <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html\">cross-Region inference</a>.</p> </li> </ul>"
        }
      },
      "documentation":"<p>The tier that your guardrail uses for content filters.</p>"
    },
    "GuardrailContentFiltersTierConfig":{
      "type":"structure",
      "required":["tierName"],
      "members":{
        "tierName":{
          "shape":"GuardrailContentFiltersTierName",
          "documentation":"<p>The tier that your guardrail uses for content filters. Valid values include:</p> <ul> <li> <p> <code>CLASSIC</code> tier – Provides established guardrails functionality supporting English, French, and Spanish languages.</p> </li> <li> <p> <code>STANDARD</code> tier – Provides a more robust solution than the <code>CLASSIC</code> tier and has more comprehensive language support. This tier requires that your guardrail use <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html\">cross-Region inference</a>.</p> </li> </ul>"
        }
      },
      "documentation":"<p>The tier that your guardrail uses for content filters. Consider using a tier that balances performance, accuracy, and compatibility with your existing generative AI workflows.</p>"
    },
    "GuardrailContentFiltersTierName":{
      "type":"string",
      "enum":[
        "CLASSIC",
        "STANDARD"
      ],
      "sensitive":true
    },
    "GuardrailContentPolicy":{
      "type":"structure",
      "members":{
        "filters":{
          "shape":"GuardrailContentFilters",
          "documentation":"<p>Contains the type of the content filter and how strongly it should apply to prompts and model responses.</p>"
        },
        "tier":{
          "shape":"GuardrailContentFiltersTier",
          "documentation":"<p>The tier that your guardrail uses for content filters.</p>"
        }
      },
      "documentation":"<p>Contains details about how to handle harmful content.</p> <p>This data type is used in the following API operations:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetGuardrail.html#API_GetGuardrail_ResponseSyntax\">GetGuardrail response body</a> </p> </li> </ul>"
    },
    "GuardrailContentPolicyConfig":{
      "type":"structure",
      "required":["filtersConfig"],
      "members":{
        "filtersConfig":{
          "shape":"GuardrailContentFiltersConfig",
          "documentation":"<p>Contains the type of the content filter and how strongly it should apply to prompts and model responses.</p>"
        },
        "tierConfig":{
          "shape":"GuardrailContentFiltersTierConfig",
          "documentation":"<p>The tier that your guardrail uses for content filters.</p>"
        }
      },
      "documentation":"<p>Contains details about how to handle harmful content.</p>"
    },
    "GuardrailContextualGroundingAction":{
      "type":"string",
      "enum":[
        "BLOCK",
        "NONE"
      ],
      "sensitive":true
    },
    "GuardrailContextualGroundingFilter":{
      "type":"structure",
      "required":[
        "type",
        "threshold"
      ],
      "members":{
        "type":{
          "shape":"GuardrailContextualGroundingFilterType",
          "documentation":"<p>The filter type details for the guardrails contextual grounding filter.</p>"
        },
        "threshold":{
          "shape":"GuardrailContextualGroundingFilterThresholdDouble",
          "documentation":"<p>The threshold details for the guardrails contextual grounding filter.</p>"
        },
        "action":{
          "shape":"GuardrailContextualGroundingAction",
          "documentation":"<p>The action to take when content fails the contextual grounding evaluation. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether contextual grounding is enabled for evaluation. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>The details for the guardrails contextual grounding filter.</p>"
    },
    "GuardrailContextualGroundingFilterConfig":{
      "type":"structure",
      "required":[
        "type",
        "threshold"
      ],
      "members":{
        "type":{
          "shape":"GuardrailContextualGroundingFilterType",
          "documentation":"<p>The filter details for the guardrails contextual grounding filter.</p>"
        },
        "threshold":{
          "shape":"GuardrailContextualGroundingFilterConfigThresholdDouble",
          "documentation":"<p>The threshold details for the guardrails contextual grounding filter.</p>"
        },
        "action":{
          "shape":"GuardrailContextualGroundingAction",
          "documentation":"<p>Specifies the action to take when content fails the contextual grounding evaluation. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable contextual grounding evaluation. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>The filter configuration details for the guardrails contextual grounding filter.</p>"
    },
    "GuardrailContextualGroundingFilterConfigThresholdDouble":{
      "type":"double",
      "box":true,
      "min":0
    },
    "GuardrailContextualGroundingFilterThresholdDouble":{
      "type":"double",
      "box":true,
      "min":0
    },
    "GuardrailContextualGroundingFilterType":{
      "type":"string",
      "enum":[
        "GROUNDING",
        "RELEVANCE"
      ]
    },
    "GuardrailContextualGroundingFilters":{
      "type":"list",
      "member":{"shape":"GuardrailContextualGroundingFilter"},
      "min":1
    },
    "GuardrailContextualGroundingFiltersConfig":{
      "type":"list",
      "member":{"shape":"GuardrailContextualGroundingFilterConfig"},
      "min":1
    },
    "GuardrailContextualGroundingPolicy":{
      "type":"structure",
      "required":["filters"],
      "members":{
        "filters":{
          "shape":"GuardrailContextualGroundingFilters",
          "documentation":"<p>The filter details for the guardrails contextual grounding policy.</p>"
        }
      },
      "documentation":"<p>The details for the guardrails contextual grounding policy.</p>"
    },
    "GuardrailContextualGroundingPolicyConfig":{
      "type":"structure",
      "required":["filtersConfig"],
      "members":{
        "filtersConfig":{
          "shape":"GuardrailContextualGroundingFiltersConfig",
          "documentation":"<p>The filter configuration details for the guardrails contextual grounding policy.</p>"
        }
      },
      "documentation":"<p>The policy configuration details for the guardrails contextual grounding policy.</p>"
    },
    "GuardrailCrossRegionConfig":{
      "type":"structure",
      "required":["guardrailProfileIdentifier"],
      "members":{
        "guardrailProfileIdentifier":{
          "shape":"GuardrailCrossRegionGuardrailProfileIdentifier",
          "documentation":"<p>The ID or Amazon Resource Name (ARN) of the guardrail profile that your guardrail is using. Guardrail profile availability depends on your current Amazon Web Services Region. For more information, see the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region-support.html\">Amazon Bedrock User Guide</a>.</p>"
        }
      },
      "documentation":"<p>The system-defined guardrail profile that you're using with your guardrail. Guardrail profiles define the destination Amazon Web Services Regions where guardrail inference requests can be automatically routed. Using guardrail profiles helps maintain guardrail performance and reliability when demand increases.</p> <p>For more information, see the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html\">Amazon Bedrock User Guide</a>.</p>"
    },
    "GuardrailCrossRegionDetails":{
      "type":"structure",
      "members":{
        "guardrailProfileId":{
          "shape":"GuardrailCrossRegionGuardrailProfileId",
          "documentation":"<p>The ID of the guardrail profile that your guardrail is using. Profile availability depends on your current Amazon Web Services Region. For more information, see the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region-support.html\">Amazon Bedrock User Guide</a>.</p>"
        },
        "guardrailProfileArn":{
          "shape":"GuardrailCrossRegionGuardrailProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the guardrail profile that you're using with your guardrail.</p>"
        }
      },
      "documentation":"<p>Contains details about the system-defined guardrail profile that you're using with your guardrail for cross-Region inference.</p> <p>For more information, see the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html\">Amazon Bedrock User Guide</a>.</p>"
    },
    "GuardrailCrossRegionGuardrailProfileArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail-profile/[a-z0-9-]+[.]{1}guardrail[.]{1}v[0-9:]+"
    },
    "GuardrailCrossRegionGuardrailProfileId":{
      "type":"string",
      "max":30,
      "min":15,
      "pattern":"[a-z0-9-]+[.]{1}guardrail[.]{1}v[0-9:]+"
    },
    "GuardrailCrossRegionGuardrailProfileIdentifier":{
      "type":"string",
      "max":2048,
      "min":15,
      "pattern":"[a-z0-9-]+[.]{1}guardrail[.]{1}v[0-9:]+|arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail-profile/[a-z0-9-]+[.]{1}guardrail[.]{1}v[0-9:]+"
    },
    "GuardrailDescription":{
      "type":"string",
      "max":200,
      "min":1,
      "sensitive":true
    },
    "GuardrailDraftVersion":{
      "type":"string",
      "max":5,
      "min":5,
      "pattern":"DRAFT"
    },
    "GuardrailFailureRecommendation":{
      "type":"string",
      "max":200,
      "min":1,
      "sensitive":true
    },
    "GuardrailFailureRecommendations":{
      "type":"list",
      "member":{"shape":"GuardrailFailureRecommendation"},
      "max":100,
      "min":0
    },
    "GuardrailFilterStrength":{
      "type":"string",
      "enum":[
        "NONE",
        "LOW",
        "MEDIUM",
        "HIGH"
      ]
    },
    "GuardrailId":{
      "type":"string",
      "max":64,
      "min":0,
      "pattern":"[a-z0-9]+"
    },
    "GuardrailIdentifier":{
      "type":"string",
      "max":2048,
      "min":0,
      "pattern":"(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))"
    },
    "GuardrailManagedWordLists":{
      "type":"list",
      "member":{"shape":"GuardrailManagedWords"}
    },
    "GuardrailManagedWordListsConfig":{
      "type":"list",
      "member":{"shape":"GuardrailManagedWordsConfig"}
    },
    "GuardrailManagedWords":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"GuardrailManagedWordsType",
          "documentation":"<p>ManagedWords$type The managed word type that was configured for the guardrail. (For now, we only offer profanity word list)</p>"
        },
        "inputAction":{
          "shape":"GuardrailWordAction",
          "documentation":"<p>The action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailWordAction",
          "documentation":"<p>The action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>The managed word list that was configured for the guardrail. (This is a list of words that are pre-defined and managed by guardrails only.)</p>"
    },
    "GuardrailManagedWordsConfig":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"GuardrailManagedWordsType",
          "documentation":"<p>The managed word type to configure for the guardrail.</p>"
        },
        "inputAction":{
          "shape":"GuardrailWordAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailWordAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>The managed word list to configure for the guardrail.</p>"
    },
    "GuardrailManagedWordsType":{
      "type":"string",
      "enum":["PROFANITY"]
    },
    "GuardrailModalities":{
      "type":"list",
      "member":{"shape":"GuardrailModality"},
      "max":2,
      "min":1
    },
    "GuardrailModality":{
      "type":"string",
      "enum":[
        "TEXT",
        "IMAGE"
      ],
      "sensitive":true
    },
    "GuardrailName":{
      "type":"string",
      "max":50,
      "min":1,
      "pattern":"[0-9a-zA-Z-_]+",
      "sensitive":true
    },
    "GuardrailNumericalVersion":{
      "type":"string",
      "pattern":"[1-9][0-9]{0,7}"
    },
    "GuardrailPiiEntities":{
      "type":"list",
      "member":{"shape":"GuardrailPiiEntity"},
      "min":1
    },
    "GuardrailPiiEntitiesConfig":{
      "type":"list",
      "member":{"shape":"GuardrailPiiEntityConfig"},
      "min":1
    },
    "GuardrailPiiEntity":{
      "type":"structure",
      "required":[
        "type",
        "action"
      ],
      "members":{
        "type":{
          "shape":"GuardrailPiiEntityType",
          "documentation":"<p>The type of PII entity. For example, Social Security Number.</p>"
        },
        "action":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>The configured guardrail action when PII entity is detected.</p>"
        },
        "inputAction":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>The action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>ANONYMIZE</code> – Mask the content and replace it with identifier tags.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>The action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>ANONYMIZE</code> – Mask the content and replace it with identifier tags.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>The PII entity configured for the guardrail.</p>"
    },
    "GuardrailPiiEntityConfig":{
      "type":"structure",
      "required":[
        "type",
        "action"
      ],
      "members":{
        "type":{
          "shape":"GuardrailPiiEntityType",
          "documentation":"<p>Configure guardrail type when the PII entity is detected.</p> <p>The following PIIs are used to block or mask sensitive information:</p> <ul> <li> <p> <b>General</b> </p> <ul> <li> <p> <b>ADDRESS</b> </p> <p>A physical address, such as \"100 Main Street, Anytown, USA\" or \"Suite #12, Building 123\". An address can include information such as the street, building, location, city, state, country, county, zip code, precinct, and neighborhood. </p> </li> <li> <p> <b>AGE</b> </p> <p>An individual's age, including the quantity and unit of time. For example, in the phrase \"I am 40 years old,\" Guardrails recognizes \"40 years\" as an age. </p> </li> <li> <p> <b>NAME</b> </p> <p>An individual's name. This entity type does not include titles, such as Dr., Mr., Mrs., or Miss. guardrails doesn't apply this entity type to names that are part of organizations or addresses. For example, guardrails recognizes the \"John Doe Organization\" as an organization, and it recognizes \"Jane Doe Street\" as an address. </p> </li> <li> <p> <b>EMAIL</b> </p> <p>An email address, such as <i>marymajor@email.com</i>.</p> </li> <li> <p> <b>PHONE</b> </p> <p>A phone number. This entity type also includes fax and pager numbers. </p> </li> <li> <p> <b>USERNAME</b> </p> <p>A user name that identifies an account, such as a login name, screen name, nick name, or handle. </p> </li> <li> <p> <b>PASSWORD</b> </p> <p>An alphanumeric string that is used as a password, such as \"*<i>very20special#pass*</i>\". </p> </li> <li> <p> <b>DRIVER_ID</b> </p> <p>The number assigned to a driver's license, which is an official document permitting an individual to operate one or more motorized vehicles on a public road. A driver's license number consists of alphanumeric characters. </p> </li> <li> <p> <b>LICENSE_PLATE</b> </p> <p>A license plate for a vehicle is issued by the state or country where the vehicle is registered. The format for passenger vehicles is typically five to eight digits, consisting of upper-case letters and numbers. The format varies depending on the location of the issuing state or country. </p> </li> <li> <p> <b>VEHICLE_IDENTIFICATION_NUMBER</b> </p> <p>A Vehicle Identification Number (VIN) uniquely identifies a vehicle. VIN content and format are defined in the <i>ISO 3779</i> specification. Each country has specific codes and formats for VINs. </p> </li> </ul> </li> <li> <p> <b>Finance</b> </p> <ul> <li> <p> <b>CREDIT_DEBIT_CARD_CVV</b> </p> <p>A three-digit card verification code (CVV) that is present on VISA, MasterCard, and Discover credit and debit cards. For American Express credit or debit cards, the CVV is a four-digit numeric code. </p> </li> <li> <p> <b>CREDIT_DEBIT_CARD_EXPIRY</b> </p> <p>The expiration date for a credit or debit card. This number is usually four digits long and is often formatted as <i>month/year</i> or <i>MM/YY</i>. Guardrails recognizes expiration dates such as <i>01/21</i>, <i>01/2021</i>, and <i>Jan 2021</i>. </p> </li> <li> <p> <b>CREDIT_DEBIT_CARD_NUMBER</b> </p> <p>The number for a credit or debit card. These numbers can vary from 13 to 16 digits in length. However, Amazon Comprehend also recognizes credit or debit card numbers when only the last four digits are present. </p> </li> <li> <p> <b>PIN</b> </p> <p>A four-digit personal identification number (PIN) with which you can access your bank account. </p> </li> <li> <p> <b>INTERNATIONAL_BANK_ACCOUNT_NUMBER</b> </p> <p>An International Bank Account Number has specific formats in each country. For more information, see <a href=\"https://www.iban.com/structure\">www.iban.com/structure</a>.</p> </li> <li> <p> <b>SWIFT_CODE</b> </p> <p>A SWIFT code is a standard format of Bank Identifier Code (BIC) used to specify a particular bank or branch. Banks use these codes for money transfers such as international wire transfers.</p> <p>SWIFT codes consist of eight or 11 characters. The 11-digit codes refer to specific branches, while eight-digit codes (or 11-digit codes ending in 'XXX') refer to the head or primary office.</p> </li> </ul> </li> <li> <p> <b>IT</b> </p> <ul> <li> <p> <b>IP_ADDRESS</b> </p> <p>An IPv4 address, such as <i>198.51.100.0</i>. </p> </li> <li> <p> <b>MAC_ADDRESS</b> </p> <p>A <i>media access control</i> (MAC) address is a unique identifier assigned to a network interface controller (NIC). </p> </li> <li> <p> <b>URL</b> </p> <p>A web address, such as <i>www.example.com</i>. </p> </li> <li> <p> <b>AWS_ACCESS_KEY</b> </p> <p>A unique identifier that's associated with a secret access key; you use the access key ID and secret access key to sign programmatic Amazon Web Services requests cryptographically. </p> </li> <li> <p> <b>AWS_SECRET_KEY</b> </p> <p>A unique identifier that's associated with an access key. You use the access key ID and secret access key to sign programmatic Amazon Web Services requests cryptographically. </p> </li> </ul> </li> <li> <p> <b>USA specific</b> </p> <ul> <li> <p> <b>US_BANK_ACCOUNT_NUMBER</b> </p> <p>A US bank account number, which is typically 10 to 12 digits long. </p> </li> <li> <p> <b>US_BANK_ROUTING_NUMBER</b> </p> <p>A US bank account routing number. These are typically nine digits long, </p> </li> <li> <p> <b>US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER</b> </p> <p>A US Individual Taxpayer Identification Number (ITIN) is a nine-digit number that starts with a \"9\" and contain a \"7\" or \"8\" as the fourth digit. An ITIN can be formatted with a space or a dash after the third and forth digits. </p> </li> <li> <p> <b>US_PASSPORT_NUMBER</b> </p> <p>A US passport number. Passport numbers range from six to nine alphanumeric characters. </p> </li> <li> <p> <b>US_SOCIAL_SECURITY_NUMBER</b> </p> <p>A US Social Security Number (SSN) is a nine-digit number that is issued to US citizens, permanent residents, and temporary working residents. </p> </li> </ul> </li> <li> <p> <b>Canada specific</b> </p> <ul> <li> <p> <b>CA_HEALTH_NUMBER</b> </p> <p>A Canadian Health Service Number is a 10-digit unique identifier, required for individuals to access healthcare benefits. </p> </li> <li> <p> <b>CA_SOCIAL_INSURANCE_NUMBER</b> </p> <p>A Canadian Social Insurance Number (SIN) is a nine-digit unique identifier, required for individuals to access government programs and benefits.</p> <p>The SIN is formatted as three groups of three digits, such as <i>123-456-789</i>. A SIN can be validated through a simple check-digit process called the <a href=\"https://www.wikipedia.org/wiki/Luhn_algorithm\">Luhn algorithm</a>.</p> </li> </ul> </li> <li> <p> <b>UK Specific</b> </p> <ul> <li> <p> <b>UK_NATIONAL_HEALTH_SERVICE_NUMBER</b> </p> <p>A UK National Health Service Number is a 10-17 digit number, such as <i>485 777 3456</i>. The current system formats the 10-digit number with spaces after the third and sixth digits. The final digit is an error-detecting checksum.</p> </li> <li> <p> <b>UK_NATIONAL_INSURANCE_NUMBER</b> </p> <p>A UK National Insurance Number (NINO) provides individuals with access to National Insurance (social security) benefits. It is also used for some purposes in the UK tax system.</p> <p>The number is nine digits long and starts with two letters, followed by six numbers and one letter. A NINO can be formatted with a space or a dash after the two letters and after the second, forth, and sixth digits.</p> </li> <li> <p> <b>UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER</b> </p> <p>A UK Unique Taxpayer Reference (UTR) is a 10-digit number that identifies a taxpayer or a business. </p> </li> </ul> </li> <li> <p> <b>Custom</b> </p> <ul> <li> <p> <b>Regex filter</b> - You can use a regular expressions to define patterns for a guardrail to recognize and act upon such as serial number, booking ID etc..</p> </li> </ul> </li> </ul>"
        },
        "action":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>Configure guardrail action when the PII entity is detected.</p>"
        },
        "inputAction":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>ANONYMIZE</code> – Mask the content and replace it with identifier tags.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>ANONYMIZE</code> – Mask the content and replace it with identifier tags.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>The PII entity to configure for the guardrail.</p>"
    },
    "GuardrailPiiEntityType":{
      "type":"string",
      "enum":[
        "ADDRESS",
        "AGE",
        "AWS_ACCESS_KEY",
        "AWS_SECRET_KEY",
        "CA_HEALTH_NUMBER",
        "CA_SOCIAL_INSURANCE_NUMBER",
        "CREDIT_DEBIT_CARD_CVV",
        "CREDIT_DEBIT_CARD_EXPIRY",
        "CREDIT_DEBIT_CARD_NUMBER",
        "DRIVER_ID",
        "EMAIL",
        "INTERNATIONAL_BANK_ACCOUNT_NUMBER",
        "IP_ADDRESS",
        "LICENSE_PLATE",
        "MAC_ADDRESS",
        "NAME",
        "PASSWORD",
        "PHONE",
        "PIN",
        "SWIFT_CODE",
        "UK_NATIONAL_HEALTH_SERVICE_NUMBER",
        "UK_NATIONAL_INSURANCE_NUMBER",
        "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER",
        "URL",
        "USERNAME",
        "US_BANK_ACCOUNT_NUMBER",
        "US_BANK_ROUTING_NUMBER",
        "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER",
        "US_PASSPORT_NUMBER",
        "US_SOCIAL_SECURITY_NUMBER",
        "VEHICLE_IDENTIFICATION_NUMBER"
      ]
    },
    "GuardrailRegex":{
      "type":"structure",
      "required":[
        "name",
        "pattern",
        "action"
      ],
      "members":{
        "name":{
          "shape":"GuardrailRegexNameString",
          "documentation":"<p>The name of the regular expression for the guardrail.</p>"
        },
        "description":{
          "shape":"GuardrailRegexDescriptionString",
          "documentation":"<p>The description of the regular expression for the guardrail.</p>"
        },
        "pattern":{
          "shape":"GuardrailRegexPatternString",
          "documentation":"<p>The pattern of the regular expression configured for the guardrail.</p>"
        },
        "action":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>The action taken when a match to the regular expression is detected.</p>"
        },
        "inputAction":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>The action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>The action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>The regular expression configured for the guardrail.</p>"
    },
    "GuardrailRegexConfig":{
      "type":"structure",
      "required":[
        "name",
        "pattern",
        "action"
      ],
      "members":{
        "name":{
          "shape":"GuardrailRegexConfigNameString",
          "documentation":"<p>The name of the regular expression to configure for the guardrail.</p>"
        },
        "description":{
          "shape":"GuardrailRegexConfigDescriptionString",
          "documentation":"<p>The description of the regular expression to configure for the guardrail.</p>"
        },
        "pattern":{
          "shape":"GuardrailRegexConfigPatternString",
          "documentation":"<p>The regular expression pattern to configure for the guardrail.</p>"
        },
        "action":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>The guardrail action to configure when matching regular expression is detected.</p>"
        },
        "inputAction":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailSensitiveInformationAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>The regular expression to configure for the guardrail.</p>"
    },
    "GuardrailRegexConfigDescriptionString":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "GuardrailRegexConfigNameString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "GuardrailRegexConfigPatternString":{
      "type":"string",
      "max":500,
      "min":1
    },
    "GuardrailRegexDescriptionString":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "GuardrailRegexNameString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "GuardrailRegexPatternString":{
      "type":"string",
      "max":500,
      "min":1
    },
    "GuardrailRegexes":{
      "type":"list",
      "member":{"shape":"GuardrailRegex"}
    },
    "GuardrailRegexesConfig":{
      "type":"list",
      "member":{"shape":"GuardrailRegexConfig"},
      "max":10,
      "min":1
    },
    "GuardrailSensitiveInformationAction":{
      "type":"string",
      "enum":[
        "BLOCK",
        "ANONYMIZE",
        "NONE"
      ]
    },
    "GuardrailSensitiveInformationPolicy":{
      "type":"structure",
      "members":{
        "piiEntities":{
          "shape":"GuardrailPiiEntities",
          "documentation":"<p>The list of PII entities configured for the guardrail.</p>"
        },
        "regexes":{
          "shape":"GuardrailRegexes",
          "documentation":"<p>The list of regular expressions configured for the guardrail.</p>"
        }
      },
      "documentation":"<p>Contains details about PII entities and regular expressions configured for the guardrail.</p>"
    },
    "GuardrailSensitiveInformationPolicyConfig":{
      "type":"structure",
      "members":{
        "piiEntitiesConfig":{
          "shape":"GuardrailPiiEntitiesConfig",
          "documentation":"<p>A list of PII entities to configure to the guardrail.</p>"
        },
        "regexesConfig":{
          "shape":"GuardrailRegexesConfig",
          "documentation":"<p>A list of regular expressions to configure to the guardrail.</p>"
        }
      },
      "documentation":"<p>Contains details about PII entities and regular expressions to configure for the guardrail.</p>"
    },
    "GuardrailStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "UPDATING",
        "VERSIONING",
        "READY",
        "FAILED",
        "DELETING"
      ]
    },
    "GuardrailStatusReason":{
      "type":"string",
      "max":200,
      "min":1,
      "sensitive":true
    },
    "GuardrailStatusReasons":{
      "type":"list",
      "member":{"shape":"GuardrailStatusReason"},
      "max":100,
      "min":0
    },
    "GuardrailSummaries":{
      "type":"list",
      "member":{"shape":"GuardrailSummary"},
      "max":1000,
      "min":0
    },
    "GuardrailSummary":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "status",
        "name",
        "version",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "id":{
          "shape":"GuardrailId",
          "documentation":"<p>The unique identifier of the guardrail.</p>"
        },
        "arn":{
          "shape":"GuardrailArn",
          "documentation":"<p>The ARN of the guardrail.</p>"
        },
        "status":{
          "shape":"GuardrailStatus",
          "documentation":"<p>The status of the guardrail.</p>"
        },
        "name":{
          "shape":"GuardrailName",
          "documentation":"<p>The name of the guardrail.</p>"
        },
        "description":{
          "shape":"GuardrailDescription",
          "documentation":"<p>A description of the guardrail.</p>"
        },
        "version":{
          "shape":"GuardrailVersion",
          "documentation":"<p>The version of the guardrail.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the guardrail was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the guardrail was last updated.</p>"
        },
        "crossRegionDetails":{
          "shape":"GuardrailCrossRegionDetails",
          "documentation":"<p>Details about the system-defined guardrail profile that you're using with your guardrail, including the guardrail profile ID and Amazon Resource Name (ARN).</p>"
        }
      },
      "documentation":"<p>Contains details about a guardrail.</p> <p>This data type is used in the following API operations:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListGuardrails.html#API_ListGuardrails_ResponseSyntax\">ListGuardrails response body</a> </p> </li> </ul>"
    },
    "GuardrailTopic":{
      "type":"structure",
      "required":[
        "name",
        "definition"
      ],
      "members":{
        "name":{
          "shape":"GuardrailTopicName",
          "documentation":"<p>The name of the topic to deny.</p>"
        },
        "definition":{
          "shape":"GuardrailTopicDefinition",
          "documentation":"<p>A definition of the topic to deny.</p>"
        },
        "examples":{
          "shape":"GuardrailTopicExamples",
          "documentation":"<p>A list of prompts, each of which is an example of a prompt that can be categorized as belonging to the topic.</p>"
        },
        "type":{
          "shape":"GuardrailTopicType",
          "documentation":"<p>Specifies to deny the topic.</p>"
        },
        "inputAction":{
          "shape":"GuardrailTopicAction",
          "documentation":"<p>The action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailTopicAction",
          "documentation":"<p>The action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>Details about topics for the guardrail to identify and deny.</p> <p>This data type is used in the following API operations:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetGuardrail.html#API_GetGuardrail_ResponseSyntax\">GetGuardrail response body</a> </p> </li> </ul>"
    },
    "GuardrailTopicAction":{
      "type":"string",
      "enum":[
        "BLOCK",
        "NONE"
      ],
      "sensitive":true
    },
    "GuardrailTopicConfig":{
      "type":"structure",
      "required":[
        "name",
        "definition",
        "type"
      ],
      "members":{
        "name":{
          "shape":"GuardrailTopicName",
          "documentation":"<p>The name of the topic to deny.</p>"
        },
        "definition":{
          "shape":"GuardrailTopicDefinition",
          "documentation":"<p>A definition of the topic to deny.</p>"
        },
        "examples":{
          "shape":"GuardrailTopicExamples",
          "documentation":"<p>A list of prompts, each of which is an example of a prompt that can be categorized as belonging to the topic.</p>"
        },
        "type":{
          "shape":"GuardrailTopicType",
          "documentation":"<p>Specifies to deny the topic.</p>"
        },
        "inputAction":{
          "shape":"GuardrailTopicAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailTopicAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>Details about topics for the guardrail to identify and deny.</p>"
    },
    "GuardrailTopicDefinition":{
      "type":"string",
      "max":200,
      "min":1,
      "sensitive":true
    },
    "GuardrailTopicExample":{
      "type":"string",
      "max":100,
      "min":1,
      "sensitive":true
    },
    "GuardrailTopicExamples":{
      "type":"list",
      "member":{"shape":"GuardrailTopicExample"},
      "max":5,
      "min":0
    },
    "GuardrailTopicName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[0-9a-zA-Z-_ !?.]+",
      "sensitive":true
    },
    "GuardrailTopicPolicy":{
      "type":"structure",
      "required":["topics"],
      "members":{
        "topics":{
          "shape":"GuardrailTopics",
          "documentation":"<p>A list of policies related to topics that the guardrail should deny.</p>"
        },
        "tier":{
          "shape":"GuardrailTopicsTier",
          "documentation":"<p>The tier that your guardrail uses for denied topic filters.</p>"
        }
      },
      "documentation":"<p>Contains details about topics that the guardrail should identify and deny.</p> <p>This data type is used in the following API operations:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetGuardrail.html#API_GetGuardrail_ResponseSyntax\">GetGuardrail response body</a> </p> </li> </ul>"
    },
    "GuardrailTopicPolicyConfig":{
      "type":"structure",
      "required":["topicsConfig"],
      "members":{
        "topicsConfig":{
          "shape":"GuardrailTopicsConfig",
          "documentation":"<p>A list of policies related to topics that the guardrail should deny.</p>"
        },
        "tierConfig":{
          "shape":"GuardrailTopicsTierConfig",
          "documentation":"<p>The tier that your guardrail uses for denied topic filters.</p>"
        }
      },
      "documentation":"<p>Contains details about topics that the guardrail should identify and deny.</p>"
    },
    "GuardrailTopicType":{
      "type":"string",
      "enum":["DENY"]
    },
    "GuardrailTopics":{
      "type":"list",
      "member":{"shape":"GuardrailTopic"},
      "max":30,
      "min":1
    },
    "GuardrailTopicsConfig":{
      "type":"list",
      "member":{"shape":"GuardrailTopicConfig"},
      "max":30,
      "min":1
    },
    "GuardrailTopicsTier":{
      "type":"structure",
      "required":["tierName"],
      "members":{
        "tierName":{
          "shape":"GuardrailTopicsTierName",
          "documentation":"<p>The tier that your guardrail uses for denied topic filters. Valid values include:</p> <ul> <li> <p> <code>CLASSIC</code> tier – Provides established guardrails functionality supporting English, French, and Spanish languages.</p> </li> <li> <p> <code>STANDARD</code> tier – Provides a more robust solution than the <code>CLASSIC</code> tier and has more comprehensive language support. This tier requires that your guardrail use <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html\">cross-Region inference</a>.</p> </li> </ul>"
        }
      },
      "documentation":"<p>The tier that your guardrail uses for denied topic filters.</p>"
    },
    "GuardrailTopicsTierConfig":{
      "type":"structure",
      "required":["tierName"],
      "members":{
        "tierName":{
          "shape":"GuardrailTopicsTierName",
          "documentation":"<p>The tier that your guardrail uses for denied topic filters. Valid values include:</p> <ul> <li> <p> <code>CLASSIC</code> tier – Provides established guardrails functionality supporting English, French, and Spanish languages.</p> </li> <li> <p> <code>STANDARD</code> tier – Provides a more robust solution than the <code>CLASSIC</code> tier and has more comprehensive language support. This tier requires that your guardrail use <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html\">cross-Region inference</a>.</p> </li> </ul>"
        }
      },
      "documentation":"<p>The tier that your guardrail uses for denied topic filters. Consider using a tier that balances performance, accuracy, and compatibility with your existing generative AI workflows.</p>"
    },
    "GuardrailTopicsTierName":{
      "type":"string",
      "enum":[
        "CLASSIC",
        "STANDARD"
      ],
      "sensitive":true
    },
    "GuardrailVersion":{
      "type":"string",
      "pattern":"(([1-9][0-9]{0,7})|(DRAFT))"
    },
    "GuardrailWord":{
      "type":"structure",
      "required":["text"],
      "members":{
        "text":{
          "shape":"GuardrailWordTextString",
          "documentation":"<p>Text of the word configured for the guardrail to block.</p>"
        },
        "inputAction":{
          "shape":"GuardrailWordAction",
          "documentation":"<p>The action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailWordAction",
          "documentation":"<p>The action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the input. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether guardrail evaluation is enabled on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>A word configured for the guardrail.</p>"
    },
    "GuardrailWordAction":{
      "type":"string",
      "enum":[
        "BLOCK",
        "NONE"
      ],
      "sensitive":true
    },
    "GuardrailWordConfig":{
      "type":"structure",
      "required":["text"],
      "members":{
        "text":{
          "shape":"GuardrailWordConfigTextString",
          "documentation":"<p>Text of the word configured for the guardrail to block.</p>"
        },
        "inputAction":{
          "shape":"GuardrailWordAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the input. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "outputAction":{
          "shape":"GuardrailWordAction",
          "documentation":"<p>Specifies the action to take when harmful content is detected in the output. Supported values include:</p> <ul> <li> <p> <code>BLOCK</code> – Block the content and replace it with blocked messaging.</p> </li> <li> <p> <code>NONE</code> – Take no action but return detection information in the trace response.</p> </li> </ul>"
        },
        "inputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the intput. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        },
        "outputEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable guardrail evaluation on the output. When disabled, you aren't charged for the evaluation. The evaluation doesn't appear in the response.</p>"
        }
      },
      "documentation":"<p>A word to configure for the guardrail.</p>"
    },
    "GuardrailWordConfigTextString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "GuardrailWordPolicy":{
      "type":"structure",
      "members":{
        "words":{
          "shape":"GuardrailWords",
          "documentation":"<p>A list of words configured for the guardrail.</p>"
        },
        "managedWordLists":{
          "shape":"GuardrailManagedWordLists",
          "documentation":"<p>A list of managed words configured for the guardrail.</p>"
        }
      },
      "documentation":"<p>Contains details about the word policy configured for the guardrail.</p>"
    },
    "GuardrailWordPolicyConfig":{
      "type":"structure",
      "members":{
        "wordsConfig":{
          "shape":"GuardrailWordsConfig",
          "documentation":"<p>A list of words to configure for the guardrail.</p>"
        },
        "managedWordListsConfig":{
          "shape":"GuardrailManagedWordListsConfig",
          "documentation":"<p>A list of managed words to configure for the guardrail.</p>"
        }
      },
      "documentation":"<p>Contains details about the word policy to configured for the guardrail.</p>"
    },
    "GuardrailWordTextString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "GuardrailWords":{
      "type":"list",
      "member":{"shape":"GuardrailWord"},
      "max":10000,
      "min":1
    },
    "GuardrailWordsConfig":{
      "type":"list",
      "member":{"shape":"GuardrailWordConfig"},
      "max":10000,
      "min":1
    },
    "HumanEvaluationConfig":{
      "type":"structure",
      "required":["datasetMetricConfigs"],
      "members":{
        "humanWorkflowConfig":{
          "shape":"HumanWorkflowConfig",
          "documentation":"<p>The parameters of the human workflow.</p>"
        },
        "customMetrics":{
          "shape":"HumanEvaluationCustomMetrics",
          "documentation":"<p>A <code>HumanEvaluationCustomMetric</code> object. It contains the names the metrics, how the metrics are to be evaluated, an optional description.</p>"
        },
        "datasetMetricConfigs":{
          "shape":"EvaluationDatasetMetricConfigs",
          "documentation":"<p>Use to specify the metrics, task, and prompt dataset to be used in your model evaluation job.</p>"
        }
      },
      "documentation":"<p>Specifies the custom metrics, how tasks will be rated, the flow definition ARN, and your custom prompt datasets. Model evaluation jobs use human workers <i>only</i> support the use of custom prompt datasets. To learn more about custom prompt datasets and the required format, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-prompt-datasets-custom.html\">Custom prompt datasets</a>.</p> <p>When you create custom metrics in <code>HumanEvaluationCustomMetric</code> you must specify the metric's <code>name</code>. The list of <code>names</code> specified in the <code>HumanEvaluationCustomMetric</code> array, must match the <code>metricNames</code> array of strings specified in <code>EvaluationDatasetMetricConfig</code>. For example, if in the <code>HumanEvaluationCustomMetric</code> array your specified the names <code>\"accuracy\", \"toxicity\", \"readability\"</code> as custom metrics <i>then</i> the <code>metricNames</code> array would need to look like the following <code>[\"accuracy\", \"toxicity\", \"readability\"]</code> in <code>EvaluationDatasetMetricConfig</code>.</p>"
    },
    "HumanEvaluationCustomMetric":{
      "type":"structure",
      "required":[
        "name",
        "ratingMethod"
      ],
      "members":{
        "name":{
          "shape":"EvaluationMetricName",
          "documentation":"<p>The name of the metric. Your human evaluators will see this name in the evaluation UI.</p>"
        },
        "description":{
          "shape":"EvaluationMetricDescription",
          "documentation":"<p>An optional description of the metric. Use this parameter to provide more details about the metric.</p>"
        },
        "ratingMethod":{
          "shape":"EvaluationRatingMethod",
          "documentation":"<p>Choose how you want your human workers to evaluation your model. Valid values for rating methods are <code>ThumbsUpDown</code>, <code>IndividualLikertScale</code>,<code>ComparisonLikertScale</code>, <code>ComparisonChoice</code>, and <code>ComparisonRank</code> </p>"
        }
      },
      "documentation":"<p>In a model evaluation job that uses human workers you must define the name of the metric, and how you want that metric rated <code>ratingMethod</code>, and an optional description of the metric.</p>"
    },
    "HumanEvaluationCustomMetrics":{
      "type":"list",
      "member":{"shape":"HumanEvaluationCustomMetric"},
      "max":10,
      "min":1
    },
    "HumanTaskInstructions":{
      "type":"string",
      "max":5000,
      "min":1,
      "pattern":"[\\S\\s]+",
      "sensitive":true
    },
    "HumanWorkflowConfig":{
      "type":"structure",
      "required":["flowDefinitionArn"],
      "members":{
        "flowDefinitionArn":{
          "shape":"SageMakerFlowDefinitionArn",
          "documentation":"<p>The Amazon Resource Number (ARN) for the flow definition</p>"
        },
        "instructions":{
          "shape":"HumanTaskInstructions",
          "documentation":"<p>Instructions for the flow definition</p>"
        }
      },
      "documentation":"<p>Contains <code>SageMakerFlowDefinition</code> object. The object is used to specify the prompt dataset, task type, rating method and metric names.</p>"
    },
    "IdempotencyToken":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9]([-a-zA-Z0-9]{0,254}[a-zA-Z0-9])?"
    },
    "Identifier":{
      "type":"string",
      "max":1024,
      "min":1,
      "sensitive":true
    },
    "ImplicitFilterConfiguration":{
      "type":"structure",
      "required":[
        "metadataAttributes",
        "modelArn"
      ],
      "members":{
        "metadataAttributes":{
          "shape":"MetadataAttributeSchemaList",
          "documentation":"<p>A list of metadata attribute schemas that define the structure and properties of metadata fields used for implicit filtering. Each attribute defines a key, type, and optional description.</p>"
        },
        "modelArn":{
          "shape":"BedrockModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the foundation model used for implicit filtering. This model processes the query to extract relevant filtering criteria.</p>"
        }
      },
      "documentation":"<p>Configuration for implicit filtering in Knowledge Base vector searches. Implicit filtering allows you to automatically filter search results based on metadata attributes without requiring explicit filter expressions in each query.</p>"
    },
    "ImportedModelArn":{
      "type":"string",
      "max":1011,
      "min":20,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:imported-model/[a-z0-9]{12}"
    },
    "ImportedModelIdentifier":{
      "type":"string",
      "max":1011,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:imported-model/[a-z0-9]{12})|(([0-9a-zA-Z][_-]?)+)"
    },
    "ImportedModelName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"([0-9a-zA-Z][_-]?)+"
    },
    "ImportedModelSummary":{
      "type":"structure",
      "required":[
        "modelArn",
        "modelName",
        "creationTime"
      ],
      "members":{
        "modelArn":{
          "shape":"ImportedModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the imported model.</p>"
        },
        "modelName":{
          "shape":"ImportedModelName",
          "documentation":"<p>Name of the imported model.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>Creation time of the imported model.</p>"
        },
        "instructSupported":{
          "shape":"InstructSupported",
          "documentation":"<p>Specifies if the imported model supports converse.</p>"
        },
        "modelArchitecture":{
          "shape":"ModelArchitecture",
          "documentation":"<p>The architecture of the imported model.</p>"
        }
      },
      "documentation":"<p>Information about the imported model.</p>"
    },
    "ImportedModelSummaryList":{
      "type":"list",
      "member":{"shape":"ImportedModelSummary"}
    },
    "IncludedModelId":{
      "type":"string",
      "pattern":"(ALL|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12}){0,1})"
    },
    "IncludedModelsList":{
      "type":"list",
      "member":{"shape":"IncludedModelId"},
      "min":1
    },
    "InferenceProfileArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+"
    },
    "InferenceProfileDescription":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":"([0-9a-zA-Z:.][ _-]?)+",
      "sensitive":true
    },
    "InferenceProfileId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9-:.]+"
    },
    "InferenceProfileIdentifier":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/)?[a-zA-Z0-9-:.]+"
    },
    "InferenceProfileModel":{
      "type":"structure",
      "members":{
        "modelArn":{
          "shape":"FoundationModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model.</p>"
        }
      },
      "documentation":"<p>Contains information about a model.</p>"
    },
    "InferenceProfileModelSource":{
      "type":"structure",
      "members":{
        "copyFrom":{
          "shape":"InferenceProfileModelSourceArn",
          "documentation":"<p>The ARN of the model or system-defined inference profile that is the source for the inference profile.</p>"
        }
      },
      "documentation":"<p>Contains information about the model or system-defined inference profile that is the source for an inference profile..</p>",
      "union":true
    },
    "InferenceProfileModelSourceArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|foundation-model)/[a-zA-Z0-9-:.]+"
    },
    "InferenceProfileModels":{
      "type":"list",
      "member":{"shape":"InferenceProfileModel"},
      "max":5,
      "min":1
    },
    "InferenceProfileName":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"([0-9a-zA-Z][ _-]?)+"
    },
    "InferenceProfileStatus":{
      "type":"string",
      "enum":["ACTIVE"]
    },
    "InferenceProfileSummaries":{
      "type":"list",
      "member":{"shape":"InferenceProfileSummary"}
    },
    "InferenceProfileSummary":{
      "type":"structure",
      "required":[
        "inferenceProfileName",
        "inferenceProfileArn",
        "models",
        "inferenceProfileId",
        "status",
        "type"
      ],
      "members":{
        "inferenceProfileName":{
          "shape":"InferenceProfileName",
          "documentation":"<p>The name of the inference profile.</p>"
        },
        "description":{
          "shape":"InferenceProfileDescription",
          "documentation":"<p>The description of the inference profile.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the inference profile was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the inference profile was last updated.</p>"
        },
        "inferenceProfileArn":{
          "shape":"InferenceProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the inference profile.</p>"
        },
        "models":{
          "shape":"InferenceProfileModels",
          "documentation":"<p>A list of information about each model in the inference profile.</p>"
        },
        "inferenceProfileId":{
          "shape":"InferenceProfileId",
          "documentation":"<p>The unique identifier of the inference profile.</p>"
        },
        "status":{
          "shape":"InferenceProfileStatus",
          "documentation":"<p>The status of the inference profile. <code>ACTIVE</code> means that the inference profile is ready to be used.</p>"
        },
        "type":{
          "shape":"InferenceProfileType",
          "documentation":"<p>The type of the inference profile. The following types are possible:</p> <ul> <li> <p> <code>SYSTEM_DEFINED</code> – The inference profile is defined by Amazon Bedrock. You can route inference requests across regions with these inference profiles.</p> </li> <li> <p> <code>APPLICATION</code> – The inference profile was created by a user. This type of inference profile can track metrics and costs when invoking the model in it. The inference profile may route requests to one or multiple regions.</p> </li> </ul>"
        }
      },
      "documentation":"<p>Contains information about an inference profile.</p>"
    },
    "InferenceProfileType":{
      "type":"string",
      "enum":[
        "SYSTEM_DEFINED",
        "APPLICATION"
      ]
    },
    "InferenceType":{
      "type":"string",
      "enum":[
        "ON_DEMAND",
        "PROVISIONED"
      ]
    },
    "InferenceTypeList":{
      "type":"list",
      "member":{"shape":"InferenceType"}
    },
    "InputTags":{
      "type":"string",
      "enum":[
        "HONOR",
        "IGNORE"
      ]
    },
    "InstanceCount":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "InstanceType":{
      "type":"string",
      "max":50,
      "min":1
    },
    "InstructSupported":{
      "type":"boolean",
      "box":true
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>An internal server error occurred. Retry your request.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "InvocationLogSource":{
      "type":"structure",
      "members":{
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The URI of an invocation log in a bucket.</p>"
        }
      },
      "documentation":"<p>A storage location for invocation logs.</p>",
      "union":true
    },
    "InvocationLogsConfig":{
      "type":"structure",
      "required":["invocationLogSource"],
      "members":{
        "usePromptResponse":{
          "shape":"UsePromptResponse",
          "documentation":"<p>Whether to use the model's response for training, or just the prompt. The default value is <code>False</code>.</p>"
        },
        "invocationLogSource":{
          "shape":"InvocationLogSource",
          "documentation":"<p>The source of the invocation logs.</p>"
        },
        "requestMetadataFilters":{
          "shape":"RequestMetadataFilters",
          "documentation":"<p>Rules for filtering invocation logs based on request metadata.</p>"
        }
      },
      "documentation":"<p>Settings for using invocation logs to customize a model.</p>"
    },
    "JobName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"[a-zA-Z0-9](-*[a-zA-Z0-9\\+\\-\\.])*"
    },
    "JobStatusDetails":{
      "type":"string",
      "enum":[
        "InProgress",
        "Completed",
        "Stopping",
        "Stopped",
        "Failed",
        "NotStarted"
      ]
    },
    "KbInferenceConfig":{
      "type":"structure",
      "members":{
        "textInferenceConfig":{
          "shape":"TextInferenceConfig",
          "documentation":"<p>Contains configuration details for text generation using a language model via the <code>RetrieveAndGenerate</code> function.</p>"
        }
      },
      "documentation":"<p>Contains configuration details of the inference for knowledge base retrieval and response generation.</p>"
    },
    "KeyPrefix":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "KmsKeyArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}"
    },
    "KmsKeyId":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:((key/[a-zA-Z0-9-]{36})|(alias/[a-zA-Z0-9-_/]+)))|([a-zA-Z0-9-]{36})|(alias/[a-zA-Z0-9-_/]+)"
    },
    "KnowledgeBaseConfig":{
      "type":"structure",
      "members":{
        "retrieveConfig":{
          "shape":"RetrieveConfig",
          "documentation":"<p>Contains configuration details for retrieving information from a knowledge base.</p>"
        },
        "retrieveAndGenerateConfig":{
          "shape":"RetrieveAndGenerateConfiguration",
          "documentation":"<p>Contains configuration details for retrieving information from a knowledge base and generating responses.</p>"
        }
      },
      "documentation":"<p>The configuration details for retrieving information from a knowledge base and generating responses.</p>",
      "union":true
    },
    "KnowledgeBaseId":{
      "type":"string",
      "max":10,
      "min":0,
      "pattern":"[0-9a-zA-Z]+"
    },
    "KnowledgeBaseRetrievalConfiguration":{
      "type":"structure",
      "required":["vectorSearchConfiguration"],
      "members":{
        "vectorSearchConfiguration":{
          "shape":"KnowledgeBaseVectorSearchConfiguration",
          "documentation":"<p>Contains configuration details for returning the results from the vector search.</p>"
        }
      },
      "documentation":"<p>Contains configuration details for retrieving information from a knowledge base.</p>"
    },
    "KnowledgeBaseRetrieveAndGenerateConfiguration":{
      "type":"structure",
      "required":[
        "knowledgeBaseId",
        "modelArn"
      ],
      "members":{
        "knowledgeBaseId":{
          "shape":"KnowledgeBaseId",
          "documentation":"<p>The unique identifier of the knowledge base.</p>"
        },
        "modelArn":{
          "shape":"BedrockModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the foundation model or <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html\">inference profile</a> used to generate responses.</p>"
        },
        "retrievalConfiguration":{
          "shape":"KnowledgeBaseRetrievalConfiguration",
          "documentation":"<p>Contains configuration details for retrieving text chunks.</p>"
        },
        "generationConfiguration":{
          "shape":"GenerationConfiguration",
          "documentation":"<p>Contains configurations details for response generation based on retrieved text chunks.</p>"
        },
        "orchestrationConfiguration":{
          "shape":"OrchestrationConfiguration",
          "documentation":"<p>Contains configuration details for the model to process the prompt prior to retrieval and response generation.</p>"
        }
      },
      "documentation":"<p>Contains configuration details for retrieving information from a knowledge base and generating responses.</p>"
    },
    "KnowledgeBaseVectorSearchConfiguration":{
      "type":"structure",
      "members":{
        "numberOfResults":{
          "shape":"KnowledgeBaseVectorSearchConfigurationNumberOfResultsInteger",
          "documentation":"<p>The number of text chunks to retrieve; the number of results to return.</p>"
        },
        "overrideSearchType":{
          "shape":"SearchType",
          "documentation":"<p>By default, Amazon Bedrock decides a search strategy for you. If you're using an Amazon OpenSearch Serverless vector store that contains a filterable text field, you can specify whether to query the knowledge base with a <code>HYBRID</code> search using both vector embeddings and raw text, or <code>SEMANTIC</code> search using only vector embeddings. For other vector store configurations, only <code>SEMANTIC</code> search is available.</p>"
        },
        "filter":{
          "shape":"RetrievalFilter",
          "documentation":"<p>Specifies the filters to use on the metadata fields in the knowledge base data sources before returning results.</p>"
        },
        "implicitFilterConfiguration":{
          "shape":"ImplicitFilterConfiguration",
          "documentation":"<p>Configuration for implicit filtering in Knowledge Base vector searches. This allows the system to automatically apply filters based on the query context without requiring explicit filter expressions.</p>"
        },
        "rerankingConfiguration":{
          "shape":"VectorSearchRerankingConfiguration",
          "documentation":"<p>Configuration for reranking search results in Knowledge Base vector searches. Reranking improves search relevance by reordering initial vector search results using more sophisticated relevance models.</p>"
        }
      },
      "documentation":"<p>The configuration details for returning the results from the knowledge base vector search.</p>"
    },
    "KnowledgeBaseVectorSearchConfigurationNumberOfResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "LambdaArn":{
      "type":"string",
      "max":512,
      "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-_]+))?"
    },
    "LambdaGraderConfig":{
      "type":"structure",
      "required":["lambdaArn"],
      "members":{
        "lambdaArn":{
          "shape":"LambdaArn",
          "documentation":"<p> ARN of the AWS Lambda function that will evaluate model responses and return reward scores for RFT training. </p>"
        }
      },
      "documentation":"<p> Configuration for using an AWS Lambda function to grade model responses during reinforcement fine-tuning training. </p>"
    },
    "LegalTerm":{
      "type":"structure",
      "members":{
        "url":{
          "shape":"String",
          "documentation":"<p>URL to the legal term document.</p>"
        }
      },
      "documentation":"<p>The legal term of the agreement.</p>"
    },
    "ListAutomatedReasoningPoliciesRequest":{
      "type":"structure",
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>Optional filter to list only the policy versions with the specified Amazon Resource Name (ARN). If not provided, the DRAFT versions for all policies are listed.</p>",
          "location":"querystring",
          "locationName":"policyArn"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token from a previous request to retrieve the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of policies to return in a single call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListAutomatedReasoningPoliciesResponse":{
      "type":"structure",
      "required":["automatedReasoningPolicySummaries"],
      "members":{
        "automatedReasoningPolicySummaries":{
          "shape":"AutomatedReasoningPolicySummaries",
          "documentation":"<p>A list of Automated Reasoning policy summaries.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token to use in a subsequent request to retrieve the next page of results.</p>"
        }
      }
    },
    "ListAutomatedReasoningPolicyBuildWorkflowsRequest":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy whose build workflows you want to list.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>A pagination token from a previous request to continue listing build workflows from where the previous request left off.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of build workflows to return in a single response. Valid range is 1-100.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListAutomatedReasoningPolicyBuildWorkflowsResponse":{
      "type":"structure",
      "required":["automatedReasoningPolicyBuildWorkflowSummaries"],
      "members":{
        "automatedReasoningPolicyBuildWorkflowSummaries":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowSummaries",
          "documentation":"<p>A list of build workflow summaries, each containing key information about a build workflow including its status and timestamps.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>A pagination token to use in subsequent requests to retrieve additional build workflows.</p>"
        }
      }
    },
    "ListAutomatedReasoningPolicyTestCasesRequest":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy for which to list tests.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token from a previous request to retrieve the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of tests to return in a single call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListAutomatedReasoningPolicyTestCasesResponse":{
      "type":"structure",
      "required":["testCases"],
      "members":{
        "testCases":{
          "shape":"AutomatedReasoningPolicyTestCaseList",
          "documentation":"<p>A list of tests for the specified policy.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token to use in a subsequent request to retrieve the next page of results.</p>"
        }
      }
    },
    "ListAutomatedReasoningPolicyTestResultsRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy whose test results you want to list.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow whose test results you want to list.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>A pagination token from a previous request to continue listing test results from where the previous request left off.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of test results to return in a single response. Valid range is 1-100.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListAutomatedReasoningPolicyTestResultsResponse":{
      "type":"structure",
      "required":["testResults"],
      "members":{
        "testResults":{
          "shape":"AutomatedReasoningPolicyTestList",
          "documentation":"<p>A list of test results, each containing information about how the policy performed on specific test scenarios.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>A pagination token to use in subsequent requests to retrieve additional test results.</p>"
        }
      }
    },
    "ListCustomModelDeploymentsRequest":{
      "type":"structure",
      "members":{
        "createdBefore":{
          "shape":"Timestamp",
          "documentation":"<p>Filters deployments created before the specified date and time.</p>",
          "location":"querystring",
          "locationName":"createdBefore"
        },
        "createdAfter":{
          "shape":"Timestamp",
          "documentation":"<p>Filters deployments created after the specified date and time.</p>",
          "location":"querystring",
          "locationName":"createdAfter"
        },
        "nameContains":{
          "shape":"ModelDeploymentName",
          "documentation":"<p>Filters deployments whose names contain the specified string. </p>",
          "location":"querystring",
          "locationName":"nameContains"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. Use this token to retrieve additional results when the response is truncated.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "sortBy":{
          "shape":"SortModelsBy",
          "documentation":"<p>The field to sort the results by. The only supported value is <code>CreationTime</code>.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order for the results. Valid values are <code>Ascending</code> and <code>Descending</code>. Default is <code>Descending</code>.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        },
        "statusEquals":{
          "shape":"CustomModelDeploymentStatus",
          "documentation":"<p>Filters deployments by status. Valid values are <code>CREATING</code>, <code>ACTIVE</code>, and <code>FAILED</code>.</p>",
          "location":"querystring",
          "locationName":"statusEquals"
        },
        "modelArnEquals":{
          "shape":"CustomModelArn",
          "documentation":"<p>Filters deployments by the Amazon Resource Name (ARN) of the associated custom model.</p>",
          "location":"querystring",
          "locationName":"modelArnEquals"
        }
      }
    },
    "ListCustomModelDeploymentsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. This value is null when there are no more results to return.</p>"
        },
        "modelDeploymentSummaries":{
          "shape":"CustomModelDeploymentSummaryList",
          "documentation":"<p>A list of custom model deployment summaries.</p>"
        }
      }
    },
    "ListCustomModelsRequest":{
      "type":"structure",
      "members":{
        "creationTimeBefore":{
          "shape":"Timestamp",
          "documentation":"<p>Return custom models created before the specified time. </p>",
          "location":"querystring",
          "locationName":"creationTimeBefore"
        },
        "creationTimeAfter":{
          "shape":"Timestamp",
          "documentation":"<p>Return custom models created after the specified time. </p>",
          "location":"querystring",
          "locationName":"creationTimeAfter"
        },
        "nameContains":{
          "shape":"CustomModelName",
          "documentation":"<p>Return custom models only if the job name contains these characters.</p>",
          "location":"querystring",
          "locationName":"nameContains"
        },
        "baseModelArnEquals":{
          "shape":"ModelArn",
          "documentation":"<p>Return custom models only if the base model Amazon Resource Name (ARN) matches this parameter.</p>",
          "location":"querystring",
          "locationName":"baseModelArnEquals"
        },
        "foundationModelArnEquals":{
          "shape":"FoundationModelArn",
          "documentation":"<p>Return custom models only if the foundation model Amazon Resource Name (ARN) matches this parameter.</p>",
          "location":"querystring",
          "locationName":"foundationModelArnEquals"
        },
        "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":"PaginationToken",
          "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"
        },
        "sortBy":{
          "shape":"SortModelsBy",
          "documentation":"<p>The field to sort by in the returned list of models.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order of the results.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        },
        "isOwned":{
          "shape":"Boolean",
          "documentation":"<p>Return custom models depending on if the current account owns them (<code>true</code>) or if they were shared with the current account (<code>false</code>).</p>",
          "location":"querystring",
          "locationName":"isOwned"
        },
        "modelStatus":{
          "shape":"ModelStatus",
          "documentation":"<p>The status of them model to filter results by. Possible values include:</p> <ul> <li> <p> <code>Creating</code> - Include only models that are currently being created and validated.</p> </li> <li> <p> <code>Active</code> - Include only models that have been successfully created and are ready for use.</p> </li> <li> <p> <code>Failed</code> - Include only models where the creation process failed.</p> </li> </ul> <p>If you don't specify a status, the API returns models in all states.</p>",
          "location":"querystring",
          "locationName":"modelStatus"
        }
      }
    },
    "ListCustomModelsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "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>"
        },
        "modelSummaries":{
          "shape":"CustomModelSummaryList",
          "documentation":"<p>Model summaries.</p>"
        }
      }
    },
    "ListEnforcedGuardrailsConfigurationRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Opaque continuation token of previous paginated response.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListEnforcedGuardrailsConfigurationResponse":{
      "type":"structure",
      "required":["guardrailsConfig"],
      "members":{
        "guardrailsConfig":{
          "shape":"AccountEnforcedGuardrailsOutputConfiguration",
          "documentation":"<p>Array of AccountEnforcedGuardrailOutputConfiguration objects.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Opaque continuation token of previous paginated response.</p>"
        }
      }
    },
    "ListEvaluationJobsRequest":{
      "type":"structure",
      "members":{
        "creationTimeAfter":{
          "shape":"Timestamp",
          "documentation":"<p>A filter to only list evaluation jobs created after a specified time.</p>",
          "location":"querystring",
          "locationName":"creationTimeAfter"
        },
        "creationTimeBefore":{
          "shape":"Timestamp",
          "documentation":"<p>A filter to only list evaluation jobs created before a specified time.</p>",
          "location":"querystring",
          "locationName":"creationTimeBefore"
        },
        "statusEquals":{
          "shape":"EvaluationJobStatus",
          "documentation":"<p>A filter to only list evaluation jobs that are of a certain status.</p>",
          "location":"querystring",
          "locationName":"statusEquals"
        },
        "applicationTypeEquals":{
          "shape":"ApplicationType",
          "documentation":"<p>A filter to only list evaluation jobs that are either model evaluations or knowledge base evaluations.</p>",
          "location":"querystring",
          "locationName":"applicationTypeEquals"
        },
        "nameContains":{
          "shape":"EvaluationJobName",
          "documentation":"<p>A filter to only list evaluation jobs that contain a specified string in the job name.</p>",
          "location":"querystring",
          "locationName":"nameContains"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Continuation token from the previous response, for Amazon Bedrock to list the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "sortBy":{
          "shape":"SortJobsBy",
          "documentation":"<p>Specifies a creation time to sort the list of evaluation jobs by when they were created.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>Specifies whether to sort the list of evaluation jobs by either ascending or descending order.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        }
      }
    },
    "ListEvaluationJobsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Continuation token from the previous response, for Amazon Bedrock to list the next set of results.</p>"
        },
        "jobSummaries":{
          "shape":"EvaluationSummaries",
          "documentation":"<p>A list of summaries of the evaluation jobs.</p>"
        }
      }
    },
    "ListFoundationModelAgreementOffersRequest":{
      "type":"structure",
      "required":["modelId"],
      "members":{
        "modelId":{
          "shape":"BedrockModelId",
          "documentation":"<p>Model Id of the foundation model.</p>",
          "location":"uri",
          "locationName":"modelId"
        },
        "offerType":{
          "shape":"OfferType",
          "documentation":"<p>Type of offer associated with the model.</p>",
          "location":"querystring",
          "locationName":"offerType"
        }
      }
    },
    "ListFoundationModelAgreementOffersResponse":{
      "type":"structure",
      "required":[
        "modelId",
        "offers"
      ],
      "members":{
        "modelId":{
          "shape":"BedrockModelId",
          "documentation":"<p>Model Id of the foundation model.</p>"
        },
        "offers":{
          "shape":"Offers",
          "documentation":"<p>List of the offers associated with the specified model.</p>"
        }
      }
    },
    "ListFoundationModelsRequest":{
      "type":"structure",
      "members":{
        "byProvider":{
          "shape":"Provider",
          "documentation":"<p>Return models belonging to the model provider that you specify.</p>",
          "location":"querystring",
          "locationName":"byProvider"
        },
        "byCustomizationType":{
          "shape":"ModelCustomization",
          "documentation":"<p>Return models that support the customization type that you specify. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
          "location":"querystring",
          "locationName":"byCustomizationType"
        },
        "byOutputModality":{
          "shape":"ModelModality",
          "documentation":"<p>Return models that support the output modality that you specify.</p>",
          "location":"querystring",
          "locationName":"byOutputModality"
        },
        "byInferenceType":{
          "shape":"InferenceType",
          "documentation":"<p>Return models that support the inference type that you specify. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html\">Provisioned Throughput</a> in the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html\">Amazon Bedrock User Guide</a>.</p>",
          "location":"querystring",
          "locationName":"byInferenceType"
        }
      }
    },
    "ListFoundationModelsResponse":{
      "type":"structure",
      "members":{
        "modelSummaries":{
          "shape":"FoundationModelSummaryList",
          "documentation":"<p>A list of Amazon Bedrock foundation models.</p>"
        }
      }
    },
    "ListGuardrailsRequest":{
      "type":"structure",
      "members":{
        "guardrailIdentifier":{
          "shape":"GuardrailIdentifier",
          "documentation":"<p>The unique identifier of the guardrail. This can be an ID or the ARN.</p>",
          "location":"querystring",
          "locationName":"guardrailIdentifier"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in the response.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>If there are more results than were returned in the response, the response returns a <code>nextToken</code> that you can send in another <code>ListGuardrails</code> request to see the next batch of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListGuardrailsResponse":{
      "type":"structure",
      "required":["guardrails"],
      "members":{
        "guardrails":{
          "shape":"GuardrailSummaries",
          "documentation":"<p>A list of objects, each of which contains details about a guardrail.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>If there are more results than were returned in the response, the response returns a <code>nextToken</code> that you can send in another <code>ListGuardrails</code> request to see the next batch of results.</p>"
        }
      }
    },
    "ListImportedModelsRequest":{
      "type":"structure",
      "members":{
        "creationTimeBefore":{
          "shape":"Timestamp",
          "documentation":"<p>Return imported models that created before the specified time.</p>",
          "location":"querystring",
          "locationName":"creationTimeBefore"
        },
        "creationTimeAfter":{
          "shape":"Timestamp",
          "documentation":"<p>Return imported models that were created after the specified time.</p>",
          "location":"querystring",
          "locationName":"creationTimeAfter"
        },
        "nameContains":{
          "shape":"ImportedModelName",
          "documentation":"<p>Return imported models only if the model name contains these characters.</p>",
          "location":"querystring",
          "locationName":"nameContains"
        },
        "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":"PaginationToken",
          "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"
        },
        "sortBy":{
          "shape":"SortModelsBy",
          "documentation":"<p>The field to sort by in the returned list of imported models.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>Specifies whetehr to sort the results in ascending or descending order.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        }
      }
    },
    "ListImportedModelsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "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>"
        },
        "modelSummaries":{
          "shape":"ImportedModelSummaryList",
          "documentation":"<p>Model summaries.</p>"
        }
      }
    },
    "ListInferenceProfilesRequest":{
      "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":"PaginationToken",
          "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"
        },
        "typeEquals":{
          "shape":"InferenceProfileType",
          "documentation":"<p>Filters for inference profiles that match the type you specify.</p> <ul> <li> <p> <code>SYSTEM_DEFINED</code> – The inference profile is defined by Amazon Bedrock. You can route inference requests across regions with these inference profiles.</p> </li> <li> <p> <code>APPLICATION</code> – The inference profile was created by a user. This type of inference profile can track metrics and costs when invoking the model in it. The inference profile may route requests to one or multiple regions.</p> </li> </ul>",
          "location":"querystring",
          "locationName":"type"
        }
      }
    },
    "ListInferenceProfilesResponse":{
      "type":"structure",
      "members":{
        "inferenceProfileSummaries":{
          "shape":"InferenceProfileSummaries",
          "documentation":"<p>A list of information about each inference profile that you can use.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "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>"
        }
      }
    },
    "ListMarketplaceModelEndpointsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in a single call. If more results are available, the operation returns a <code>NextToken</code> value.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous <code>ListMarketplaceModelEndpoints</code> call.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "modelSourceEquals":{
          "shape":"ModelSourceIdentifier",
          "documentation":"<p>If specified, only endpoints for the given model source identifier are returned.</p>",
          "location":"querystring",
          "locationName":"modelSourceIdentifier"
        }
      }
    },
    "ListMarketplaceModelEndpointsResponse":{
      "type":"structure",
      "members":{
        "marketplaceModelEndpoints":{
          "shape":"MarketplaceModelEndpointSummaries",
          "documentation":"<p>An array of endpoint summaries.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of results. Use this token to get the next set of results.</p>"
        }
      }
    },
    "ListModelCopyJobsRequest":{
      "type":"structure",
      "members":{
        "creationTimeAfter":{
          "shape":"Timestamp",
          "documentation":"<p>Filters for model copy jobs created after the specified time.</p>",
          "location":"querystring",
          "locationName":"creationTimeAfter"
        },
        "creationTimeBefore":{
          "shape":"Timestamp",
          "documentation":"<p>Filters for model copy jobs created before the specified time. </p>",
          "location":"querystring",
          "locationName":"creationTimeBefore"
        },
        "statusEquals":{
          "shape":"ModelCopyJobStatus",
          "documentation":"<p>Filters for model copy jobs whose status matches the value that you specify.</p>",
          "location":"querystring",
          "locationName":"statusEquals"
        },
        "sourceAccountEquals":{
          "shape":"AccountId",
          "documentation":"<p>Filters for model copy jobs in which the account that the source model belongs to is equal to the value that you specify.</p>",
          "location":"querystring",
          "locationName":"sourceAccountEquals"
        },
        "sourceModelArnEquals":{
          "shape":"ModelArn",
          "documentation":"<p>Filters for model copy jobs in which the Amazon Resource Name (ARN) of the source model to is equal to the value that you specify.</p>",
          "location":"querystring",
          "locationName":"sourceModelArnEquals"
        },
        "targetModelNameContains":{
          "shape":"CustomModelName",
          "documentation":"<p>Filters for model copy jobs in which the name of the copied model contains the string that you specify.</p>",
          "location":"querystring",
          "locationName":"outputModelNameContains"
        },
        "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":"PaginationToken",
          "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"
        },
        "sortBy":{
          "shape":"SortJobsBy",
          "documentation":"<p>The field to sort by in the returned list of model copy jobs.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>Specifies whether to sort the results in ascending or descending order.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        }
      }
    },
    "ListModelCopyJobsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "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>"
        },
        "modelCopyJobSummaries":{
          "shape":"ModelCopyJobSummaries",
          "documentation":"<p>A list of information about each model copy job.</p>"
        }
      }
    },
    "ListModelCustomizationJobsRequest":{
      "type":"structure",
      "members":{
        "creationTimeAfter":{
          "shape":"Timestamp",
          "documentation":"<p>Return customization jobs created after the specified time. </p>",
          "location":"querystring",
          "locationName":"creationTimeAfter"
        },
        "creationTimeBefore":{
          "shape":"Timestamp",
          "documentation":"<p>Return customization jobs created before the specified time. </p>",
          "location":"querystring",
          "locationName":"creationTimeBefore"
        },
        "statusEquals":{
          "shape":"FineTuningJobStatus",
          "documentation":"<p>Return customization jobs with the specified status. </p>",
          "location":"querystring",
          "locationName":"statusEquals"
        },
        "nameContains":{
          "shape":"JobName",
          "documentation":"<p>Return customization jobs only if the job name contains these characters.</p>",
          "location":"querystring",
          "locationName":"nameContains"
        },
        "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":"PaginationToken",
          "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"
        },
        "sortBy":{
          "shape":"SortJobsBy",
          "documentation":"<p>The field to sort by in the returned list of jobs.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order of the results.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        }
      }
    },
    "ListModelCustomizationJobsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "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>"
        },
        "modelCustomizationJobSummaries":{
          "shape":"ModelCustomizationJobSummaries",
          "documentation":"<p>Job summaries.</p>"
        }
      }
    },
    "ListModelImportJobsRequest":{
      "type":"structure",
      "members":{
        "creationTimeAfter":{
          "shape":"Timestamp",
          "documentation":"<p>Return import jobs that were created after the specified time.</p>",
          "location":"querystring",
          "locationName":"creationTimeAfter"
        },
        "creationTimeBefore":{
          "shape":"Timestamp",
          "documentation":"<p>Return import jobs that were created before the specified time.</p>",
          "location":"querystring",
          "locationName":"creationTimeBefore"
        },
        "statusEquals":{
          "shape":"ModelImportJobStatus",
          "documentation":"<p>Return imported jobs with the specified status.</p>",
          "location":"querystring",
          "locationName":"statusEquals"
        },
        "nameContains":{
          "shape":"JobName",
          "documentation":"<p>Return imported jobs only if the job name contains these characters.</p>",
          "location":"querystring",
          "locationName":"nameContains"
        },
        "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":"PaginationToken",
          "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"
        },
        "sortBy":{
          "shape":"SortJobsBy",
          "documentation":"<p>The field to sort by in the returned list of imported jobs.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>Specifies whether to sort the results in ascending or descending order.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        }
      }
    },
    "ListModelImportJobsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "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>"
        },
        "modelImportJobSummaries":{
          "shape":"ModelImportJobSummaries",
          "documentation":"<p>Import job summaries.</p>"
        }
      }
    },
    "ListModelInvocationJobsRequest":{
      "type":"structure",
      "members":{
        "submitTimeAfter":{
          "shape":"Timestamp",
          "documentation":"<p>Specify a time to filter for batch inference jobs that were submitted after the time you specify.</p>",
          "location":"querystring",
          "locationName":"submitTimeAfter"
        },
        "submitTimeBefore":{
          "shape":"Timestamp",
          "documentation":"<p>Specify a time to filter for batch inference jobs that were submitted before the time you specify.</p>",
          "location":"querystring",
          "locationName":"submitTimeBefore"
        },
        "statusEquals":{
          "shape":"ModelInvocationJobStatus",
          "documentation":"<p>Specify a status to filter for batch inference jobs whose statuses match the string you specify.</p> <p>The following statuses are possible:</p> <ul> <li> <p>Submitted – This job has been submitted to a queue for validation.</p> </li> <li> <p>Validating – This job is being validated for the requirements described in <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-inference-data.html\">Format and upload your batch inference data</a>. The criteria include the following:</p> <ul> <li> <p>Your IAM service role has access to the Amazon S3 buckets containing your files.</p> </li> <li> <p>Your files are .jsonl files and each individual record is a JSON object in the correct format. Note that validation doesn't check if the <code>modelInput</code> value matches the request body for the model.</p> </li> <li> <p>Your files fulfill the requirements for file size and number of records. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html\">Quotas for Amazon Bedrock</a>.</p> </li> </ul> </li> <li> <p>Scheduled – This job has been validated and is now in a queue. The job will automatically start when it reaches its turn.</p> </li> <li> <p>Expired – This job timed out because it was scheduled but didn't begin before the set timeout duration. Submit a new job request.</p> </li> <li> <p>InProgress – This job has begun. You can start viewing the results in the output S3 location.</p> </li> <li> <p>Completed – This job has successfully completed. View the output files in the output S3 location.</p> </li> <li> <p>PartiallyCompleted – This job has partially completed. Not all of your records could be processed in time. View the output files in the output S3 location.</p> </li> <li> <p>Failed – This job has failed. Check the failure message for any further details. For further assistance, reach out to the <a href=\"https://console.aws.amazon.com/support/home/\">Amazon Web Services Support Center</a>.</p> </li> <li> <p>Stopped – This job was stopped by a user.</p> </li> <li> <p>Stopping – This job is being stopped by a user.</p> </li> </ul>",
          "location":"querystring",
          "locationName":"statusEquals"
        },
        "nameContains":{
          "shape":"ModelInvocationJobName",
          "documentation":"<p>Specify a string to filter for batch inference jobs whose names contain the string.</p>",
          "location":"querystring",
          "locationName":"nameContains"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return. If there are more results than the number that you specify, a <code>nextToken</code> value is returned. Use the <code>nextToken</code> in a request to return the next batch of results.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>If there were more results than the value you specified in the <code>maxResults</code> field in a previous <code>ListModelInvocationJobs</code> request, the response would have returned a <code>nextToken</code> value. To see the next batch of results, send the <code>nextToken</code> value in another request.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "sortBy":{
          "shape":"SortJobsBy",
          "documentation":"<p>An attribute by which to sort the results.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>Specifies whether to sort the results by ascending or descending order.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        }
      }
    },
    "ListModelInvocationJobsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>If there are more results than can fit in the response, a <code>nextToken</code> is returned. Use the <code>nextToken</code> in a request to return the next batch of results.</p>"
        },
        "invocationJobSummaries":{
          "shape":"ModelInvocationJobSummaries",
          "documentation":"<p>A list of items, each of which contains a summary about a batch inference job.</p>"
        }
      }
    },
    "ListPromptRoutersRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of prompt routers to return in one page of results.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Specify the pagination token from a previous request to retrieve the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "type":{
          "shape":"PromptRouterType",
          "documentation":"<p>The type of the prompt routers, such as whether it's default or custom.</p>",
          "location":"querystring",
          "locationName":"type"
        }
      }
    },
    "ListPromptRoutersResponse":{
      "type":"structure",
      "members":{
        "promptRouterSummaries":{
          "shape":"PromptRouterSummaries",
          "documentation":"<p>A list of prompt router summaries.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Specify the pagination token from a previous request to retrieve the next page of results.</p>"
        }
      }
    },
    "ListProvisionedModelThroughputsRequest":{
      "type":"structure",
      "members":{
        "creationTimeAfter":{
          "shape":"Timestamp",
          "documentation":"<p>A filter that returns Provisioned Throughputs created after the specified time. </p>",
          "location":"querystring",
          "locationName":"creationTimeAfter"
        },
        "creationTimeBefore":{
          "shape":"Timestamp",
          "documentation":"<p>A filter that returns Provisioned Throughputs created before the specified time. </p>",
          "location":"querystring",
          "locationName":"creationTimeBefore"
        },
        "statusEquals":{
          "shape":"ProvisionedModelStatus",
          "documentation":"<p>A filter that returns Provisioned Throughputs if their statuses matches the value that you specify.</p>",
          "location":"querystring",
          "locationName":"statusEquals"
        },
        "modelArnEquals":{
          "shape":"ModelArn",
          "documentation":"<p>A filter that returns Provisioned Throughputs whose model Amazon Resource Name (ARN) is equal to the value that you specify.</p>",
          "location":"querystring",
          "locationName":"modelArnEquals"
        },
        "nameContains":{
          "shape":"ProvisionedModelName",
          "documentation":"<p>A filter that returns Provisioned Throughputs if their name contains the expression that you specify.</p>",
          "location":"querystring",
          "locationName":"nameContains"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>THe maximum number of results to return in the response. If there are more results than the number you specified, the response returns a <code>nextToken</code> value. To see the next batch of results, send the <code>nextToken</code> value in another list request.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>If there are more results than the number you specified in the <code>maxResults</code> field, the response returns a <code>nextToken</code> value. To see the next batch of results, specify the <code>nextToken</code> value in this field.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "sortBy":{
          "shape":"SortByProvisionedModels",
          "documentation":"<p>The field by which to sort the returned list of Provisioned Throughputs.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order of the results.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        }
      }
    },
    "ListProvisionedModelThroughputsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>If there are more results than the number you specified in the <code>maxResults</code> field, this value is returned. To see the next batch of results, include this value in the <code>nextToken</code> field in another list request.</p>"
        },
        "provisionedModelSummaries":{
          "shape":"ProvisionedModelSummaries",
          "documentation":"<p>A list of summaries, one for each Provisioned Throughput in the response.</p>"
        }
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceARN"],
      "members":{
        "resourceARN":{
          "shape":"TaggableResourcesArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource.</p>"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagList",
          "documentation":"<p>An array of the tags associated with this resource.</p>"
        }
      }
    },
    "LogGroupName":{
      "type":"string",
      "max":512,
      "min":1
    },
    "LoggingConfig":{
      "type":"structure",
      "members":{
        "cloudWatchConfig":{
          "shape":"CloudWatchConfig",
          "documentation":"<p>CloudWatch logging configuration.</p>"
        },
        "s3Config":{
          "shape":"S3Config",
          "documentation":"<p>S3 configuration for storing log data.</p>"
        },
        "textDataDeliveryEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Set to include text data in the log delivery.</p>"
        },
        "imageDataDeliveryEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Set to include image data in the log delivery.</p>"
        },
        "embeddingDataDeliveryEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Set to include embeddings data in the log delivery.</p>"
        },
        "videoDataDeliveryEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Set to include video data in the log delivery.</p>"
        },
        "audioDataDeliveryEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Set to include audio data in the log delivery.</p>"
        }
      },
      "documentation":"<p>Configuration fields for invocation logging.</p>"
    },
    "MarketplaceModelEndpoint":{
      "type":"structure",
      "required":[
        "endpointArn",
        "modelSourceIdentifier",
        "createdAt",
        "updatedAt",
        "endpointConfig",
        "endpointStatus"
      ],
      "members":{
        "endpointArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the endpoint.</p>"
        },
        "modelSourceIdentifier":{
          "shape":"ModelSourceIdentifier",
          "documentation":"<p>The ARN of the model from Amazon Bedrock Marketplace that is deployed on this endpoint.</p>"
        },
        "status":{
          "shape":"Status",
          "documentation":"<p>The overall status of the endpoint in Amazon Bedrock Marketplace (e.g., ACTIVE, INACTIVE).</p>"
        },
        "statusMessage":{
          "shape":"String",
          "documentation":"<p>Additional information about the overall status, if available.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the endpoint was registered.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the endpoint was last updated.</p>"
        },
        "endpointConfig":{
          "shape":"EndpointConfig",
          "documentation":"<p>The configuration of the endpoint, including the number and type of instances used.</p>"
        },
        "endpointStatus":{
          "shape":"String",
          "documentation":"<p>The current status of the endpoint (e.g., Creating, InService, Updating, Failed).</p>"
        },
        "endpointStatusMessage":{
          "shape":"String",
          "documentation":"<p>Additional information about the endpoint status, if available.</p>"
        }
      },
      "documentation":"<p>Contains details about an endpoint for a model from Amazon Bedrock Marketplace.</p>"
    },
    "MarketplaceModelEndpointSummaries":{
      "type":"list",
      "member":{"shape":"MarketplaceModelEndpointSummary"},
      "max":1000,
      "min":0
    },
    "MarketplaceModelEndpointSummary":{
      "type":"structure",
      "required":[
        "endpointArn",
        "modelSourceIdentifier",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "endpointArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the endpoint.</p>"
        },
        "modelSourceIdentifier":{
          "shape":"ModelSourceIdentifier",
          "documentation":"<p>The ARN of the model from Amazon Bedrock Marketplace that is deployed on this endpoint.</p>"
        },
        "status":{
          "shape":"Status",
          "documentation":"<p>The overall status of the endpoint in Amazon Bedrock Marketplace.</p>"
        },
        "statusMessage":{
          "shape":"String",
          "documentation":"<p>Additional information about the overall status, if available.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the endpoint was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the endpoint was last updated.</p>"
        }
      },
      "documentation":"<p>Provides a summary of an endpoint for a model from Amazon Bedrock Marketplace.</p>"
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "MaxTokens":{
      "type":"integer",
      "box":true,
      "max":65536,
      "min":0
    },
    "Message":{
      "type":"string",
      "max":2048,
      "min":0,
      "sensitive":true
    },
    "MetadataAttributeSchema":{
      "type":"structure",
      "required":[
        "key",
        "type",
        "description"
      ],
      "members":{
        "key":{
          "shape":"MetadataAttributeSchemaKeyString",
          "documentation":"<p>The unique identifier for the metadata attribute. This key is used to reference the attribute in filter expressions and reranking configurations.</p>"
        },
        "type":{
          "shape":"AttributeType",
          "documentation":"<p>The data type of the metadata attribute. The type determines how the attribute can be used in filter expressions and reranking.</p>"
        },
        "description":{
          "shape":"MetadataAttributeSchemaDescriptionString",
          "documentation":"<p>An optional description of the metadata attribute that provides additional context about its purpose and usage.</p>"
        }
      },
      "documentation":"<p>Defines the schema for a metadata attribute used in Knowledge Base vector searches. Metadata attributes provide additional context for documents and can be used for filtering and reranking search results.</p>",
      "sensitive":true
    },
    "MetadataAttributeSchemaDescriptionString":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"[\\s\\S]+"
    },
    "MetadataAttributeSchemaKeyString":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[\\s\\S]+"
    },
    "MetadataAttributeSchemaList":{
      "type":"list",
      "member":{"shape":"MetadataAttributeSchema"},
      "max":25,
      "min":1
    },
    "MetadataConfigurationForReranking":{
      "type":"structure",
      "required":["selectionMode"],
      "members":{
        "selectionMode":{
          "shape":"RerankingMetadataSelectionMode",
          "documentation":"<p>The mode for selecting which metadata fields to include in the reranking process. Valid values are ALL (use all available metadata fields) or SELECTIVE (use only specified fields).</p>"
        },
        "selectiveModeConfiguration":{
          "shape":"RerankingMetadataSelectiveModeConfiguration",
          "documentation":"<p>Configuration for selective mode, which allows you to explicitly include or exclude specific metadata fields during reranking. This is only used when selectionMode is set to SELECTIVE.</p>"
        }
      },
      "documentation":"<p>Configuration for how metadata should be used during the reranking process in Knowledge Base vector searches. This determines which metadata fields are included or excluded when reordering search results.</p>"
    },
    "MetricFloat":{
      "type":"float",
      "box":true
    },
    "MetricName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"[0-9a-zA-Z-_.]+",
      "sensitive":true
    },
    "ModelArchitecture":{"type":"string"},
    "ModelArn":{
      "type":"string",
      "max":1011,
      "min":20,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/((imported)|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}))"
    },
    "ModelCopyJobArn":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:model-copy-job/[a-z0-9]{12}"
    },
    "ModelCopyJobStatus":{
      "type":"string",
      "enum":[
        "InProgress",
        "Completed",
        "Failed"
      ]
    },
    "ModelCopyJobSummaries":{
      "type":"list",
      "member":{"shape":"ModelCopyJobSummary"}
    },
    "ModelCopyJobSummary":{
      "type":"structure",
      "required":[
        "jobArn",
        "status",
        "creationTime",
        "targetModelArn",
        "sourceAccountId",
        "sourceModelArn"
      ],
      "members":{
        "jobArn":{
          "shape":"ModelCopyJobArn",
          "documentation":"<p>The Amazon Resoource Name (ARN) of the model copy job.</p>"
        },
        "status":{
          "shape":"ModelCopyJobStatus",
          "documentation":"<p>The status of the model copy job.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the model copy job was created.</p>"
        },
        "targetModelArn":{
          "shape":"CustomModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the copied model.</p>"
        },
        "targetModelName":{
          "shape":"CustomModelName",
          "documentation":"<p>The name of the copied model.</p>"
        },
        "sourceAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique identifier of the account that the model being copied originated from.</p>"
        },
        "sourceModelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the original model being copied.</p>"
        },
        "targetModelKmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the copied model.</p>"
        },
        "targetModelTags":{
          "shape":"TagList",
          "documentation":"<p>Tags associated with the copied model.</p>"
        },
        "failureMessage":{
          "shape":"ErrorMessage",
          "documentation":"<p>If a model fails to be copied, a message describing why the job failed is included here.</p>"
        },
        "sourceModelName":{
          "shape":"CustomModelName",
          "documentation":"<p>The name of the original model being copied.</p>"
        }
      },
      "documentation":"<p>Contains details about each model copy job.</p> <p>This data type is used in the following API operations:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListModelCopyJobs.html#API_ListModelCopyJobs_ResponseSyntax\">ListModelCopyJobs response</a> </p> </li> </ul>"
    },
    "ModelCustomization":{
      "type":"string",
      "enum":[
        "FINE_TUNING",
        "CONTINUED_PRE_TRAINING",
        "DISTILLATION"
      ]
    },
    "ModelCustomizationHyperParameters":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"String"}
    },
    "ModelCustomizationJobArn":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:model-customization-job/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}/[a-z0-9]{12}"
    },
    "ModelCustomizationJobIdentifier":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:model-customization-job/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}/[a-z0-9]{12})|([a-zA-Z0-9](-*[a-zA-Z0-9\\+\\-\\.])*)"
    },
    "ModelCustomizationJobStatus":{
      "type":"string",
      "enum":[
        "InProgress",
        "Completed",
        "Failed",
        "Stopping",
        "Stopped"
      ]
    },
    "ModelCustomizationJobSummaries":{
      "type":"list",
      "member":{"shape":"ModelCustomizationJobSummary"}
    },
    "ModelCustomizationJobSummary":{
      "type":"structure",
      "required":[
        "jobArn",
        "baseModelArn",
        "jobName",
        "status",
        "creationTime"
      ],
      "members":{
        "jobArn":{
          "shape":"ModelCustomizationJobArn",
          "documentation":"<p>Amazon Resource Name (ARN) of the customization job.</p>"
        },
        "baseModelArn":{
          "shape":"ModelArn",
          "documentation":"<p>Amazon Resource Name (ARN) of the base model.</p>"
        },
        "jobName":{
          "shape":"JobName",
          "documentation":"<p>Name of the customization job.</p>"
        },
        "status":{
          "shape":"ModelCustomizationJobStatus",
          "documentation":"<p>Status of the customization job. </p>"
        },
        "statusDetails":{
          "shape":"StatusDetails",
          "documentation":"<p>Details about the status of the data processing sub-task of the job.</p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>Time that the customization job was last modified.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>Creation time of the custom model. </p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>Time that the customization job ended.</p>"
        },
        "customModelArn":{
          "shape":"CustomModelArn",
          "documentation":"<p>Amazon Resource Name (ARN) of the custom model.</p>"
        },
        "customModelName":{
          "shape":"CustomModelName",
          "documentation":"<p>Name of the custom model.</p>"
        },
        "customizationType":{
          "shape":"CustomizationType",
          "documentation":"<p>Specifies whether to carry out continued pre-training of a model or whether to fine-tune it. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html\">Custom models</a>.</p>"
        }
      },
      "documentation":"<p>Information about one customization job</p>"
    },
    "ModelCustomizationList":{
      "type":"list",
      "member":{"shape":"ModelCustomization"}
    },
    "ModelDataSource":{
      "type":"structure",
      "members":{
        "s3DataSource":{
          "shape":"S3DataSource",
          "documentation":"<p>The Amazon S3 data source of the model to import.</p>"
        }
      },
      "documentation":"<p>The data source of the model to import.</p>",
      "union":true
    },
    "ModelDeploymentName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"([0-9a-zA-Z][_-]?){1,63}"
    },
    "ModelEnforcement":{
      "type":"structure",
      "required":[
        "includedModels",
        "excludedModels"
      ],
      "members":{
        "includedModels":{
          "shape":"IncludedModelsList",
          "documentation":"<p>Models to enforce the guardrail on.</p>"
        },
        "excludedModels":{
          "shape":"ExcludedModelsList",
          "documentation":"<p>Models to exclude from enforcement of the guardrail.</p>"
        }
      },
      "documentation":"<p>Model-specific information for the enforced guardrail configuration.</p>"
    },
    "ModelId":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-:]{1,63}/[a-z0-9]{12}$)|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(([0-9a-zA-Z][_-]?)+)$)|([0-9]{12}:(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+$)))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(([0-9a-zA-Z][_-]?)+)"
    },
    "ModelIdentifier":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/((imported)|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)"
    },
    "ModelImportJobArn":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:model-import-job/[a-z0-9]{12}"
    },
    "ModelImportJobIdentifier":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:model-import-job/[a-z0-9]{12})|([a-zA-Z0-9](-*[a-zA-Z0-9\\+\\-\\.])*)"
    },
    "ModelImportJobStatus":{
      "type":"string",
      "enum":[
        "InProgress",
        "Completed",
        "Failed"
      ]
    },
    "ModelImportJobSummaries":{
      "type":"list",
      "member":{"shape":"ModelImportJobSummary"}
    },
    "ModelImportJobSummary":{
      "type":"structure",
      "required":[
        "jobArn",
        "jobName",
        "status",
        "creationTime"
      ],
      "members":{
        "jobArn":{
          "shape":"ModelImportJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the import job.</p>"
        },
        "jobName":{
          "shape":"JobName",
          "documentation":"<p>The name of the import job.</p>"
        },
        "status":{
          "shape":"ModelImportJobStatus",
          "documentation":"<p>The status of the imported job. </p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the import job was last modified.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time import job was created.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when import job ended.</p>"
        },
        "importedModelArn":{
          "shape":"ImportedModelArn",
          "documentation":"<p>The Amazon resource Name (ARN) of the imported model.</p>"
        },
        "importedModelName":{
          "shape":"ImportedModelName",
          "documentation":"<p>The name of the imported model.</p>"
        }
      },
      "documentation":"<p>Information about the import job.</p>"
    },
    "ModelInvocationIdempotencyToken":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9]{1,256}(-*[a-zA-Z0-9]){0,256}"
    },
    "ModelInvocationJobArn":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:model-invocation-job/[a-z0-9]{12})"
    },
    "ModelInvocationJobIdentifier":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"((arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:model-invocation-job/)?[a-z0-9]{12})"
    },
    "ModelInvocationJobInputDataConfig":{
      "type":"structure",
      "members":{
        "s3InputDataConfig":{
          "shape":"ModelInvocationJobS3InputDataConfig",
          "documentation":"<p>Contains the configuration of the S3 location of the input data.</p>"
        }
      },
      "documentation":"<p>Details about the location of the input to the batch inference job.</p>",
      "union":true
    },
    "ModelInvocationJobName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"[a-zA-Z0-9]{1,63}(-*[a-zA-Z0-9\\+\\-\\.]){0,63}"
    },
    "ModelInvocationJobOutputDataConfig":{
      "type":"structure",
      "members":{
        "s3OutputDataConfig":{
          "shape":"ModelInvocationJobS3OutputDataConfig",
          "documentation":"<p>Contains the configuration of the S3 location of the output data.</p>"
        }
      },
      "documentation":"<p>Contains the configuration of the S3 location of the output data.</p>",
      "union":true
    },
    "ModelInvocationJobS3InputDataConfig":{
      "type":"structure",
      "required":["s3Uri"],
      "members":{
        "s3InputFormat":{
          "shape":"S3InputFormat",
          "documentation":"<p>The format of the input data.</p>"
        },
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The S3 location of the input data.</p>"
        },
        "s3BucketOwner":{
          "shape":"AccountId",
          "documentation":"<p>The ID of the Amazon Web Services account that owns the S3 bucket containing the input data.</p>"
        }
      },
      "documentation":"<p>Contains the configuration of the S3 location of the input data.</p>"
    },
    "ModelInvocationJobS3OutputDataConfig":{
      "type":"structure",
      "required":["s3Uri"],
      "members":{
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The S3 location of the output data.</p>"
        },
        "s3EncryptionKeyId":{
          "shape":"KmsKeyId",
          "documentation":"<p>The unique identifier of the key that encrypts the S3 location of the output data.</p>"
        },
        "s3BucketOwner":{
          "shape":"AccountId",
          "documentation":"<p>The ID of the Amazon Web Services account that owns the S3 bucket containing the output data.</p>"
        }
      },
      "documentation":"<p>Contains the configuration of the S3 location of the output data.</p>"
    },
    "ModelInvocationJobStatus":{
      "type":"string",
      "enum":[
        "Submitted",
        "InProgress",
        "Completed",
        "Failed",
        "Stopping",
        "Stopped",
        "PartiallyCompleted",
        "Expired",
        "Validating",
        "Scheduled"
      ]
    },
    "ModelInvocationJobSummaries":{
      "type":"list",
      "member":{"shape":"ModelInvocationJobSummary"}
    },
    "ModelInvocationJobSummary":{
      "type":"structure",
      "required":[
        "jobArn",
        "jobName",
        "modelId",
        "roleArn",
        "submitTime",
        "inputDataConfig",
        "outputDataConfig"
      ],
      "members":{
        "jobArn":{
          "shape":"ModelInvocationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the batch inference job.</p>"
        },
        "jobName":{
          "shape":"ModelInvocationJobName",
          "documentation":"<p>The name of the batch inference job.</p>"
        },
        "modelId":{
          "shape":"ModelId",
          "documentation":"<p>The unique identifier of the foundation model used for model inference.</p>"
        },
        "clientRequestToken":{
          "shape":"ModelInvocationIdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not 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>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the service role with permissions to carry out and manage batch inference. You can use the console to create a default service role or follow the steps at <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-iam-sr.html\">Create a service role for batch inference</a>.</p>"
        },
        "status":{
          "shape":"ModelInvocationJobStatus",
          "documentation":"<p>The status of the batch inference job.</p> <p>The following statuses are possible:</p> <ul> <li> <p>Submitted – This job has been submitted to a queue for validation.</p> </li> <li> <p>Validating – This job is being validated for the requirements described in <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-inference-data.html\">Format and upload your batch inference data</a>. The criteria include the following:</p> <ul> <li> <p>Your IAM service role has access to the Amazon S3 buckets containing your files.</p> </li> <li> <p>Your files are .jsonl files and each individual record is a JSON object in the correct format. Note that validation doesn't check if the <code>modelInput</code> value matches the request body for the model.</p> </li> <li> <p>Your files fulfill the requirements for file size and number of records. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html\">Quotas for Amazon Bedrock</a>.</p> </li> </ul> </li> <li> <p>Scheduled – This job has been validated and is now in a queue. The job will automatically start when it reaches its turn.</p> </li> <li> <p>Expired – This job timed out because it was scheduled but didn't begin before the set timeout duration. Submit a new job request.</p> </li> <li> <p>InProgress – This job has begun. You can start viewing the results in the output S3 location.</p> </li> <li> <p>Completed – This job has successfully completed. View the output files in the output S3 location.</p> </li> <li> <p>PartiallyCompleted – This job has partially completed. Not all of your records could be processed in time. View the output files in the output S3 location.</p> </li> <li> <p>Failed – This job has failed. Check the failure message for any further details. For further assistance, reach out to the <a href=\"https://console.aws.amazon.com/support/home/\">Amazon Web Services Support Center</a>.</p> </li> <li> <p>Stopped – This job was stopped by a user.</p> </li> <li> <p>Stopping – This job is being stopped by a user.</p> </li> </ul>"
        },
        "message":{
          "shape":"Message",
          "documentation":"<p>If the batch inference job failed, this field contains a message describing why the job failed.</p>"
        },
        "submitTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the batch inference job was submitted.</p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the batch inference job was last modified.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the batch inference job ended.</p>"
        },
        "inputDataConfig":{
          "shape":"ModelInvocationJobInputDataConfig",
          "documentation":"<p>Details about the location of the input to the batch inference job.</p>"
        },
        "outputDataConfig":{
          "shape":"ModelInvocationJobOutputDataConfig",
          "documentation":"<p>Details about the location of the output of the batch inference job.</p>"
        },
        "vpcConfig":{
          "shape":"VpcConfig",
          "documentation":"<p>The configuration of the Virtual Private Cloud (VPC) for the data in the batch inference job. For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/batch-vpc\">Protect batch inference jobs using a VPC</a>.</p>"
        },
        "timeoutDurationInHours":{
          "shape":"ModelInvocationJobTimeoutDurationInHours",
          "documentation":"<p>The number of hours after which the batch inference job was set to time out.</p>"
        },
        "jobExpirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the batch inference job times or timed out.</p>"
        },
        "modelInvocationType":{
          "shape":"ModelInvocationType",
          "documentation":"<p>The invocation endpoint for ModelInvocationJob</p>"
        },
        "totalRecordCount":{
          "shape":"NonNegativeLong",
          "documentation":"<p>The total number of records in the batch inference job.</p>"
        },
        "processedRecordCount":{
          "shape":"NonNegativeLong",
          "documentation":"<p>The number of records that have been processed in the batch inference job.</p>"
        },
        "successRecordCount":{
          "shape":"NonNegativeLong",
          "documentation":"<p>The number of records that were successfully processed in the batch inference job.</p>"
        },
        "errorRecordCount":{
          "shape":"NonNegativeLong",
          "documentation":"<p>The number of records that failed to process in the batch inference job.</p>"
        }
      },
      "documentation":"<p>A summary of a batch inference job.</p>"
    },
    "ModelInvocationJobTimeoutDurationInHours":{
      "type":"integer",
      "box":true,
      "max":168,
      "min":24
    },
    "ModelInvocationType":{
      "type":"string",
      "enum":[
        "InvokeModel",
        "Converse"
      ]
    },
    "ModelModality":{
      "type":"string",
      "enum":[
        "TEXT",
        "IMAGE",
        "EMBEDDING"
      ]
    },
    "ModelModalityList":{
      "type":"list",
      "member":{"shape":"ModelModality"}
    },
    "ModelName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63})"
    },
    "ModelSourceIdentifier":{
      "type":"string",
      "max":2048,
      "min":0,
      "pattern":".*arn:aws:sagemaker:.*:hub-content/SageMakerPublicHub/Model/.*"
    },
    "ModelStatus":{
      "type":"string",
      "enum":[
        "Active",
        "Creating",
        "Failed"
      ]
    },
    "NonBlankString":{
      "type":"string",
      "pattern":"[\\s\\S]*"
    },
    "NonNegativeLong":{
      "type":"long",
      "documentation":"<p>A non-negative long value.</p>",
      "box":true,
      "min":0
    },
    "Offer":{
      "type":"structure",
      "required":[
        "offerToken",
        "termDetails"
      ],
      "members":{
        "offerId":{
          "shape":"OfferId",
          "documentation":"<p>Offer Id for a model offer.</p>"
        },
        "offerToken":{
          "shape":"OfferToken",
          "documentation":"<p>Offer token.</p>"
        },
        "termDetails":{
          "shape":"TermDetails",
          "documentation":"<p>Details about the terms of the offer.</p>"
        }
      },
      "documentation":"<p>An offer dictates usage terms for the model.</p>"
    },
    "OfferId":{"type":"string"},
    "OfferToken":{"type":"string"},
    "OfferType":{
      "type":"string",
      "enum":[
        "ALL",
        "PUBLIC"
      ]
    },
    "Offers":{
      "type":"list",
      "member":{"shape":"Offer"}
    },
    "OrchestrationConfiguration":{
      "type":"structure",
      "required":["queryTransformationConfiguration"],
      "members":{
        "queryTransformationConfiguration":{
          "shape":"QueryTransformationConfiguration",
          "documentation":"<p>Contains configuration details for transforming the prompt.</p>"
        }
      },
      "documentation":"<p>The configuration details for the model to process the prompt prior to retrieval and response generation.</p>"
    },
    "OutputDataConfig":{
      "type":"structure",
      "required":["s3Uri"],
      "members":{
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The S3 URI where the output data is stored.</p>"
        }
      },
      "documentation":"<p>S3 Location of the output data.</p>"
    },
    "PaginationToken":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\S*"
    },
    "PerformanceConfigLatency":{
      "type":"string",
      "enum":[
        "standard",
        "optimized"
      ]
    },
    "PerformanceConfiguration":{
      "type":"structure",
      "members":{
        "latency":{
          "shape":"PerformanceConfigLatency",
          "documentation":"<p>Specifies whether to use the latency-optimized or standard version of a model or inference profile.</p>"
        }
      },
      "documentation":"<p>Contains performance settings for a model.</p>"
    },
    "PositiveInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "PricingTerm":{
      "type":"structure",
      "required":["rateCard"],
      "members":{
        "rateCard":{
          "shape":"RateCard",
          "documentation":"<p>Describes a usage price for each dimension.</p>"
        }
      },
      "documentation":"<p>Describes the usage-based pricing term.</p>"
    },
    "PromptRouterArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:default-prompt-router/[a-zA-Z0-9-:.]+"
    },
    "PromptRouterDescription":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":"([0-9a-zA-Z:.][ _-]?)+",
      "sensitive":true
    },
    "PromptRouterName":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"([0-9a-zA-Z][ _-]?)+"
    },
    "PromptRouterStatus":{
      "type":"string",
      "enum":["AVAILABLE"]
    },
    "PromptRouterSummaries":{
      "type":"list",
      "member":{"shape":"PromptRouterSummary"}
    },
    "PromptRouterSummary":{
      "type":"structure",
      "required":[
        "promptRouterName",
        "routingCriteria",
        "promptRouterArn",
        "models",
        "fallbackModel",
        "status",
        "type"
      ],
      "members":{
        "promptRouterName":{
          "shape":"PromptRouterName",
          "documentation":"<p>The router's name.</p>"
        },
        "routingCriteria":{
          "shape":"RoutingCriteria",
          "documentation":"<p>The router's routing criteria.</p>"
        },
        "description":{
          "shape":"PromptRouterDescription",
          "documentation":"<p>The router's description.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>When the router was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>When the router was updated.</p>"
        },
        "promptRouterArn":{
          "shape":"PromptRouterArn",
          "documentation":"<p>The router's ARN.</p>"
        },
        "models":{
          "shape":"PromptRouterTargetModels",
          "documentation":"<p>The router's models.</p>"
        },
        "fallbackModel":{
          "shape":"PromptRouterTargetModel",
          "documentation":"<p>The router's fallback model.</p>"
        },
        "status":{
          "shape":"PromptRouterStatus",
          "documentation":"<p>The router's status.</p>"
        },
        "type":{
          "shape":"PromptRouterType",
          "documentation":"<p>The summary's type.</p>"
        }
      },
      "documentation":"<p>Details about a prompt router.</p>"
    },
    "PromptRouterTargetModel":{
      "type":"structure",
      "required":["modelArn"],
      "members":{
        "modelArn":{
          "shape":"PromptRouterTargetModelArn",
          "documentation":"<p>The target model's ARN.</p>"
        }
      },
      "documentation":"<p>The target model for a prompt router.</p>"
    },
    "PromptRouterTargetModelArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":".*(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})|(^arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)"
    },
    "PromptRouterTargetModels":{
      "type":"list",
      "member":{"shape":"PromptRouterTargetModel"}
    },
    "PromptRouterType":{
      "type":"string",
      "enum":[
        "custom",
        "default"
      ]
    },
    "PromptTemplate":{
      "type":"structure",
      "members":{
        "textPromptTemplate":{
          "shape":"TextPromptTemplate",
          "documentation":"<p>The template for the prompt that's sent to the model for response generation. You can include prompt placeholders, which become replaced before the prompt is sent to the model to provide instructions and context to the model. In addition, you can include XML tags to delineate meaningful sections of the prompt template.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html\">Knowledge base prompt template</a> and <a href=\"https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags\">Use XML tags with Anthropic Claude models</a>.</p>"
        }
      },
      "documentation":"<p>The template for the prompt that's sent to the model for response generation.</p>"
    },
    "Provider":{
      "type":"string",
      "pattern":"[A-Za-z0-9- ]{1,63}"
    },
    "ProvisionedModelArn":{
      "type":"string",
      "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:provisioned-model/[a-z0-9]{12}"
    },
    "ProvisionedModelId":{
      "type":"string",
      "pattern":"((([0-9a-zA-Z][_-]?)+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:provisioned-model/[a-z0-9]{12}))"
    },
    "ProvisionedModelName":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"([0-9a-zA-Z][_-]?)+"
    },
    "ProvisionedModelStatus":{
      "type":"string",
      "enum":[
        "Creating",
        "InService",
        "Updating",
        "Failed"
      ]
    },
    "ProvisionedModelSummaries":{
      "type":"list",
      "member":{"shape":"ProvisionedModelSummary"}
    },
    "ProvisionedModelSummary":{
      "type":"structure",
      "required":[
        "provisionedModelName",
        "provisionedModelArn",
        "modelArn",
        "desiredModelArn",
        "foundationModelArn",
        "modelUnits",
        "desiredModelUnits",
        "status",
        "creationTime",
        "lastModifiedTime"
      ],
      "members":{
        "provisionedModelName":{
          "shape":"ProvisionedModelName",
          "documentation":"<p>The name of the Provisioned Throughput.</p>"
        },
        "provisionedModelArn":{
          "shape":"ProvisionedModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Provisioned Throughput.</p>"
        },
        "modelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model associated with the Provisioned Throughput.</p>"
        },
        "desiredModelArn":{
          "shape":"ModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the model requested to be associated to this Provisioned Throughput. This value differs from the <code>modelArn</code> if updating hasn't completed.</p>"
        },
        "foundationModelArn":{
          "shape":"FoundationModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the base model for which the Provisioned Throughput was created, or of the base model that the custom model for which the Provisioned Throughput was created was customized.</p>"
        },
        "modelUnits":{
          "shape":"PositiveInteger",
          "documentation":"<p>The number of model units allocated to the Provisioned Throughput.</p>"
        },
        "desiredModelUnits":{
          "shape":"PositiveInteger",
          "documentation":"<p>The number of model units that was requested to be allocated to the Provisioned Throughput.</p>"
        },
        "status":{
          "shape":"ProvisionedModelStatus",
          "documentation":"<p>The status of the Provisioned Throughput.</p>"
        },
        "commitmentDuration":{
          "shape":"CommitmentDuration",
          "documentation":"<p>The duration for which the Provisioned Throughput was committed.</p>"
        },
        "commitmentExpirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp for when the commitment term of the Provisioned Throughput expires.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the Provisioned Throughput was created. </p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the Provisioned Throughput was last modified. </p>"
        }
      },
      "documentation":"<p>A summary of information about a Provisioned Throughput.</p> <p>This data type is used in the following API operations:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListProvisionedModelThroughputs.html#API_ListProvisionedModelThroughputs_ResponseSyntax\">ListProvisionedThroughputs response</a> </p> </li> </ul>"
    },
    "PutEnforcedGuardrailConfigurationRequest":{
      "type":"structure",
      "required":["guardrailInferenceConfig"],
      "members":{
        "configId":{
          "shape":"AccountEnforcedGuardrailConfigurationId",
          "documentation":"<p>Unique ID for the account enforced configuration.</p>"
        },
        "guardrailInferenceConfig":{
          "shape":"AccountEnforcedGuardrailInferenceInputConfiguration",
          "documentation":"<p>Account-level enforced guardrail input configuration.</p>"
        }
      }
    },
    "PutEnforcedGuardrailConfigurationResponse":{
      "type":"structure",
      "members":{
        "configId":{
          "shape":"AccountEnforcedGuardrailConfigurationId",
          "documentation":"<p>Unique ID for the account enforced configuration.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp.</p>"
        },
        "updatedBy":{
          "shape":"String",
          "documentation":"<p>The ARN of the role used to update the configuration.</p>"
        }
      }
    },
    "PutModelInvocationLoggingConfigurationRequest":{
      "type":"structure",
      "required":["loggingConfig"],
      "members":{
        "loggingConfig":{
          "shape":"LoggingConfig",
          "documentation":"<p>The logging configuration values to set.</p>"
        }
      }
    },
    "PutModelInvocationLoggingConfigurationResponse":{
      "type":"structure",
      "members":{}
    },
    "PutResourcePolicyRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "resourcePolicy"
      ],
      "members":{
        "resourceArn":{
          "shape":"ResourcePolicyResourceArn",
          "documentation":"<p>The ARN of the Bedrock resource to which this resource policy applies.</p>"
        },
        "resourcePolicy":{
          "shape":"ResourcePolicyDocument",
          "documentation":"<p>The JSON string representing the Bedrock resource policy.</p>"
        }
      }
    },
    "PutResourcePolicyResponse":{
      "type":"structure",
      "members":{
        "resourceArn":{
          "shape":"ResourcePolicyResourceArn",
          "documentation":"<p>The ARN of the Bedrock resource to which this resource policy applies.</p>"
        }
      }
    },
    "PutUseCaseForModelAccessRequest":{
      "type":"structure",
      "required":["formData"],
      "members":{
        "formData":{
          "shape":"AcknowledgementFormDataBody",
          "documentation":"<p>Put customer profile Request.</p>"
        }
      }
    },
    "PutUseCaseForModelAccessResponse":{
      "type":"structure",
      "members":{}
    },
    "QueryTransformationConfiguration":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"QueryTransformationType",
          "documentation":"<p>The type of transformation to apply to the prompt.</p>"
        }
      },
      "documentation":"<p>The configuration details for transforming the prompt.</p>"
    },
    "QueryTransformationType":{
      "type":"string",
      "enum":["QUERY_DECOMPOSITION"]
    },
    "RAGConfig":{
      "type":"structure",
      "members":{
        "knowledgeBaseConfig":{
          "shape":"KnowledgeBaseConfig",
          "documentation":"<p>Contains configuration details for knowledge base retrieval and response generation.</p>"
        },
        "precomputedRagSourceConfig":{
          "shape":"EvaluationPrecomputedRagSourceConfig",
          "documentation":"<p>Contains configuration details about the RAG source used to generate inference response data for a Knowledge Base evaluation job.</p>"
        }
      },
      "documentation":"<p>Contains configuration details for retrieval of information and response generation.</p>",
      "union":true
    },
    "RAGStopSequences":{
      "type":"list",
      "member":{"shape":"RAGStopSequencesMemberString"},
      "max":4,
      "min":0
    },
    "RAGStopSequencesMemberString":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "RFTBatchSize":{
      "type":"integer",
      "box":true,
      "max":512,
      "min":16
    },
    "RFTConfig":{
      "type":"structure",
      "members":{
        "graderConfig":{
          "shape":"GraderConfig",
          "documentation":"<p> Configuration for the grader that evaluates model responses and provides reward signals during RFT training. </p>"
        },
        "hyperParameters":{
          "shape":"RFTHyperParameters",
          "documentation":"<p> Hyperparameters that control the reinforcement fine-tuning training process, including learning rate, batch size, and epoch count. </p>"
        }
      },
      "documentation":"<p> Configuration settings for reinforcement fine-tuning (RFT), including grader configuration and training hyperparameters. </p>"
    },
    "RFTEvalInterval":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "RFTHyperParameters":{
      "type":"structure",
      "members":{
        "epochCount":{
          "shape":"EpochCount",
          "documentation":"<p> Number of training epochs to run during reinforcement fine-tuning. Higher values may improve performance but increase training time. </p>"
        },
        "batchSize":{
          "shape":"RFTBatchSize",
          "documentation":"<p> Number of training samples processed in each batch during reinforcement fine-tuning (RFT) training. Larger batches may improve training stability. </p>"
        },
        "learningRate":{
          "shape":"RFTLearningRate",
          "documentation":"<p> Learning rate for the reinforcement fine-tuning. Controls how quickly the model adapts to reward signals. </p>"
        },
        "maxPromptLength":{
          "shape":"RFTMaxPromptLength",
          "documentation":"<p> Maximum length of input prompts during RFT training, measured in tokens. Longer prompts allow more context but increase memory usage and training-time. </p>"
        },
        "trainingSamplePerPrompt":{
          "shape":"RFTTrainingSamplePerPrompt",
          "documentation":"<p> Number of response samples generated per prompt during RFT training. More samples provide better reward signal estimation. </p>"
        },
        "inferenceMaxTokens":{
          "shape":"RFTInferenceMaxTokens",
          "documentation":"<p> Maximum number of tokens the model can generate in response to each prompt during RFT training. </p>"
        },
        "reasoningEffort":{
          "shape":"ReasoningEffort",
          "documentation":"<p> Level of reasoning effort applied during RFT training. Higher values may improve response quality but increase training time. </p>"
        },
        "evalInterval":{
          "shape":"RFTEvalInterval",
          "documentation":"<p> Interval between evaluation runs during RFT training, measured in training steps. More frequent evaluation provides better monitoring. </p>"
        }
      },
      "documentation":"<p> Hyperparameters for controlling the reinforcement fine-tuning training process, including learning settings and evaluation intervals. </p>"
    },
    "RFTInferenceMaxTokens":{
      "type":"integer",
      "box":true
    },
    "RFTLearningRate":{
      "type":"float",
      "box":true,
      "max":0.001,
      "min":0.0000001
    },
    "RFTMaxPromptLength":{
      "type":"integer",
      "box":true
    },
    "RFTTrainingSamplePerPrompt":{
      "type":"integer",
      "box":true,
      "max":16,
      "min":2
    },
    "RagConfigs":{
      "type":"list",
      "member":{"shape":"RAGConfig"},
      "max":1,
      "min":1
    },
    "RateCard":{
      "type":"list",
      "member":{"shape":"DimensionalPriceRate"}
    },
    "RatingScale":{
      "type":"list",
      "member":{"shape":"RatingScaleItem"},
      "max":10,
      "min":1
    },
    "RatingScaleItem":{
      "type":"structure",
      "required":[
        "definition",
        "value"
      ],
      "members":{
        "definition":{
          "shape":"RatingScaleItemDefinition",
          "documentation":"<p>Defines the definition for one rating in a custom metric rating scale.</p>"
        },
        "value":{
          "shape":"RatingScaleItemValue",
          "documentation":"<p>Defines the value for one rating in a custom metric rating scale.</p>"
        }
      },
      "documentation":"<p>Defines the value and corresponding definition for one rating in a custom metric rating scale.</p>"
    },
    "RatingScaleItemDefinition":{
      "type":"string",
      "max":100,
      "min":1
    },
    "RatingScaleItemValue":{
      "type":"structure",
      "members":{
        "stringValue":{
          "shape":"RatingScaleItemValueStringValueString",
          "documentation":"<p>A string representing the value for a rating in a custom metric rating scale.</p>"
        },
        "floatValue":{
          "shape":"Float",
          "documentation":"<p>A floating point number representing the value for a rating in a custom metric rating scale.</p>"
        }
      },
      "documentation":"<p>Defines the value for one rating in a custom metric rating scale.</p>",
      "union":true
    },
    "RatingScaleItemValueStringValueString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "ReasoningEffort":{
      "type":"string",
      "enum":[
        "low",
        "medium",
        "high"
      ]
    },
    "RegionAvailability":{
      "type":"string",
      "enum":[
        "AVAILABLE",
        "NOT_AVAILABLE"
      ]
    },
    "RegisterMarketplaceModelEndpointRequest":{
      "type":"structure",
      "required":[
        "endpointIdentifier",
        "modelSourceIdentifier"
      ],
      "members":{
        "endpointIdentifier":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the Amazon SageMaker endpoint you want to register with Amazon Bedrock Marketplace.</p>",
          "location":"uri",
          "locationName":"endpointIdentifier"
        },
        "modelSourceIdentifier":{
          "shape":"ModelSourceIdentifier",
          "documentation":"<p>The ARN of the model from Amazon Bedrock Marketplace that is deployed on the endpoint.</p>"
        }
      }
    },
    "RegisterMarketplaceModelEndpointResponse":{
      "type":"structure",
      "required":["marketplaceModelEndpoint"],
      "members":{
        "marketplaceModelEndpoint":{
          "shape":"MarketplaceModelEndpoint",
          "documentation":"<p>Details about the registered endpoint.</p>"
        }
      }
    },
    "RequestMetadataBaseFilters":{
      "type":"structure",
      "members":{
        "equals":{
          "shape":"RequestMetadataMap",
          "documentation":"<p>Include results where the key equals the value.</p>"
        },
        "notEquals":{
          "shape":"RequestMetadataMap",
          "documentation":"<p>Include results where the key does not equal the value.</p>"
        }
      },
      "documentation":"<p>A mapping of a metadata key to a value that it should or should not equal.</p>"
    },
    "RequestMetadataFilters":{
      "type":"structure",
      "members":{
        "equals":{
          "shape":"RequestMetadataMap",
          "documentation":"<p>Include results where the key equals the value.</p>"
        },
        "notEquals":{
          "shape":"RequestMetadataMap",
          "documentation":"<p>Include results where the key does not equal the value.</p>"
        },
        "andAll":{
          "shape":"RequestMetadataFiltersList",
          "documentation":"<p>Include results where all of the based filters match.</p>"
        },
        "orAll":{
          "shape":"RequestMetadataFiltersList",
          "documentation":"<p>Include results where any of the base filters match.</p>"
        }
      },
      "documentation":"<p>Rules for filtering invocation logs. A filter can be a mapping of a metadata key to a value that it should or should not equal (a base filter), or a list of base filters that are all applied with <code>AND</code> or <code>OR</code> logical operators</p>",
      "union":true
    },
    "RequestMetadataFiltersList":{
      "type":"list",
      "member":{"shape":"RequestMetadataBaseFilters"},
      "max":16,
      "min":1
    },
    "RequestMetadataMap":{
      "type":"map",
      "key":{"shape":"RequestMetadataMapKeyString"},
      "value":{"shape":"RequestMetadataMapValueString"},
      "max":1,
      "min":1,
      "sensitive":true
    },
    "RequestMetadataMapKeyString":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s._:/=+$@-]{1,256}"
    },
    "RequestMetadataMapValueString":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"[a-zA-Z0-9\\s._:/=+$@-]{0,256}"
    },
    "RerankingMetadataSelectionMode":{
      "type":"string",
      "enum":[
        "SELECTIVE",
        "ALL"
      ]
    },
    "RerankingMetadataSelectiveModeConfiguration":{
      "type":"structure",
      "members":{
        "fieldsToInclude":{
          "shape":"FieldsForReranking",
          "documentation":"<p>A list of metadata field names to explicitly include in the reranking process. Only these fields will be considered when reordering search results. This parameter cannot be used together with fieldsToExclude.</p>"
        },
        "fieldsToExclude":{
          "shape":"FieldsForReranking",
          "documentation":"<p>A list of metadata field names to explicitly exclude from the reranking process. All metadata fields except these will be considered when reordering search results. This parameter cannot be used together with fieldsToInclude.</p>"
        }
      },
      "documentation":"<p>Configuration for selectively including or excluding metadata fields during the reranking process. This allows you to control which metadata attributes are considered when reordering search results.</p>",
      "union":true
    },
    "ResourceInUseException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>Thrown when attempting to delete or modify a resource that is currently being used by other resources or operations. For example, trying to delete an Automated Reasoning policy that is referenced by an active guardrail.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResourcePolicyDocument":{
      "type":"string",
      "max":20480,
      "min":1,
      "pattern":"[    -ÿ]+"
    },
    "ResourcePolicyResourceArn":{
      "type":"string",
      "max":255,
      "min":1
    },
    "RetrievalFilter":{
      "type":"structure",
      "members":{
        "equals":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value matches the value in this object.</p> <p>The following example would return data sources with an animal attribute whose value is 'cat': <code>\"equals\": { \"key\": \"animal\", \"value\": \"cat\" }</code> </p>"
        },
        "notEquals":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value doesn't match the value in this object are returned.</p> <p>The following example would return data sources that don't contain an animal attribute whose value is 'cat': <code>\"notEquals\": { \"key\": \"animal\", \"value\": \"cat\" }</code> </p>"
        },
        "greaterThan":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value is greater than the value in this object.</p> <p>The following example would return data sources with an year attribute whose value is greater than '1989': <code>\"greaterThan\": { \"key\": \"year\", \"value\": 1989 }</code> </p>"
        },
        "greaterThanOrEquals":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value is greater than or equal to the value in this object.</p> <p>The following example would return data sources with an year attribute whose value is greater than or equal to '1989': <code>\"greaterThanOrEquals\": { \"key\": \"year\", \"value\": 1989 }</code> </p>"
        },
        "lessThan":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value is less than the value in this object.</p> <p>The following example would return data sources with an year attribute whose value is less than to '1989': <code>\"lessThan\": { \"key\": \"year\", \"value\": 1989 }</code> </p>"
        },
        "lessThanOrEquals":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value is less than or equal to the value in this object.</p> <p>The following example would return data sources with an year attribute whose value is less than or equal to '1989': <code>\"lessThanOrEquals\": { \"key\": \"year\", \"value\": 1989 }</code> </p>"
        },
        "in":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value is in the list specified in the value in this object.</p> <p>The following example would return data sources with an animal attribute that is either 'cat' or 'dog': <code>\"in\": { \"key\": \"animal\", \"value\": [\"cat\", \"dog\"] }</code> </p>"
        },
        "notIn":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value isn't in the list specified in the value in this object.</p> <p>The following example would return data sources whose animal attribute is neither 'cat' nor 'dog': <code>\"notIn\": { \"key\": \"animal\", \"value\": [\"cat\", \"dog\"] }</code> </p>"
        },
        "startsWith":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value starts with the value in this object. This filter is currently only supported for Amazon OpenSearch Serverless vector stores.</p> <p>The following example would return data sources with an animal attribute starts with 'ca' (for example, 'cat' or 'camel'). <code>\"startsWith\": { \"key\": \"animal\", \"value\": \"ca\" }</code> </p>"
        },
        "listContains":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value is a list that contains the value as one of its members.</p> <p>The following example would return data sources with an animals attribute that is a list containing a cat member (for example, <code>[\"dog\", \"cat\"]</code>): <code>\"listContains\": { \"key\": \"animals\", \"value\": \"cat\" }</code> </p>"
        },
        "stringContains":{
          "shape":"FilterAttribute",
          "documentation":"<p>Knowledge base data sources are returned if they contain a metadata attribute whose name matches the key and whose value is one of the following:</p> <p>A string that contains the value as a substring. The following example would return data sources with an animal attribute that contains the substring at (for example, 'cat'): <code>\"stringContains\": { \"key\": \"animal\", \"value\": \"at\" }</code> </p> <p>A list with a member that contains the value as a substring. The following example would return data sources with an animals attribute that is a list containing a member that contains the substring at (for example, <code>[\"dog\", \"cat\"]</code>): <code>\"stringContains\": { \"key\": \"animals\", \"value\": \"at\" }</code> </p>"
        },
        "andAll":{
          "shape":"RetrievalFilterList",
          "documentation":"<p>Knowledge base data sources are returned if their metadata attributes fulfill all the filter conditions inside this list.</p>"
        },
        "orAll":{
          "shape":"RetrievalFilterList",
          "documentation":"<p>Knowledge base data sources are returned if their metadata attributes fulfill at least one of the filter conditions inside this list.</p>"
        }
      },
      "documentation":"<p>Specifies the filters to use on the metadata attributes/fields in the knowledge base data sources before returning results.</p>",
      "sensitive":true,
      "union":true
    },
    "RetrievalFilterList":{
      "type":"list",
      "member":{"shape":"RetrievalFilter"},
      "min":2
    },
    "RetrieveAndGenerateConfiguration":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"RetrieveAndGenerateType",
          "documentation":"<p>The type of resource that contains your data for retrieving information and generating responses.</p> <p>If you choose to use <code>EXTERNAL_SOURCES</code>, then currently only Claude 3 Sonnet models for knowledge bases are supported.</p>"
        },
        "knowledgeBaseConfiguration":{
          "shape":"KnowledgeBaseRetrieveAndGenerateConfiguration",
          "documentation":"<p>Contains configuration details for the knowledge base retrieval and response generation.</p>"
        },
        "externalSourcesConfiguration":{
          "shape":"ExternalSourcesRetrieveAndGenerateConfiguration",
          "documentation":"<p>The configuration for the external source wrapper object in the <code>retrieveAndGenerate</code> function.</p>"
        }
      },
      "documentation":"<p>Contains configuration details for a knowledge base retrieval and response generation.</p>"
    },
    "RetrieveAndGenerateType":{
      "type":"string",
      "enum":[
        "KNOWLEDGE_BASE",
        "EXTERNAL_SOURCES"
      ]
    },
    "RetrieveConfig":{
      "type":"structure",
      "required":[
        "knowledgeBaseId",
        "knowledgeBaseRetrievalConfiguration"
      ],
      "members":{
        "knowledgeBaseId":{
          "shape":"KnowledgeBaseId",
          "documentation":"<p>The unique identifier of the knowledge base.</p>"
        },
        "knowledgeBaseRetrievalConfiguration":{
          "shape":"KnowledgeBaseRetrievalConfiguration",
          "documentation":"<p>Contains configuration details for knowledge base retrieval.</p>"
        }
      },
      "documentation":"<p>The configuration details for retrieving information from a knowledge base.</p>"
    },
    "RoleArn":{
      "type":"string",
      "max":2048,
      "min":0,
      "pattern":"arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+"
    },
    "RoutingCriteria":{
      "type":"structure",
      "required":["responseQualityDifference"],
      "members":{
        "responseQualityDifference":{
          "shape":"RoutingCriteriaResponseQualityDifferenceDouble",
          "documentation":"<p>The criteria's response quality difference.</p>"
        }
      },
      "documentation":"<p>Routing criteria for a prompt router.</p>"
    },
    "RoutingCriteriaResponseQualityDifferenceDouble":{
      "type":"double",
      "box":true,
      "max":100,
      "min":0
    },
    "S3Config":{
      "type":"structure",
      "required":["bucketName"],
      "members":{
        "bucketName":{
          "shape":"BucketName",
          "documentation":"<p>S3 bucket name.</p>"
        },
        "keyPrefix":{
          "shape":"KeyPrefix",
          "documentation":"<p>S3 prefix. </p>"
        }
      },
      "documentation":"<p>S3 configuration for storing log data.</p>"
    },
    "S3DataSource":{
      "type":"structure",
      "required":["s3Uri"],
      "members":{
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The URI of the Amazon S3 data source.</p>"
        }
      },
      "documentation":"<p>The Amazon S3 data source of the model to import. </p>"
    },
    "S3InputFormat":{
      "type":"string",
      "enum":["JSONL"]
    },
    "S3ObjectDoc":{
      "type":"structure",
      "required":["uri"],
      "members":{
        "uri":{
          "shape":"kBS3Uri",
          "documentation":"<p>The S3 URI location for the wrapper object of the document.</p>"
        }
      },
      "documentation":"<p>The unique wrapper object of the document from the S3 location.</p>"
    },
    "S3Uri":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"s3://[a-z0-9][-.a-z0-9]{1,61}[a-z0-9](?:/[-!_*'().a-z0-9A-Z]+(?:/[-!_*'().a-z0-9A-Z]+)*)?/?"
    },
    "SageMakerEndpoint":{
      "type":"structure",
      "required":[
        "initialInstanceCount",
        "instanceType",
        "executionRole"
      ],
      "members":{
        "initialInstanceCount":{
          "shape":"InstanceCount",
          "documentation":"<p>The number of Amazon EC2 compute instances to deploy for initial endpoint creation.</p>"
        },
        "instanceType":{
          "shape":"InstanceType",
          "documentation":"<p>The Amazon EC2 compute instance type to deploy for hosting the model.</p>"
        },
        "executionRole":{
          "shape":"RoleArn",
          "documentation":"<p>The ARN of the IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on Amazon EC2 compute instances or for batch transform jobs.</p>"
        },
        "kmsEncryptionKey":{
          "shape":"KmsKeyId",
          "documentation":"<p>The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on the storage volume attached to the Amazon EC2 compute instance that hosts the endpoint.</p>"
        },
        "vpc":{
          "shape":"VpcConfig",
          "documentation":"<p>The VPC configuration for the endpoint.</p>"
        }
      },
      "documentation":"<p>Specifies the configuration for a Amazon SageMaker endpoint.</p>"
    },
    "SageMakerFlowDefinitionArn":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"arn:aws(-[^:]+)?:sagemaker:[a-z0-9-]{1,20}:[0-9]{12}:flow-definition/.*"
    },
    "SearchType":{
      "type":"string",
      "enum":[
        "HYBRID",
        "SEMANTIC"
      ]
    },
    "SecurityGroupId":{
      "type":"string",
      "max":32,
      "min":0,
      "pattern":"[-0-9a-zA-Z]+"
    },
    "SecurityGroupIds":{
      "type":"list",
      "member":{"shape":"SecurityGroupId"},
      "max":5,
      "min":1
    },
    "SelectiveContentGuarding":{
      "type":"structure",
      "members":{
        "system":{
          "shape":"SelectiveGuardingMode",
          "documentation":"<p>Selective guarding mode for system prompts.\"</p>"
        },
        "messages":{
          "shape":"SelectiveGuardingMode",
          "documentation":"<p>Selective guarding mode for user messages.</p>"
        }
      },
      "documentation":"<p>Selective content guarding controls for enforced guardrails.</p>"
    },
    "SelectiveGuardingMode":{
      "type":"string",
      "enum":[
        "SELECTIVE",
        "COMPREHENSIVE"
      ]
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The number of requests exceeds the service quota. Resubmit your request later.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ServiceUnavailableException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>Returned if the service cannot complete the request.</p>",
      "error":{"httpStatusCode":503},
      "exception":true,
      "fault":true
    },
    "SortByProvisionedModels":{
      "type":"string",
      "enum":["CreationTime"]
    },
    "SortJobsBy":{
      "type":"string",
      "enum":["CreationTime"]
    },
    "SortModelsBy":{
      "type":"string",
      "enum":["CreationTime"]
    },
    "SortOrder":{
      "type":"string",
      "enum":[
        "Ascending",
        "Descending"
      ]
    },
    "StartAutomatedReasoningPolicyBuildWorkflowRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowType",
        "sourceContent"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy for which to start the build workflow.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowType":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowType",
          "documentation":"<p>The type of build workflow to start (e.g., DOCUMENT_INGESTION for processing new documents, POLICY_REPAIR for fixing existing policies).</p>",
          "location":"uri",
          "locationName":"buildWorkflowType"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the operation completes no more than once. If this token matches a previous request, Amazon Bedrock ignores the request but doesn't return an error.</p>",
          "idempotencyToken":true,
          "location":"header",
          "locationName":"x-amz-client-token"
        },
        "sourceContent":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowSource",
          "documentation":"<p>The source content for the build workflow, such as documents to analyze or repair instructions for existing policies.</p>"
        }
      },
      "payload":"sourceContent"
    },
    "StartAutomatedReasoningPolicyBuildWorkflowResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy.</p>"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the newly started build workflow. Use this ID to track the workflow's progress and retrieve its results.</p>"
        }
      }
    },
    "StartAutomatedReasoningPolicyTestWorkflowRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy to test.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The build workflow identifier. The build workflow must show a <code>COMPLETED</code> status before running tests.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        },
        "testCaseIds":{
          "shape":"AutomatedReasoningPolicyTestCaseIdList",
          "documentation":"<p>The list of test identifiers to run. If not provided, all tests for the policy are run.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "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 doesn't return an error.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StartAutomatedReasoningPolicyTestWorkflowResponse":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy for which the test workflow was started.</p>"
        }
      }
    },
    "Status":{
      "type":"string",
      "enum":[
        "REGISTERED",
        "INCOMPATIBLE_ENDPOINT"
      ]
    },
    "StatusDetails":{
      "type":"structure",
      "members":{
        "validationDetails":{
          "shape":"ValidationDetails",
          "documentation":"<p>The status details for the validation sub-task of the job.</p>"
        },
        "dataProcessingDetails":{
          "shape":"DataProcessingDetails",
          "documentation":"<p>The status details for the data processing sub-task of the job.</p>"
        },
        "trainingDetails":{
          "shape":"TrainingDetails",
          "documentation":"<p>The status details for the training sub-task of the job.</p>"
        }
      },
      "documentation":"<p>For a Distillation job, the status details for sub-tasks of the job. Possible statuses for each sub-task include the following:</p> <ul> <li> <p>NotStarted</p> </li> <li> <p>InProgress</p> </li> <li> <p>Completed</p> </li> <li> <p>Stopping</p> </li> <li> <p>Stopped</p> </li> <li> <p>Failed</p> </li> </ul>"
    },
    "StopEvaluationJobRequest":{
      "type":"structure",
      "required":["jobIdentifier"],
      "members":{
        "jobIdentifier":{
          "shape":"EvaluationJobIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) of the evaluation job you want to stop.</p>",
          "location":"uri",
          "locationName":"jobIdentifier"
        }
      }
    },
    "StopEvaluationJobResponse":{
      "type":"structure",
      "members":{}
    },
    "StopModelCustomizationJobRequest":{
      "type":"structure",
      "required":["jobIdentifier"],
      "members":{
        "jobIdentifier":{
          "shape":"ModelCustomizationJobIdentifier",
          "documentation":"<p>Job identifier of the job to stop.</p>",
          "location":"uri",
          "locationName":"jobIdentifier"
        }
      }
    },
    "StopModelCustomizationJobResponse":{
      "type":"structure",
      "members":{}
    },
    "StopModelInvocationJobRequest":{
      "type":"structure",
      "required":["jobIdentifier"],
      "members":{
        "jobIdentifier":{
          "shape":"ModelInvocationJobIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) of the batch inference job to stop.</p>",
          "location":"uri",
          "locationName":"jobIdentifier"
        }
      }
    },
    "StopModelInvocationJobResponse":{
      "type":"structure",
      "members":{}
    },
    "String":{"type":"string"},
    "SubnetId":{
      "type":"string",
      "max":32,
      "min":0,
      "pattern":"[-0-9a-zA-Z]+"
    },
    "SubnetIds":{
      "type":"list",
      "member":{"shape":"SubnetId"},
      "max":16,
      "min":1
    },
    "SupportTerm":{
      "type":"structure",
      "members":{
        "refundPolicyDescription":{
          "shape":"String",
          "documentation":"<p>Describes the refund policy.</p>"
        }
      },
      "documentation":"<p>Describes a support term.</p>"
    },
    "Tag":{
      "type":"structure",
      "required":[
        "key",
        "value"
      ],
      "members":{
        "key":{
          "shape":"TagKey",
          "documentation":"<p>Key for the tag.</p>"
        },
        "value":{
          "shape":"TagValue",
          "documentation":"<p>Value for the tag.</p>"
        }
      },
      "documentation":"<p>Definition of the key/value pair for a tag.</p>"
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s._:/=+@-]*"
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "max":200,
      "min":0
    },
    "TagList":{
      "type":"list",
      "member":{"shape":"Tag"},
      "max":200,
      "min":0
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceARN",
        "tags"
      ],
      "members":{
        "resourceARN":{
          "shape":"TaggableResourcesArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource to tag.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>Tags to associate with the resource.</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":".*(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:custom-model/(imported)/[a-z0-9]{12}$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:guardrail/[a-z0-9]+$)|(:automated-reasoning-policy/[a-zA-Z0-9]+(:[a-zA-Z0-9]+)?$)|(:(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+$)|(:(provisioned-model|model-invocation-job|model-evaluation-job|evaluation-job|model-import-job|imported-model|async-invoke|provisioned-model-v2|provisioned-model-reservation|prompt-router|custom-model-deployment)/[a-z0-9]{12}$))).*"
    },
    "TeacherModelConfig":{
      "type":"structure",
      "required":["teacherModelIdentifier"],
      "members":{
        "teacherModelIdentifier":{
          "shape":"TeacherModelIdentifier",
          "documentation":"<p>The identifier of the teacher model.</p>"
        },
        "maxResponseLengthForInference":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of tokens requested when the customization job invokes the teacher model.</p>"
        }
      },
      "documentation":"<p>Details about a teacher model used for model customization.</p>"
    },
    "TeacherModelIdentifier":{
      "type":"string",
      "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:((:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(([0-9a-zA-Z][_-]?)+)$)|([0-9]{12}:inference-profile/[a-zA-Z0-9-:.]+$)))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})"
    },
    "Temperature":{
      "type":"float",
      "box":true,
      "max":1,
      "min":0
    },
    "TermDetails":{
      "type":"structure",
      "required":[
        "usageBasedPricingTerm",
        "legalTerm",
        "supportTerm"
      ],
      "members":{
        "usageBasedPricingTerm":{"shape":"PricingTerm"},
        "legalTerm":{
          "shape":"LegalTerm",
          "documentation":"<p>Describes the legal terms.</p>"
        },
        "supportTerm":{
          "shape":"SupportTerm",
          "documentation":"<p>Describes the support terms.</p>"
        },
        "validityTerm":{
          "shape":"ValidityTerm",
          "documentation":"<p>Describes the validity terms.</p>"
        }
      },
      "documentation":"<p>Describes the usage terms of an offer.</p>"
    },
    "TextInferenceConfig":{
      "type":"structure",
      "members":{
        "temperature":{
          "shape":"Temperature",
          "documentation":"<p>Controls the random-ness of text generated by the language model, influencing how much the model sticks to the most predictable next words versus exploring more surprising options. A lower temperature value (e.g. 0.2 or 0.3) makes model outputs more deterministic or predictable, while a higher temperature (e.g. 0.8 or 0.9) makes the outputs more creative or unpredictable.</p>"
        },
        "topP":{
          "shape":"TopP",
          "documentation":"<p>A probability distribution threshold which controls what the model considers for the set of possible next tokens. The model will only consider the top p% of the probability distribution when generating the next token.</p>"
        },
        "maxTokens":{
          "shape":"MaxTokens",
          "documentation":"<p>The maximum number of tokens to generate in the output text. Do not use the minimum of 0 or the maximum of 65536. The limit values described here are arbitrary values, for actual values consult the limits defined by your specific model.</p>"
        },
        "stopSequences":{
          "shape":"RAGStopSequences",
          "documentation":"<p>A list of sequences of characters that, if generated, will cause the model to stop generating further tokens. Do not use a minimum length of 1 or a maximum length of 1000. The limit values described here are arbitrary values, for actual values consult the limits defined by your specific model.</p>"
        }
      },
      "documentation":"<p>The configuration details for text generation using a language model via the <code>RetrieveAndGenerate</code> function.</p>"
    },
    "TextPromptTemplate":{
      "type":"string",
      "max":100000,
      "min":1,
      "sensitive":true
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>The number of requests exceeds the limit. Resubmit your request later.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "Timestamp":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "TooManyTagsException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"},
        "resourceName":{
          "shape":"TaggableResourcesArn",
          "documentation":"<p>The name of the resource with too many tags.</p>"
        }
      },
      "documentation":"<p>The request contains more tags than can be associated with a resource (50 tags per resource). The maximum number of tags includes both existing tags and those included in your current request. </p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "TopP":{
      "type":"float",
      "box":true,
      "max":1,
      "min":0
    },
    "TrainingDataConfig":{
      "type":"structure",
      "members":{
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The S3 URI where the training data is stored.</p>"
        },
        "invocationLogsConfig":{
          "shape":"InvocationLogsConfig",
          "documentation":"<p>Settings for using invocation logs to customize a model.</p>"
        }
      },
      "documentation":"<p>S3 Location of the training data.</p>"
    },
    "TrainingDetails":{
      "type":"structure",
      "members":{
        "status":{
          "shape":"JobStatusDetails",
          "documentation":"<p>The status of the training sub-task of the job.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time of the training sub-task of the job.</p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The latest update to the training sub-task of the job.</p>"
        }
      },
      "documentation":"<p>For a Distillation job, the status details for the training sub-task of the job.</p>"
    },
    "TrainingMetrics":{
      "type":"structure",
      "members":{
        "trainingLoss":{
          "shape":"MetricFloat",
          "documentation":"<p>Loss metric associated with the custom job.</p>"
        }
      },
      "documentation":"<p>Metrics associated with the custom job.</p>"
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceARN",
        "tagKeys"
      ],
      "members":{
        "resourceARN":{
          "shape":"TaggableResourcesArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource to untag.</p>"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>Tag keys of the tags to remove from the resource.</p>"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdateAutomatedReasoningPolicyAnnotationsRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId",
        "annotations",
        "lastUpdatedAnnotationSetHash"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy whose annotations you want to update.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow whose annotations you want to update.</p>",
          "location":"uri",
          "locationName":"buildWorkflowId"
        },
        "annotations":{
          "shape":"AutomatedReasoningPolicyAnnotationList",
          "documentation":"<p>The updated annotations containing modified rules, variables, and types for the policy.</p>"
        },
        "lastUpdatedAnnotationSetHash":{
          "shape":"AutomatedReasoningPolicyHash",
          "documentation":"<p>The hash value of the annotation set that you're updating. This is used for optimistic concurrency control to prevent conflicting updates.</p>"
        }
      }
    },
    "UpdateAutomatedReasoningPolicyAnnotationsResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "buildWorkflowId",
        "annotationSetHash",
        "updatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy.</p>"
        },
        "buildWorkflowId":{
          "shape":"AutomatedReasoningPolicyBuildWorkflowId",
          "documentation":"<p>The unique identifier of the build workflow.</p>"
        },
        "annotationSetHash":{
          "shape":"AutomatedReasoningPolicyHash",
          "documentation":"<p>The new hash value representing the updated state of the annotations.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the annotations were updated.</p>"
        }
      }
    },
    "UpdateAutomatedReasoningPolicyRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "policyDefinition"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy to update. This must be the ARN of a draft policy.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "policyDefinition":{
          "shape":"AutomatedReasoningPolicyDefinition",
          "documentation":"<p>The updated policy definition containing the formal logic rules, variables, and types.</p>"
        },
        "name":{
          "shape":"AutomatedReasoningPolicyName",
          "documentation":"<p>The updated name for the Automated Reasoning policy.</p>"
        },
        "description":{
          "shape":"AutomatedReasoningPolicyDescription",
          "documentation":"<p>The updated description for the Automated Reasoning policy.</p>"
        }
      }
    },
    "UpdateAutomatedReasoningPolicyResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "name",
        "definitionHash",
        "updatedAt"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated policy.</p>"
        },
        "name":{
          "shape":"AutomatedReasoningPolicyName",
          "documentation":"<p>The updated name of the policy.</p>"
        },
        "definitionHash":{
          "shape":"AutomatedReasoningPolicyHash",
          "documentation":"<p>The hash of the updated policy definition.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was last updated.</p>"
        }
      }
    },
    "UpdateAutomatedReasoningPolicyTestCaseRequest":{
      "type":"structure",
      "required":[
        "policyArn",
        "testCaseId",
        "guardContent",
        "lastUpdatedAt",
        "expectedAggregatedFindingsResult"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Automated Reasoning policy that contains the test.</p>",
          "location":"uri",
          "locationName":"policyArn"
        },
        "testCaseId":{
          "shape":"AutomatedReasoningPolicyTestCaseId",
          "documentation":"<p>The unique identifier of the test to update.</p>",
          "location":"uri",
          "locationName":"testCaseId"
        },
        "guardContent":{
          "shape":"AutomatedReasoningPolicyTestGuardContent",
          "documentation":"<p>The updated content to be validated by the Automated Reasoning policy.</p>"
        },
        "queryContent":{
          "shape":"AutomatedReasoningPolicyTestQueryContent",
          "documentation":"<p>The updated input query or prompt that generated the content.</p>"
        },
        "lastUpdatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test was last updated. This is used as a concurrency token to prevent conflicting modifications.</p>"
        },
        "expectedAggregatedFindingsResult":{
          "shape":"AutomatedReasoningCheckResult",
          "documentation":"<p>The updated expected result of the Automated Reasoning check.</p>"
        },
        "confidenceThreshold":{
          "shape":"AutomatedReasoningCheckTranslationConfidence",
          "documentation":"<p>The updated minimum confidence level for logic validation. If null is provided, the threshold will be removed.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "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
        }
      }
    },
    "UpdateAutomatedReasoningPolicyTestCaseResponse":{
      "type":"structure",
      "required":[
        "policyArn",
        "testCaseId"
      ],
      "members":{
        "policyArn":{
          "shape":"AutomatedReasoningPolicyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the policy that contains the updated test.</p>"
        },
        "testCaseId":{
          "shape":"AutomatedReasoningPolicyTestCaseId",
          "documentation":"<p>The unique identifier of the updated test.</p>"
        }
      }
    },
    "UpdateCustomModelDeploymentRequest":{
      "type":"structure",
      "required":[
        "modelArn",
        "customModelDeploymentIdentifier"
      ],
      "members":{
        "modelArn":{
          "shape":"CustomModelArn",
          "documentation":"<p> ARN of the new custom model to deploy. This replaces the currently deployed model. </p>"
        },
        "customModelDeploymentIdentifier":{
          "shape":"CustomModelDeploymentIdentifier",
          "documentation":"<p> Identifier of the custom model deployment to update with the new custom model. </p>",
          "location":"uri",
          "locationName":"customModelDeploymentIdentifier"
        }
      }
    },
    "UpdateCustomModelDeploymentResponse":{
      "type":"structure",
      "required":["customModelDeploymentArn"],
      "members":{
        "customModelDeploymentArn":{
          "shape":"CustomModelDeploymentArn",
          "documentation":"<p> ARN of the custom model deployment being updated. </p>"
        }
      }
    },
    "UpdateGuardrailRequest":{
      "type":"structure",
      "required":[
        "guardrailIdentifier",
        "name",
        "blockedInputMessaging",
        "blockedOutputsMessaging"
      ],
      "members":{
        "guardrailIdentifier":{
          "shape":"GuardrailIdentifier",
          "documentation":"<p>The unique identifier of the guardrail. This can be an ID or the ARN.</p>",
          "location":"uri",
          "locationName":"guardrailIdentifier"
        },
        "name":{
          "shape":"GuardrailName",
          "documentation":"<p>A name for the guardrail.</p>"
        },
        "description":{
          "shape":"GuardrailDescription",
          "documentation":"<p>A description of the guardrail.</p>"
        },
        "topicPolicyConfig":{
          "shape":"GuardrailTopicPolicyConfig",
          "documentation":"<p>The topic policy to configure for the guardrail.</p>"
        },
        "contentPolicyConfig":{
          "shape":"GuardrailContentPolicyConfig",
          "documentation":"<p>The content policy to configure for the guardrail.</p>"
        },
        "wordPolicyConfig":{
          "shape":"GuardrailWordPolicyConfig",
          "documentation":"<p>The word policy to configure for the guardrail.</p>"
        },
        "sensitiveInformationPolicyConfig":{
          "shape":"GuardrailSensitiveInformationPolicyConfig",
          "documentation":"<p>The sensitive information policy to configure for the guardrail.</p>"
        },
        "contextualGroundingPolicyConfig":{
          "shape":"GuardrailContextualGroundingPolicyConfig",
          "documentation":"<p>The contextual grounding policy configuration used to update a guardrail.</p>"
        },
        "automatedReasoningPolicyConfig":{
          "shape":"GuardrailAutomatedReasoningPolicyConfig",
          "documentation":"<p>Updated configuration for Automated Reasoning policies associated with the guardrail.</p>"
        },
        "crossRegionConfig":{
          "shape":"GuardrailCrossRegionConfig",
          "documentation":"<p>The system-defined guardrail profile that you're using with your guardrail. Guardrail profiles define the destination Amazon Web Services Regions where guardrail inference requests can be automatically routed.</p> <p>For more information, see the <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html\">Amazon Bedrock User Guide</a>.</p>"
        },
        "blockedInputMessaging":{
          "shape":"GuardrailBlockedMessaging",
          "documentation":"<p>The message to return when the guardrail blocks a prompt.</p>"
        },
        "blockedOutputsMessaging":{
          "shape":"GuardrailBlockedMessaging",
          "documentation":"<p>The message to return when the guardrail blocks a model response.</p>"
        },
        "kmsKeyId":{
          "shape":"KmsKeyId",
          "documentation":"<p>The ARN of the KMS key with which to encrypt the guardrail.</p>"
        }
      }
    },
    "UpdateGuardrailResponse":{
      "type":"structure",
      "required":[
        "guardrailId",
        "guardrailArn",
        "version",
        "updatedAt"
      ],
      "members":{
        "guardrailId":{
          "shape":"GuardrailId",
          "documentation":"<p>The unique identifier of the guardrail</p>"
        },
        "guardrailArn":{
          "shape":"GuardrailArn",
          "documentation":"<p>The ARN of the guardrail.</p>"
        },
        "version":{
          "shape":"GuardrailDraftVersion",
          "documentation":"<p>The version of the guardrail.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the guardrail was updated.</p>"
        }
      }
    },
    "UpdateMarketplaceModelEndpointRequest":{
      "type":"structure",
      "required":[
        "endpointArn",
        "endpointConfig"
      ],
      "members":{
        "endpointArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the endpoint you want to update.</p>",
          "location":"uri",
          "locationName":"endpointArn"
        },
        "endpointConfig":{
          "shape":"EndpointConfig",
          "documentation":"<p>The new configuration for the endpoint, including the number and type of instances to use.</p>"
        },
        "clientRequestToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This token is listed as not required because Amazon Web Services SDKs automatically generate it for you and set this parameter. If you're not using the Amazon Web Services SDK or the CLI, you must provide this token or the action will fail.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateMarketplaceModelEndpointResponse":{
      "type":"structure",
      "required":["marketplaceModelEndpoint"],
      "members":{
        "marketplaceModelEndpoint":{
          "shape":"MarketplaceModelEndpoint",
          "documentation":"<p>Details about the updated endpoint.</p>"
        }
      }
    },
    "UpdateProvisionedModelThroughputRequest":{
      "type":"structure",
      "required":["provisionedModelId"],
      "members":{
        "provisionedModelId":{
          "shape":"ProvisionedModelId",
          "documentation":"<p>The Amazon Resource Name (ARN) or name of the Provisioned Throughput to update.</p>",
          "location":"uri",
          "locationName":"provisionedModelId"
        },
        "desiredProvisionedModelName":{
          "shape":"ProvisionedModelName",
          "documentation":"<p>The new name for this Provisioned Throughput.</p>"
        },
        "desiredModelId":{
          "shape":"ModelIdentifier",
          "documentation":"<p>The Amazon Resource Name (ARN) of the new model to associate with this Provisioned Throughput. You can't specify this field if this Provisioned Throughput is associated with a base model.</p> <p>If this Provisioned Throughput is associated with a custom model, you can specify one of the following options:</p> <ul> <li> <p>The base model from which the custom model was customized.</p> </li> <li> <p>Another custom model that was customized from the same base model as the custom model.</p> </li> </ul>"
        }
      }
    },
    "UpdateProvisionedModelThroughputResponse":{
      "type":"structure",
      "members":{}
    },
    "UsePromptResponse":{"type":"boolean"},
    "ValidationDataConfig":{
      "type":"structure",
      "required":["validators"],
      "members":{
        "validators":{
          "shape":"Validators",
          "documentation":"<p>Information about the validators.</p>"
        }
      },
      "documentation":"<p>Array of up to 10 validators.</p>"
    },
    "ValidationDetails":{
      "type":"structure",
      "members":{
        "status":{
          "shape":"JobStatusDetails",
          "documentation":"<p>The status of the validation sub-task of the job.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time of the validation sub-task of the job.</p>"
        },
        "lastModifiedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The latest update to the validation sub-task of the job.</p>"
        }
      },
      "documentation":"<p>For a Distillation job, the status details for the validation sub-task of the job.</p>"
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"NonBlankString"}
      },
      "documentation":"<p>Input validation failed. Check your request parameters and retry the request.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationMetrics":{
      "type":"list",
      "member":{"shape":"ValidatorMetric"}
    },
    "Validator":{
      "type":"structure",
      "required":["s3Uri"],
      "members":{
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The S3 URI where the validation data is stored.</p>"
        }
      },
      "documentation":"<p>Information about a validator.</p>"
    },
    "ValidatorMetric":{
      "type":"structure",
      "members":{
        "validationLoss":{
          "shape":"MetricFloat",
          "documentation":"<p>The validation loss associated with this validator.</p>"
        }
      },
      "documentation":"<p>The metric for the validator.</p>"
    },
    "Validators":{
      "type":"list",
      "member":{"shape":"Validator"},
      "max":10,
      "min":0
    },
    "ValidityTerm":{
      "type":"structure",
      "members":{
        "agreementDuration":{
          "shape":"String",
          "documentation":"<p>Describes the agreement duration.</p>"
        }
      },
      "documentation":"<p>Describes the validity terms.</p>"
    },
    "VectorSearchBedrockRerankingConfiguration":{
      "type":"structure",
      "required":["modelConfiguration"],
      "members":{
        "modelConfiguration":{
          "shape":"VectorSearchBedrockRerankingModelConfiguration",
          "documentation":"<p>Configuration for the Amazon Bedrock foundation model used for reranking. This includes the model ARN and any additional request fields required by the model.</p>"
        },
        "numberOfRerankedResults":{
          "shape":"VectorSearchBedrockRerankingConfigurationNumberOfRerankedResultsInteger",
          "documentation":"<p>The maximum number of results to rerank. This limits how many of the initial vector search results will be processed by the reranking model. A smaller number improves performance but may exclude potentially relevant results.</p>"
        },
        "metadataConfiguration":{
          "shape":"MetadataConfigurationForReranking",
          "documentation":"<p>Configuration for how document metadata should be used during the reranking process. This determines which metadata fields are included when reordering search results.</p>"
        }
      },
      "documentation":"<p>Configuration for using Amazon Bedrock foundation models to rerank Knowledge Base vector search results. This enables more sophisticated relevance ranking using large language models.</p>"
    },
    "VectorSearchBedrockRerankingConfigurationNumberOfRerankedResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "VectorSearchBedrockRerankingModelConfiguration":{
      "type":"structure",
      "required":["modelArn"],
      "members":{
        "modelArn":{
          "shape":"BedrockRerankingModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the foundation model to use for reranking. This model processes the query and search results to determine a more relevant ordering.</p>"
        },
        "additionalModelRequestFields":{
          "shape":"AdditionalModelRequestFields",
          "documentation":"<p>A list of additional fields to include in the model request during reranking. These fields provide extra context or configuration options specific to the selected foundation model.</p>"
        }
      },
      "documentation":"<p>Configuration for the Amazon Bedrock foundation model used for reranking vector search results. This specifies which model to use and any additional parameters required by the model.</p>"
    },
    "VectorSearchRerankingConfiguration":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"VectorSearchRerankingConfigurationType",
          "documentation":"<p>The type of reranking to apply to vector search results. Currently, the only supported value is BEDROCK, which uses Amazon Bedrock foundation models for reranking.</p>"
        },
        "bedrockRerankingConfiguration":{
          "shape":"VectorSearchBedrockRerankingConfiguration",
          "documentation":"<p>Configuration for using Amazon Bedrock foundation models to rerank search results. This is required when the reranking type is set to BEDROCK.</p>"
        }
      },
      "documentation":"<p>Configuration for reranking vector search results to improve relevance. Reranking applies additional relevance models to reorder the initial vector search results based on more sophisticated criteria.</p>"
    },
    "VectorSearchRerankingConfigurationType":{
      "type":"string",
      "enum":["BEDROCK_RERANKING_MODEL"]
    },
    "VpcConfig":{
      "type":"structure",
      "required":[
        "subnetIds",
        "securityGroupIds"
      ],
      "members":{
        "subnetIds":{
          "shape":"SubnetIds",
          "documentation":"<p>An array of IDs for each subnet in the VPC to use.</p>"
        },
        "securityGroupIds":{
          "shape":"SecurityGroupIds",
          "documentation":"<p>An array of IDs for each security group in the VPC to use.</p>"
        }
      },
      "documentation":"<p>The configuration of a virtual private cloud (VPC). For more information, see <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/usingVPC.html\">Protect your data using Amazon Virtual Private Cloud and Amazon Web Services PrivateLink</a>.</p>"
    },
    "kBS3Uri":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"s3://[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]/.{1,1024}"
    }
  },
  "documentation":"<p>Describes the API operations for creating, managing, fine-turning, and evaluating Amazon Bedrock models.</p>"
}
