Class AgentcoreOnlineEvaluationConfig


  • public class AgentcoreOnlineEvaluationConfig
    extends com.pulumi.resources.CustomResource
    Manages an AWS Bedrock AgentCore Online Evaluation Configuration. Online evaluation configurations continuously monitor agent performance by sampling live traffic from CloudWatch logs and applying evaluators to assess agent quality in production. > **Note:** CloudWatch Transaction Search must be [enabled](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Enable-TransactionSearch.html) before using this resource. ## Example Usage ### Basic Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.iam.Role;
     import com.pulumi.aws.iam.RoleArgs;
     import com.pulumi.aws.cloudwatch.LogGroup;
     import com.pulumi.aws.cloudwatch.LogGroupArgs;
     import com.pulumi.aws.bedrock.AgentcoreOnlineEvaluationConfig;
     import com.pulumi.aws.bedrock.AgentcoreOnlineEvaluationConfigArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigDataSourceConfigArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigDataSourceConfigCloudwatchLogsArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigRuleArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigRuleSamplingConfigArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigEvaluatorArgs;
     import static com.pulumi.codegen.internal.Serialization.*;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new Role("example", RoleArgs.builder()
                 .name("agentcore-eval-role")
                 .assumeRolePolicy(serializeJson(
                     jsonObject(
                         jsonProperty("Version", "2012-10-17"),
                         jsonProperty("Statement", jsonArray(jsonObject(
                             jsonProperty("Effect", "Allow"),
                             jsonProperty("Action", "sts:AssumeRole"),
                             jsonProperty("Principal", jsonObject(
                                 jsonProperty("Service", "bedrock-agentcore.amazonaws.com")
                             ))
                         )))
                     )))
                 .build());
     
             var exampleLogGroup = new LogGroup("exampleLogGroup", LogGroupArgs.builder()
                 .name("/aws/agentcore/my-agent-traces")
                 .build());
     
             var exampleAgentcoreOnlineEvaluationConfig = new AgentcoreOnlineEvaluationConfig("exampleAgentcoreOnlineEvaluationConfig", AgentcoreOnlineEvaluationConfigArgs.builder()
                 .dataSourceConfig(AgentcoreOnlineEvaluationConfigDataSourceConfigArgs.builder()
                     .cloudwatchLogs(AgentcoreOnlineEvaluationConfigDataSourceConfigCloudwatchLogsArgs.builder()
                         .logGroupNames(exampleLogGroup.name())
                         .serviceNames("my_agent_service")
                         .build())
                     .build())
                 .rule(AgentcoreOnlineEvaluationConfigRuleArgs.builder()
                     .samplingConfig(AgentcoreOnlineEvaluationConfigRuleSamplingConfigArgs.builder()
                         .samplingPercentage(10.0)
                         .build())
                     .build())
                 .evaluators(            
                     AgentcoreOnlineEvaluationConfigEvaluatorArgs.builder()
                         .evaluatorId("Builtin.Helpfulness")
                         .build(),
                     AgentcoreOnlineEvaluationConfigEvaluatorArgs.builder()
                         .evaluatorId("Builtin.GoalSuccessRate")
                         .build())
                 .onlineEvaluationConfigName("my_evaluation_config")
                 .description("Continuous evaluation of agent performance")
                 .enableOnCreate(true)
                 .evaluationExecutionRoleArn(example.arn())
                 .build());
     
         }
     }
     
     
    ### With Filters and Session Config
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreOnlineEvaluationConfig;
     import com.pulumi.aws.bedrock.AgentcoreOnlineEvaluationConfigArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigDataSourceConfigArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigDataSourceConfigCloudwatchLogsArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigRuleArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigRuleSamplingConfigArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigRuleSessionConfigArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigRuleFilterArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigRuleFilterValueArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreOnlineEvaluationConfigEvaluatorArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var filtered = new AgentcoreOnlineEvaluationConfig("filtered", AgentcoreOnlineEvaluationConfigArgs.builder()
                 .dataSourceConfig(AgentcoreOnlineEvaluationConfigDataSourceConfigArgs.builder()
                     .cloudwatchLogs(AgentcoreOnlineEvaluationConfigDataSourceConfigCloudwatchLogsArgs.builder()
                         .logGroupNames(example.name())
                         .serviceNames("my_agent_service")
                         .build())
                     .build())
                 .rule(AgentcoreOnlineEvaluationConfigRuleArgs.builder()
                     .samplingConfig(AgentcoreOnlineEvaluationConfigRuleSamplingConfigArgs.builder()
                         .samplingPercentage(50.0)
                         .build())
                     .sessionConfig(AgentcoreOnlineEvaluationConfigRuleSessionConfigArgs.builder()
                         .sessionTimeoutMinutes(30)
                         .build())
                     .filters(AgentcoreOnlineEvaluationConfigRuleFilterArgs.builder()
                         .value(AgentcoreOnlineEvaluationConfigRuleFilterValueArgs.builder()
                             .stringValue("production")
                             .build())
                         .key("environment")
                         .operator("Equals")
                         .build())
                     .build())
                 .evaluators(AgentcoreOnlineEvaluationConfigEvaluatorArgs.builder()
                     .evaluatorId("Builtin.Helpfulness")
                     .build())
                 .onlineEvaluationConfigName("filtered_evaluation")
                 .enableOnCreate(true)
                 .evaluationExecutionRoleArn(exampleAwsIamRole.arn())
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required - `onlineEvaluationConfigId` (String) ID of the online evaluation config. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import Bedrock AgentCore Online Evaluation Configs using `onlineEvaluationConfigId`. For example: ```sh $ pulumi import aws:bedrock/agentcoreOnlineEvaluationConfig:AgentcoreOnlineEvaluationConfig example my_evaluation_config-aBcDeFgHiJ ```
    • Constructor Detail

      • AgentcoreOnlineEvaluationConfig

        public AgentcoreOnlineEvaluationConfig​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • AgentcoreOnlineEvaluationConfig

        public AgentcoreOnlineEvaluationConfig​(java.lang.String name,
                                               AgentcoreOnlineEvaluationConfigArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • AgentcoreOnlineEvaluationConfig

        public AgentcoreOnlineEvaluationConfig​(java.lang.String name,
                                               AgentcoreOnlineEvaluationConfigArgs args,
                                               @Nullable
                                               com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • description

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
        Returns:
        Description of the online evaluation configuration.
      • enableOnCreate

        public com.pulumi.core.Output<java.lang.Boolean> enableOnCreate()
        Returns:
        Whether to enable the online evaluation configuration immediately upon creation.
      • evaluationExecutionRoleArn

        public com.pulumi.core.Output<java.lang.String> evaluationExecutionRoleArn()
        Returns:
        ARN of the IAM role that grants permissions to read from CloudWatch logs, write evaluation results, and invoke Amazon Bedrock models for evaluation.
      • evaluators

        public com.pulumi.core.Output<java.util.List<AgentcoreOnlineEvaluationConfigEvaluator>> evaluators()
        Returns:
        List of evaluators to apply during online evaluation. Minimum 1, maximum 10. See `evaluator` Block below.
      • executionStatus

        public com.pulumi.core.Output<java.lang.String> executionStatus()
        Returns:
        Execution status to enable or disable the online evaluation. Valid values: `ENABLED`, `DISABLED`. Computed on create based on `enableOnCreate`.
      • onlineEvaluationConfigArn

        public com.pulumi.core.Output<java.lang.String> onlineEvaluationConfigArn()
        Returns:
        ARN of the online evaluation configuration.
      • onlineEvaluationConfigId

        public com.pulumi.core.Output<java.lang.String> onlineEvaluationConfigId()
        Returns:
        Unique identifier of the online evaluation configuration.
      • onlineEvaluationConfigName

        public com.pulumi.core.Output<java.lang.String> onlineEvaluationConfigName()
        Returns:
        Name of the online evaluation configuration. Must start with a letter and contain only alphanumeric characters and underscores, up to 48 characters.
      • outputConfigs

        public com.pulumi.core.Output<java.util.List<AgentcoreOnlineEvaluationConfigOutputConfig>> outputConfigs()
        Returns:
        Configuration specifying where evaluation results are written. See `outputConfig` Block below.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • rule

        public com.pulumi.core.Output<AgentcoreOnlineEvaluationConfigRule> rule()
        Returns:
        Evaluation rule defining sampling configuration, filters, and session detection settings. See `rule` Block below. The following arguments are optional:
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • get

        public static AgentcoreOnlineEvaluationConfig get​(java.lang.String name,
                                                          com.pulumi.core.Output<java.lang.String> id,
                                                          @Nullable
                                                          AgentcoreOnlineEvaluationConfigState state,
                                                          @Nullable
                                                          com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.