Class AgentcoreGatewayTarget


  • public class AgentcoreGatewayTarget
    extends com.pulumi.resources.CustomResource
    Manages an AWS Bedrock AgentCore Gateway Target. Gateway targets define the endpoints and configurations that a gateway can invoke, such as Lambda functions, APIs, or AgentCore Runtime agents, allowing agents to interact with external services through the Model Context Protocol (MCP) or by routing HTTP traffic directly to a runtime. ## Example Usage ### Lambda Target with Gateway IAM Role
     
     package 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.lambda.Function;
     import com.pulumi.aws.lambda.FunctionArgs;
     import com.pulumi.aws.iam.RolePolicy;
     import com.pulumi.aws.iam.RolePolicyArgs;
     import com.pulumi.aws.bedrock.AgentcoreGateway;
     import com.pulumi.aws.bedrock.AgentcoreGatewayArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayAuthorizerConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayAuthorizerConfigurationCustomJwtAuthorizerArgs;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTarget;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTargetArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetCredentialProviderConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetCredentialProviderConfigurationGatewayIamRoleArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyPropertyArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadOutputSchemaArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadOutputSchemaPropertyArgs;
     import com.pulumi.asset.FileArchive;
     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 gatewayAssume = 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 gatewayRole = new Role("gatewayRole", RoleArgs.builder()
                 .name("bedrock-gateway-role")
                 .assumeRolePolicy(gatewayAssume.json())
                 .build());
     
             final var lambdaAssume = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("lambda.amazonaws.com")
                         .build())
                     .effect("Allow")
                     .actions("sts:AssumeRole")
                     .build())
                 .build());
     
             var lambdaRole = new Role("lambdaRole", RoleArgs.builder()
                 .name("example-lambda-role")
                 .assumeRolePolicy(lambdaAssume.json())
                 .build());
     
             var example = new Function("example", FunctionArgs.builder()
                 .code(new FileArchive("example.zip"))
                 .name("example-function")
                 .role(lambdaRole.arn())
                 .handler("index.handler")
                 .runtime("nodejs24.x")
                 .build());
     
             final var gatewayLambdaInvoke = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .effect("Allow")
                     .actions("lambda:InvokeFunction")
                     .resources(example.arn())
                     .build())
                 .build());
     
             var gatewayLambdaInvokeRolePolicy = new RolePolicy("gatewayLambdaInvokeRolePolicy", RolePolicyArgs.builder()
                 .name("example-gateway-lambda-invoke")
                 .role(gatewayRole.id())
                 .policy(gatewayLambdaInvoke.applyValue(_gatewayLambdaInvoke -> _gatewayLambdaInvoke.json()))
                 .build());
     
             var exampleAgentcoreGateway = new AgentcoreGateway("exampleAgentcoreGateway", AgentcoreGatewayArgs.builder()
                 .authorizerConfiguration(AgentcoreGatewayAuthorizerConfigurationArgs.builder()
                     .customJwtAuthorizer(AgentcoreGatewayAuthorizerConfigurationCustomJwtAuthorizerArgs.builder()
                         .discoveryUrl("https://accounts.google.com/.well-known/openid-configuration")
                         .build())
                     .build())
                 .name("example-gateway")
                 .roleArn(gatewayRole.arn())
                 .authorizerType("CUSTOM_JWT")
                 .build());
     
             var exampleAgentcoreGatewayTarget = new AgentcoreGatewayTarget("exampleAgentcoreGatewayTarget", AgentcoreGatewayTargetArgs.builder()
                 .credentialProviderConfiguration(AgentcoreGatewayTargetCredentialProviderConfigurationArgs.builder()
                     .gatewayIamRole(AgentcoreGatewayTargetCredentialProviderConfigurationGatewayIamRoleArgs.builder()
                         .build())
                     .build())
                 .targetConfiguration(AgentcoreGatewayTargetTargetConfigurationArgs.builder()
                     .mcp(AgentcoreGatewayTargetTargetConfigurationMcpArgs.builder()
                         .lambda(AgentcoreGatewayTargetTargetConfigurationMcpLambdaArgs.builder()
                             .toolSchema(AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaArgs.builder()
                                 .inlinePayloads(AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadArgs.builder()
                                     .inputSchema(AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaArgs.builder()
                                         .properties(                                    
                                             AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyArgs.builder()
                                                 .name("message")
                                                 .type("string")
                                                 .description("Message to process")
                                                 .required(true)
                                                 .build(),
                                             AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyArgs.builder()
                                                 .properties(                                            
                                                     AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyPropertyArgs.builder()
                                                         .name("priority")
                                                         .type("string")
                                                         .build(),
                                                     AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyPropertyArgs.builder()
                                                         .name("tags")
                                                         .type("array")
                                                         .itemsJson(serializeJson(
                                                             jsonObject(
                                                                 jsonProperty("type", "string")
                                                             )))
                                                         .build())
                                                 .name("options")
                                                 .type("object")
                                                 .build())
                                         .type("object")
                                         .description("Request processing schema")
                                         .build())
                                     .outputSchema(AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadOutputSchemaArgs.builder()
                                         .properties(                                    
                                             AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadOutputSchemaPropertyArgs.builder()
                                                 .name("status")
                                                 .type("string")
                                                 .required(true)
                                                 .build(),
                                             AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadOutputSchemaPropertyArgs.builder()
                                                 .name("result")
                                                 .type("string")
                                                 .build())
                                         .type("object")
                                         .build())
                                     .name("process_request")
                                     .description("Process incoming requests")
                                     .build())
                                 .build())
                             .lambdaArn(example.arn())
                             .build())
                         .build())
                     .build())
                 .name("example-target")
                 .gatewayIdentifier(exampleAgentcoreGateway.gatewayId())
                 .description("Lambda function target for processing requests")
                 .build());
     
         }
     }
     
     
    ### Target with IAM SigV4 Authentication (MCP Server) Use this for `mcpServer` targets pointing at AWS-hosted SigV4-protected endpoints (e.g. another Bedrock AgentCore Runtime). The gateway signs upstream requests using its own IAM role.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTarget;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTargetArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetCredentialProviderConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetCredentialProviderConfigurationGatewayIamRoleArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs;
     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 sigv4Example = new AgentcoreGatewayTarget("sigv4Example", AgentcoreGatewayTargetArgs.builder()
                 .credentialProviderConfiguration(AgentcoreGatewayTargetCredentialProviderConfigurationArgs.builder()
                     .gatewayIamRole(AgentcoreGatewayTargetCredentialProviderConfigurationGatewayIamRoleArgs.builder()
                         .service("bedrock-agentcore")
                         .build())
                     .build())
                 .targetConfiguration(AgentcoreGatewayTargetTargetConfigurationArgs.builder()
                     .mcp(AgentcoreGatewayTargetTargetConfigurationMcpArgs.builder()
                         .mcpServer(AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs.builder()
                             .endpoint("https://example-runtime.bedrock-agentcore.us-east-1.amazonaws.com/runtimes/example/invocations?qualifier=DEFAULT")
                             .build())
                         .build())
                     .build())
                 .name("sigv4-target")
                 .gatewayIdentifier(example.gatewayId())
                 .build());
     
         }
     }
     
     
    ### Complex Schema with JSON Serialization
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTarget;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTargetArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetCredentialProviderConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetCredentialProviderConfigurationGatewayIamRoleArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyPropertyArgs;
     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 complexSchema = new AgentcoreGatewayTarget("complexSchema", AgentcoreGatewayTargetArgs.builder()
                 .credentialProviderConfiguration(AgentcoreGatewayTargetCredentialProviderConfigurationArgs.builder()
                     .gatewayIamRole(AgentcoreGatewayTargetCredentialProviderConfigurationGatewayIamRoleArgs.builder()
                         .build())
                     .build())
                 .targetConfiguration(AgentcoreGatewayTargetTargetConfigurationArgs.builder()
                     .mcp(AgentcoreGatewayTargetTargetConfigurationMcpArgs.builder()
                         .lambda(AgentcoreGatewayTargetTargetConfigurationMcpLambdaArgs.builder()
                             .toolSchema(AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaArgs.builder()
                                 .inlinePayloads(AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadArgs.builder()
                                     .inputSchema(AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaArgs.builder()
                                         .properties(AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyArgs.builder()
                                             .properties(                                        
                                                 AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyPropertyArgs.builder()
                                                     .name("nested_tags")
                                                     .type("array")
                                                     .itemsJson(serializeJson(
                                                         jsonObject(
                                                             jsonProperty("type", "string")
                                                         )))
                                                     .build(),
                                                 AgentcoreGatewayTargetTargetConfigurationMcpLambdaToolSchemaInlinePayloadInputSchemaPropertyPropertyArgs.builder()
                                                     .name("metadata")
                                                     .type("object")
                                                     .propertiesJson(serializeJson(
                                                         jsonObject(
                                                             jsonProperty("properties", jsonObject(
                                                                 jsonProperty("created_at", jsonObject(
                                                                     jsonProperty("type", "string")
                                                                 )),
                                                                 jsonProperty("version", jsonObject(
                                                                     jsonProperty("type", "number")
                                                                 ))
                                                             )),
                                                             jsonProperty("required", jsonArray("created_at"))
                                                         )))
                                                     .build())
                                             .name("profile")
                                             .type("object")
                                             .build())
                                         .type("object")
                                         .build())
                                     .name("complex_tool")
                                     .description("Tool with complex nested schema")
                                     .build())
                                 .build())
                             .lambdaArn(example.arn())
                             .build())
                         .build())
                     .build())
                 .name("complex-target")
                 .gatewayIdentifier(exampleAwsBedrockagentcoreGateway.gatewayId())
                 .build());
     
         }
     }
     
     
    ### MCP Server Target with Header Propagation
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTarget;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTargetArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetMetadataConfigurationArgs;
     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 mcpWithHeaders = new AgentcoreGatewayTarget("mcpWithHeaders", AgentcoreGatewayTargetArgs.builder()
                 .targetConfiguration(AgentcoreGatewayTargetTargetConfigurationArgs.builder()
                     .mcp(AgentcoreGatewayTargetTargetConfigurationMcpArgs.builder()
                         .mcpServer(AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs.builder()
                             .endpoint("https://example.com/mcp")
                             .build())
                         .build())
                     .build())
                 .metadataConfiguration(AgentcoreGatewayTargetMetadataConfigurationArgs.builder()
                     .allowedRequestHeaders(                
                         "x-correlation-id",
                         "x-tenant-id")
                     .allowedResponseHeaders("x-rate-limit-remaining")
                     .allowedQueryParameters("version")
                     .build())
                 .name("mcp-target-with-headers")
                 .gatewayIdentifier(example.gatewayId())
                 .description("MCP server target with header propagation")
                 .build());
     
         }
     }
     
     
    ### Self-hosted MCP server in a VPC (managed Lattice)
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTarget;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTargetArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetPrivateEndpointArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetPrivateEndpointManagedVpcResourceArgs;
     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 AgentcoreGatewayTarget("example", AgentcoreGatewayTargetArgs.builder()
                 .targetConfiguration(AgentcoreGatewayTargetTargetConfigurationArgs.builder()
                     .mcp(AgentcoreGatewayTargetTargetConfigurationMcpArgs.builder()
                         .mcpServer(AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs.builder()
                             .endpoint("https://mcp.internal.example.com/mcp")
                             .build())
                         .build())
                     .build())
                 .privateEndpoint(AgentcoreGatewayTargetPrivateEndpointArgs.builder()
                     .managedVpcResource(AgentcoreGatewayTargetPrivateEndpointManagedVpcResourceArgs.builder()
                         .vpcIdentifier(exampleAwsVpc.id())
                         .subnetIds(exampleAwsSubnet.stream().map(element -> element.id()).collect(toList()))
                         .endpointIpAddressType("IPV4")
                         .securityGroupIds(mcpLattice.id())
                         .build())
                     .build())
                 .gatewayIdentifier(exampleAwsBedrockagentcoreGateway.gatewayId())
                 .name("my-private-mcp-target")
                 .build());
     
         }
     }
     
     
    ### Self-hosted MCP server with routing through an internal ALB Use `routingDomain` when the MCP server has a private TLS certificate. Place an internal ALB with a public ACM certificate in front of the server and set `routingDomain` to the ALB DNS name.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTarget;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTargetArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetPrivateEndpointArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetPrivateEndpointManagedVpcResourceArgs;
     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 AgentcoreGatewayTarget("example", AgentcoreGatewayTargetArgs.builder()
                 .targetConfiguration(AgentcoreGatewayTargetTargetConfigurationArgs.builder()
                     .mcp(AgentcoreGatewayTargetTargetConfigurationMcpArgs.builder()
                         .mcpServer(AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs.builder()
                             .endpoint("https://mcp.example.com/mcp")
                             .build())
                         .build())
                     .build())
                 .privateEndpoint(AgentcoreGatewayTargetPrivateEndpointArgs.builder()
                     .managedVpcResource(AgentcoreGatewayTargetPrivateEndpointManagedVpcResourceArgs.builder()
                         .vpcIdentifier(exampleAwsVpc.id())
                         .subnetIds(exampleAwsSubnet.stream().map(element -> element.id()).collect(toList()))
                         .endpointIpAddressType("IPV4")
                         .routingDomain(mcpAlb.dnsName())
                         .build())
                     .build())
                 .gatewayIdentifier(exampleAwsBedrockagentcoreGateway.gatewayId())
                 .name("my-private-mcp-via-alb")
                 .build());
     
         }
     }
     
     
    ### Self-managed VPC Lattice resource configuration
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTarget;
     import com.pulumi.aws.bedrock.AgentcoreGatewayTargetArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetPrivateEndpointArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreGatewayTargetPrivateEndpointSelfManagedLatticeResourceArgs;
     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 AgentcoreGatewayTarget("example", AgentcoreGatewayTargetArgs.builder()
                 .targetConfiguration(AgentcoreGatewayTargetTargetConfigurationArgs.builder()
                     .mcp(AgentcoreGatewayTargetTargetConfigurationMcpArgs.builder()
                         .mcpServer(AgentcoreGatewayTargetTargetConfigurationMcpMcpServerArgs.builder()
                             .endpoint("https://mcp.internal.example.com/mcp")
                             .build())
                         .build())
                     .build())
                 .privateEndpoint(AgentcoreGatewayTargetPrivateEndpointArgs.builder()
                     .selfManagedLatticeResource(AgentcoreGatewayTargetPrivateEndpointSelfManagedLatticeResourceArgs.builder()
                         .resourceConfigurationIdentifier(mcp.arn())
                         .build())
                     .build())
                 .gatewayIdentifier(exampleAwsBedrockagentcoreGateway.gatewayId())
                 .name("my-private-mcp-self-managed")
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required * `gatewayIdentifier` (String) Gateway identifier. * `targetId` (String) Gateway target ID. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import gateway targets using `gatewayIdentifier` and `targetId` separated by a comma (`,`). For example: ```sh $ pulumi import aws:bedrock/agentcoreGatewayTarget:AgentcoreGatewayTarget example GATEWAY1234567890,TARGET0987654321 ```
    • Constructor Detail

      • AgentcoreGatewayTarget

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

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

        public AgentcoreGatewayTarget​(java.lang.String name,
                                      AgentcoreGatewayTargetArgs 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

      • credentialProviderConfiguration

        public com.pulumi.core.Output<java.util.Optional<AgentcoreGatewayTargetCredentialProviderConfiguration>> credentialProviderConfiguration()
        Returns:
        Configuration for authenticating requests to the target. Required when using `lambda`, `openApiSchema` and `smithyModel` in `mcp` block. If using `mcpServer` in `mcp` block with no authorization, it should not be specified. See `credentialProviderConfiguration` Block below.
      • description

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
        Returns:
        Description of the gateway target.
      • gatewayIdentifier

        public com.pulumi.core.Output<java.lang.String> gatewayIdentifier()
        Returns:
        Identifier of the gateway that this target belongs to.
      • metadataConfiguration

        public com.pulumi.core.Output<java.util.Optional<AgentcoreGatewayTargetMetadataConfiguration>> metadataConfiguration()
        Returns:
        Configuration for HTTP header and query parameter propagation between the gateway and target servers. See `metadataConfiguration` Block below.
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        Name of the gateway target.
      • privateEndpoint

        public com.pulumi.core.Output<java.util.Optional<AgentcoreGatewayTargetPrivateEndpoint>> privateEndpoint()
        Returns:
        Configuration for private connectivity from AgentCore Gateway to a resource inside your VPC. Traffic is routed through Amazon VPC Lattice and never traverses the public internet. See `privateEndpoint` 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.
      • targetConfiguration

        public com.pulumi.core.Output<AgentcoreGatewayTargetTargetConfiguration> targetConfiguration()
        Returns:
        Configuration for the target endpoint. See `targetConfiguration` Block below. The following arguments are optional:
      • targetId

        public com.pulumi.core.Output<java.lang.String> targetId()
        Returns:
        Unique identifier of the gateway target.
      • get

        public static AgentcoreGatewayTarget get​(java.lang.String name,
                                                 com.pulumi.core.Output<java.lang.String> id,
                                                 @Nullable
                                                 AgentcoreGatewayTargetState 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.