Package com.pulumi.aws.bedrock
Class AgentcoreHarness
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.bedrock.AgentcoreHarness
-
public class AgentcoreHarness extends com.pulumi.resources.CustomResourceManages an AWS Bedrock AgentCore Harness. A Harness is a managed agent loop that wraps model configuration, tools, skills, memory, and compute environment into a single deployable unit. ## Example Usage ### Basic Usage
### With Tools and Truncationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.iam.RolePolicy; import com.pulumi.aws.iam.RolePolicyArgs; import com.pulumi.aws.bedrock.AgentcoreHarness; import com.pulumi.aws.bedrock.AgentcoreHarnessArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessModelArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessModelBedrockModelConfigArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessSystemPromptArgs; 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) { final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("bedrock-agentcore.amazonaws.com") .build()) .effect("Allow") .actions("sts:AssumeRole") .build()) .build()); var example = new Role("example", RoleArgs.builder() .name("bedrock-agentcore-harness-role") .assumeRolePolicy(assumeRole.json()) .build()); var exampleRolePolicy = new RolePolicy("exampleRolePolicy", RolePolicyArgs.builder() .role(example.name()) .policy(serializeJson( jsonObject( jsonProperty("Version", "2012-10-17"), jsonProperty("Statement", jsonArray(jsonObject( jsonProperty("Effect", "Allow"), jsonProperty("Action", jsonArray( "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" )), jsonProperty("Resource", "*") ))) ))) .build()); var exampleAgentcoreHarness = new AgentcoreHarness("exampleAgentcoreHarness", AgentcoreHarnessArgs.builder() .model(AgentcoreHarnessModelArgs.builder() .bedrockModelConfig(AgentcoreHarnessModelBedrockModelConfigArgs.builder() .modelId("anthropic.claude-sonnet-4-20250514") .build()) .build()) .systemPrompts(AgentcoreHarnessSystemPromptArgs.builder() .text("You are a helpful assistant.") .build()) .harnessName("example_harness") .executionRoleArn(example.arn()) .build()); } }
### With Managed Memorypackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.bedrock.AgentcoreHarness; import com.pulumi.aws.bedrock.AgentcoreHarnessArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessModelArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessModelBedrockModelConfigArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessSystemPromptArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessToolArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessToolConfigArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessToolConfigInlineFunctionArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessTruncationArgs; 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 AgentcoreHarness("example", AgentcoreHarnessArgs.builder() .model(AgentcoreHarnessModelArgs.builder() .bedrockModelConfig(AgentcoreHarnessModelBedrockModelConfigArgs.builder() .modelId("anthropic.claude-sonnet-4-20250514") .temperature(0.7) .topP(0.9) .build()) .build()) .systemPrompts(AgentcoreHarnessSystemPromptArgs.builder() .text("You are a coding assistant.") .build()) .tools(AgentcoreHarnessToolArgs.builder() .config(AgentcoreHarnessToolConfigArgs.builder() .inlineFunction(AgentcoreHarnessToolConfigInlineFunctionArgs.builder() .description("Get the current weather for a location") .inputSchema(serializeJson( jsonObject( jsonProperty("type", "object"), jsonProperty("properties", jsonObject( jsonProperty("location", jsonObject( jsonProperty("type", "string"), jsonProperty("description", "City name") )) )), jsonProperty("required", jsonArray("location")) ))) .build()) .build()) .type("inline_function") .name("get_weather") .build()) .truncations(AgentcoreHarnessTruncationArgs.builder() .config(Arrays.asList(Map.of("slidingWindow", Arrays.asList(Map.of("messagesCount", 50))))) .strategy("sliding_window") .build()) .harnessName("example_with_tools") .executionRoleArn(exampleAwsIamRole.arn()) .allowedTools("*") .maxIterations(10) .maxTokens(4096) .timeoutSeconds(300) .build()); } }
## Import ### Identity Schema #### Required * `harnessId` (String) ID of the harness. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import Bedrock AgentCore Harnesses using `harnessId`. For example: ```sh $ pulumi import aws:bedrock/agentcoreHarness:AgentcoreHarness example example-Ab12Cd34Ef ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.bedrock.AgentcoreHarness; import com.pulumi.aws.bedrock.AgentcoreHarnessArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessModelArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessModelBedrockModelConfigArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessMemoryArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessMemoryManagedMemoryConfigurationArgs; import com.pulumi.aws.bedrock.inputs.AgentcoreHarnessSystemPromptArgs; 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 AgentcoreHarness("example", AgentcoreHarnessArgs.builder() .model(AgentcoreHarnessModelArgs.builder() .bedrockModelConfig(AgentcoreHarnessModelBedrockModelConfigArgs.builder() .modelId("anthropic.claude-sonnet-4-20250514") .build()) .build()) .memory(AgentcoreHarnessMemoryArgs.builder() .managedMemoryConfiguration(AgentcoreHarnessMemoryManagedMemoryConfigurationArgs.builder() .eventExpiryDuration(14) .strategies( "SEMANTIC", "SUMMARIZATION") .build()) .build()) .systemPrompts(AgentcoreHarnessSystemPromptArgs.builder() .text("You are a helpful assistant.") .build()) .harnessName("my_harness") .executionRoleArn(exampleAwsIamRole.arn()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description AgentcoreHarness(java.lang.String name)AgentcoreHarness(java.lang.String name, AgentcoreHarnessArgs args)AgentcoreHarness(java.lang.String name, AgentcoreHarnessArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.List<java.lang.String>>allowedTools()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.util.Optional<AgentcoreHarnessAuthorizerConfiguration>>authorizerConfiguration()com.pulumi.core.Output<java.util.List<AgentcoreHarnessEnvironmentActual>>environmentActuals()com.pulumi.core.Output<java.util.Optional<AgentcoreHarnessEnvironmentArtifact>>environmentArtifact()com.pulumi.core.Output<java.util.Optional<java.util.List<AgentcoreHarnessEnvironment>>>environments()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>environmentVariables()com.pulumi.core.Output<java.lang.String>executionRoleArn()static AgentcoreHarnessget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, AgentcoreHarnessState state, 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.com.pulumi.core.Output<java.lang.String>harnessId()com.pulumi.core.Output<java.lang.String>harnessName()com.pulumi.core.Output<java.lang.Integer>maxIterations()com.pulumi.core.Output<java.lang.Integer>maxTokens()com.pulumi.core.Output<java.util.Optional<AgentcoreHarnessMemory>>memory()com.pulumi.core.Output<java.util.List<AgentcoreHarnessMemoryActual>>memoryActuals()com.pulumi.core.Output<AgentcoreHarnessModel>model()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<java.util.List<AgentcoreHarnessSkill>>>skills()com.pulumi.core.Output<java.util.List<AgentcoreHarnessSystemPrompt>>systemPrompts()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()com.pulumi.core.Output<java.util.Optional<AgentcoreHarnessTimeouts>>timeouts()com.pulumi.core.Output<java.lang.Integer>timeoutSeconds()com.pulumi.core.Output<java.util.Optional<java.util.List<AgentcoreHarnessTool>>>tools()com.pulumi.core.Output<java.util.List<AgentcoreHarnessTruncation>>truncations()
-
-
-
Constructor Detail
-
AgentcoreHarness
public AgentcoreHarness(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
AgentcoreHarness
public AgentcoreHarness(java.lang.String name, AgentcoreHarnessArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
AgentcoreHarness
public AgentcoreHarness(java.lang.String name, AgentcoreHarnessArgs 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
-
allowedTools
public com.pulumi.core.Output<java.util.List<java.lang.String>> allowedTools()
- Returns:
- List of tool names allowed for the harness. Use `["*"]` to allow all tools.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the managed memory resource.
-
authorizerConfiguration
public com.pulumi.core.Output<java.util.Optional<AgentcoreHarnessAuthorizerConfiguration>> authorizerConfiguration()
- Returns:
- Authorization configuration for authenticating requests. See `authorizerConfiguration` Block below.
-
environmentActuals
public com.pulumi.core.Output<java.util.List<AgentcoreHarnessEnvironmentActual>> environmentActuals()
- Returns:
- Actual deployed environment configuration. See `environmentActual` Block below.
-
environmentArtifact
public com.pulumi.core.Output<java.util.Optional<AgentcoreHarnessEnvironmentArtifact>> environmentArtifact()
- Returns:
- Environment artifact configuration. See `environmentArtifact` Block below.
-
environmentVariables
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> environmentVariables()
- Returns:
- Map of environment variables. Set to an empty map (`{}`) to remove all environment variables.
-
environments
public com.pulumi.core.Output<java.util.Optional<java.util.List<AgentcoreHarnessEnvironment>>> environments()
- Returns:
- Compute environment configuration. See `environment` Block below. If not specified, configured values can be found in `environmentActual`. Clearing this value will leave the environment configuration as is, but Terraform will not track changes.
-
executionRoleArn
public com.pulumi.core.Output<java.lang.String> executionRoleArn()
- Returns:
- ARN of the IAM role that the harness assumes to access AWS services.
-
harnessId
public com.pulumi.core.Output<java.lang.String> harnessId()
- Returns:
- Unique identifier of the Harness.
-
harnessName
public com.pulumi.core.Output<java.lang.String> harnessName()
- Returns:
- Name of the harness. Must be 1-40 characters, start with a letter, and contain only alphanumeric characters and underscores.
-
maxIterations
public com.pulumi.core.Output<java.lang.Integer> maxIterations()
- Returns:
- Maximum number of iterations the agent loop can perform.
-
maxTokens
public com.pulumi.core.Output<java.lang.Integer> maxTokens()
- Returns:
- Maximum total number of output tokens the agent can generate across all model calls within a single invocation.
-
memory
public com.pulumi.core.Output<java.util.Optional<AgentcoreHarnessMemory>> memory()
- Returns:
- Memory configuration. See `memory` Block below. If not specified, configured values can be found in `memoryActual`. Clearing this value will reset the memory configuration to default values.
-
memoryActuals
public com.pulumi.core.Output<java.util.List<AgentcoreHarnessMemoryActual>> memoryActuals()
- Returns:
- Actual deployed memory configuration. See `memoryActual` Block below.
-
model
public com.pulumi.core.Output<AgentcoreHarnessModel> model()
- Returns:
- Model configuration for the harness. See `model` 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.
-
skills
public com.pulumi.core.Output<java.util.Optional<java.util.List<AgentcoreHarnessSkill>>> skills()
- Returns:
- Skill configurations. See `skill` Block below.
-
systemPrompts
public com.pulumi.core.Output<java.util.List<AgentcoreHarnessSystemPrompt>> systemPrompts()
- Returns:
- System prompt blocks for the harness. See `systemPrompt` 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.
-
timeoutSeconds
public com.pulumi.core.Output<java.lang.Integer> timeoutSeconds()
- Returns:
- Timeout in seconds for the harness execution.
-
timeouts
public com.pulumi.core.Output<java.util.Optional<AgentcoreHarnessTimeouts>> timeouts()
-
tools
public com.pulumi.core.Output<java.util.Optional<java.util.List<AgentcoreHarnessTool>>> tools()
- Returns:
- Tool configurations. See `tool` Block below.
-
truncations
public com.pulumi.core.Output<java.util.List<AgentcoreHarnessTruncation>> truncations()
- Returns:
- Truncation configuration for conversation history. See `truncation` Block below.
-
get
public static AgentcoreHarness get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable AgentcoreHarnessState 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.
-
-