1. Packages
  2. Packages
  3. Google Cloud (GCP) Classic
  4. API Docs
  5. networkservices
  6. AgentGateway
Viewing docs for Google Cloud v9.29.0
published on Wednesday, Jun 24, 2026 by Pulumi
gcp logo
Viewing docs for Google Cloud v9.29.0
published on Wednesday, Jun 24, 2026 by Pulumi

    AgentGateway represents the agent gateway resource.

    To get more information about AgentGateway, see:

    Example Usage

    Network Services Agent Gateway Full

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const project = gcp.organizations.getProject({});
    const agentRegistry = new gcp.projects.Service("agent_registry", {
        service: "agentregistry.googleapis.com",
        disableOnDestroy: false,
    });
    const defaultNetwork = new gcp.compute.Network("default", {
        name: "my-gateway-network",
        autoCreateSubnetworks: false,
    });
    const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
        name: "my-gateway-subnetwork",
        region: "us-central1",
        network: defaultNetwork.id,
        ipCidrRange: "10.0.0.0/16",
    });
    const defaultNetworkAttachment = new gcp.compute.NetworkAttachment("default", {
        name: "my-gateway-attachment",
        region: "us-central1",
        connectionPreference: "ACCEPT_MANUAL",
        subnetworks: [defaultSubnetwork.id],
    });
    const defaultManagedZone = new gcp.dns.ManagedZone("default", {
        name: "my-gateway-zone",
        dnsName: "example.com.",
        description: "Private zone used by AgentGateway DNS peering",
        visibility: "private",
        privateVisibilityConfig: {
            networks: [{
                networkUrl: defaultNetwork.id,
            }],
        },
    });
    const _default = new gcp.networkservices.AgentGateway("default", {
        name: "my-full-agent-gateway",
        location: "us-central1",
        description: "A full configuration for Agent Gateway",
        labels: {
            env: "test",
            tier: "gold",
        },
        protocols: ["MCP"],
        googleManaged: {
            governedAccessPath: "AGENT_TO_ANYWHERE",
        },
        registries: ["//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"],
        networkConfig: {
            egress: {
                networkAttachment: defaultNetworkAttachment.id,
            },
            dnsPeeringConfig: {
                domains: [defaultManagedZone.dnsName],
                targetProject: project.then(project => project.projectId),
                targetNetwork: defaultNetwork.id,
            },
        },
    }, {
        dependsOn: [agentRegistry],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    project = gcp.organizations.get_project()
    agent_registry = gcp.projects.Service("agent_registry",
        service="agentregistry.googleapis.com",
        disable_on_destroy=False)
    default_network = gcp.compute.Network("default",
        name="my-gateway-network",
        auto_create_subnetworks=False)
    default_subnetwork = gcp.compute.Subnetwork("default",
        name="my-gateway-subnetwork",
        region="us-central1",
        network=default_network.id,
        ip_cidr_range="10.0.0.0/16")
    default_network_attachment = gcp.compute.NetworkAttachment("default",
        name="my-gateway-attachment",
        region="us-central1",
        connection_preference="ACCEPT_MANUAL",
        subnetworks=[default_subnetwork.id])
    default_managed_zone = gcp.dns.ManagedZone("default",
        name="my-gateway-zone",
        dns_name="example.com.",
        description="Private zone used by AgentGateway DNS peering",
        visibility="private",
        private_visibility_config={
            "networks": [{
                "network_url": default_network.id,
            }],
        })
    default = gcp.networkservices.AgentGateway("default",
        name="my-full-agent-gateway",
        location="us-central1",
        description="A full configuration for Agent Gateway",
        labels={
            "env": "test",
            "tier": "gold",
        },
        protocols=["MCP"],
        google_managed={
            "governed_access_path": "AGENT_TO_ANYWHERE",
        },
        registries=["//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"],
        network_config={
            "egress": {
                "network_attachment": default_network_attachment.id,
            },
            "dns_peering_config": {
                "domains": [default_managed_zone.dns_name],
                "target_project": project.project_id,
                "target_network": default_network.id,
            },
        },
        opts = pulumi.ResourceOptions(depends_on=[agent_registry]))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/dns"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/networkservices"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
    		if err != nil {
    			return err
    		}
    		agentRegistry, err := projects.NewService(ctx, "agent_registry", &projects.ServiceArgs{
    			Service:          pulumi.String("agentregistry.googleapis.com"),
    			DisableOnDestroy: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		defaultNetwork, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
    			Name:                  pulumi.String("my-gateway-network"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
    			Name:        pulumi.String("my-gateway-subnetwork"),
    			Region:      pulumi.String("us-central1"),
    			Network:     defaultNetwork.ID(),
    			IpCidrRange: pulumi.String("10.0.0.0/16"),
    		})
    		if err != nil {
    			return err
    		}
    		defaultNetworkAttachment, err := compute.NewNetworkAttachment(ctx, "default", &compute.NetworkAttachmentArgs{
    			Name:                 pulumi.String("my-gateway-attachment"),
    			Region:               pulumi.String("us-central1"),
    			ConnectionPreference: pulumi.String("ACCEPT_MANUAL"),
    			Subnetworks: pulumi.StringArray{
    				defaultSubnetwork.ID(),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		defaultManagedZone, err := dns.NewManagedZone(ctx, "default", &dns.ManagedZoneArgs{
    			Name:        pulumi.String("my-gateway-zone"),
    			DnsName:     pulumi.String("example.com."),
    			Description: pulumi.String("Private zone used by AgentGateway DNS peering"),
    			Visibility:  pulumi.String("private"),
    			PrivateVisibilityConfig: &dns.ManagedZonePrivateVisibilityConfigArgs{
    				Networks: dns.ManagedZonePrivateVisibilityConfigNetworkArray{
    					&dns.ManagedZonePrivateVisibilityConfigNetworkArgs{
    						NetworkUrl: defaultNetwork.ID(),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = networkservices.NewAgentGateway(ctx, "default", &networkservices.AgentGatewayArgs{
    			Name:        pulumi.String("my-full-agent-gateway"),
    			Location:    pulumi.String("us-central1"),
    			Description: pulumi.String("A full configuration for Agent Gateway"),
    			Labels: pulumi.StringMap{
    				"env":  pulumi.String("test"),
    				"tier": pulumi.String("gold"),
    			},
    			Protocols: pulumi.StringArray{
    				pulumi.String("MCP"),
    			},
    			GoogleManaged: &networkservices.AgentGatewayGoogleManagedArgs{
    				GovernedAccessPath: pulumi.String("AGENT_TO_ANYWHERE"),
    			},
    			Registries: pulumi.StringArray{
    				pulumi.String("//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"),
    			},
    			NetworkConfig: &networkservices.AgentGatewayNetworkConfigArgs{
    				Egress: &networkservices.AgentGatewayNetworkConfigEgressArgs{
    					NetworkAttachment: defaultNetworkAttachment.ID(),
    				},
    				DnsPeeringConfig: &networkservices.AgentGatewayNetworkConfigDnsPeeringConfigArgs{
    					Domains: pulumi.StringArray{
    						defaultManagedZone.DnsName,
    					},
    					TargetProject: pulumi.String(project.ProjectId),
    					TargetNetwork: defaultNetwork.ID(),
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			agentRegistry,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var project = Gcp.Organizations.GetProject.Invoke();
    
        var agentRegistry = new Gcp.Projects.Service("agent_registry", new()
        {
            ServiceName = "agentregistry.googleapis.com",
            DisableOnDestroy = false,
        });
    
        var defaultNetwork = new Gcp.Compute.Network("default", new()
        {
            Name = "my-gateway-network",
            AutoCreateSubnetworks = false,
        });
    
        var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
        {
            Name = "my-gateway-subnetwork",
            Region = "us-central1",
            Network = defaultNetwork.Id,
            IpCidrRange = "10.0.0.0/16",
        });
    
        var defaultNetworkAttachment = new Gcp.Compute.NetworkAttachment("default", new()
        {
            Name = "my-gateway-attachment",
            Region = "us-central1",
            ConnectionPreference = "ACCEPT_MANUAL",
            Subnetworks = new[]
            {
                defaultSubnetwork.Id,
            },
        });
    
        var defaultManagedZone = new Gcp.Dns.ManagedZone("default", new()
        {
            Name = "my-gateway-zone",
            DnsName = "example.com.",
            Description = "Private zone used by AgentGateway DNS peering",
            Visibility = "private",
            PrivateVisibilityConfig = new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigArgs
            {
                Networks = new[]
                {
                    new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigNetworkArgs
                    {
                        NetworkUrl = defaultNetwork.Id,
                    },
                },
            },
        });
    
        var @default = new Gcp.NetworkServices.AgentGateway("default", new()
        {
            Name = "my-full-agent-gateway",
            Location = "us-central1",
            Description = "A full configuration for Agent Gateway",
            Labels = 
            {
                { "env", "test" },
                { "tier", "gold" },
            },
            Protocols = new[]
            {
                "MCP",
            },
            GoogleManaged = new Gcp.NetworkServices.Inputs.AgentGatewayGoogleManagedArgs
            {
                GovernedAccessPath = "AGENT_TO_ANYWHERE",
            },
            Registries = new[]
            {
                "//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1",
            },
            NetworkConfig = new Gcp.NetworkServices.Inputs.AgentGatewayNetworkConfigArgs
            {
                Egress = new Gcp.NetworkServices.Inputs.AgentGatewayNetworkConfigEgressArgs
                {
                    NetworkAttachment = defaultNetworkAttachment.Id,
                },
                DnsPeeringConfig = new Gcp.NetworkServices.Inputs.AgentGatewayNetworkConfigDnsPeeringConfigArgs
                {
                    Domains = new[]
                    {
                        defaultManagedZone.DnsName,
                    },
                    TargetProject = project.Apply(getProjectResult => getProjectResult.ProjectId),
                    TargetNetwork = defaultNetwork.Id,
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                agentRegistry,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.organizations.OrganizationsFunctions;
    import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
    import com.pulumi.gcp.projects.Service;
    import com.pulumi.gcp.projects.ServiceArgs;
    import com.pulumi.gcp.compute.Network;
    import com.pulumi.gcp.compute.NetworkArgs;
    import com.pulumi.gcp.compute.Subnetwork;
    import com.pulumi.gcp.compute.SubnetworkArgs;
    import com.pulumi.gcp.compute.NetworkAttachment;
    import com.pulumi.gcp.compute.NetworkAttachmentArgs;
    import com.pulumi.gcp.dns.ManagedZone;
    import com.pulumi.gcp.dns.ManagedZoneArgs;
    import com.pulumi.gcp.dns.inputs.ManagedZonePrivateVisibilityConfigArgs;
    import com.pulumi.gcp.dns.inputs.ManagedZonePrivateVisibilityConfigNetworkArgs;
    import com.pulumi.gcp.networkservices.AgentGateway;
    import com.pulumi.gcp.networkservices.AgentGatewayArgs;
    import com.pulumi.gcp.networkservices.inputs.AgentGatewayGoogleManagedArgs;
    import com.pulumi.gcp.networkservices.inputs.AgentGatewayNetworkConfigArgs;
    import com.pulumi.gcp.networkservices.inputs.AgentGatewayNetworkConfigEgressArgs;
    import com.pulumi.gcp.networkservices.inputs.AgentGatewayNetworkConfigDnsPeeringConfigArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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 project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
                .build());
    
            var agentRegistry = new Service("agentRegistry", ServiceArgs.builder()
                .service("agentregistry.googleapis.com")
                .disableOnDestroy(false)
                .build());
    
            var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
                .name("my-gateway-network")
                .autoCreateSubnetworks(false)
                .build());
    
            var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
                .name("my-gateway-subnetwork")
                .region("us-central1")
                .network(defaultNetwork.id())
                .ipCidrRange("10.0.0.0/16")
                .build());
    
            var defaultNetworkAttachment = new NetworkAttachment("defaultNetworkAttachment", NetworkAttachmentArgs.builder()
                .name("my-gateway-attachment")
                .region("us-central1")
                .connectionPreference("ACCEPT_MANUAL")
                .subnetworks(defaultSubnetwork.id())
                .build());
    
            var defaultManagedZone = new ManagedZone("defaultManagedZone", ManagedZoneArgs.builder()
                .name("my-gateway-zone")
                .dnsName("example.com.")
                .description("Private zone used by AgentGateway DNS peering")
                .visibility("private")
                .privateVisibilityConfig(ManagedZonePrivateVisibilityConfigArgs.builder()
                    .networks(ManagedZonePrivateVisibilityConfigNetworkArgs.builder()
                        .networkUrl(defaultNetwork.id())
                        .build())
                    .build())
                .build());
    
            var default_ = new AgentGateway("default", AgentGatewayArgs.builder()
                .name("my-full-agent-gateway")
                .location("us-central1")
                .description("A full configuration for Agent Gateway")
                .labels(Map.ofEntries(
                    Map.entry("env", "test"),
                    Map.entry("tier", "gold")
                ))
                .protocols("MCP")
                .googleManaged(AgentGatewayGoogleManagedArgs.builder()
                    .governedAccessPath("AGENT_TO_ANYWHERE")
                    .build())
                .registries("//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1")
                .networkConfig(AgentGatewayNetworkConfigArgs.builder()
                    .egress(AgentGatewayNetworkConfigEgressArgs.builder()
                        .networkAttachment(defaultNetworkAttachment.id())
                        .build())
                    .dnsPeeringConfig(AgentGatewayNetworkConfigDnsPeeringConfigArgs.builder()
                        .domains(defaultManagedZone.dnsName())
                        .targetProject(project.projectId())
                        .targetNetwork(defaultNetwork.id())
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(agentRegistry)
                    .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:networkservices:AgentGateway
        properties:
          name: my-full-agent-gateway
          location: us-central1
          description: A full configuration for Agent Gateway
          labels:
            env: test
            tier: gold
          protocols:
            - MCP
          googleManaged:
            governedAccessPath: AGENT_TO_ANYWHERE
          registries:
            - //agentregistry.googleapis.com/projects/my-project-name/locations/us-central1
          networkConfig:
            egress:
              networkAttachment: ${defaultNetworkAttachment.id}
            dnsPeeringConfig:
              domains:
                - ${defaultManagedZone.dnsName}
              targetProject: ${project.projectId}
              targetNetwork: ${defaultNetwork.id}
        options:
          dependsOn:
            - ${agentRegistry}
      agentRegistry:
        type: gcp:projects:Service
        name: agent_registry
        properties:
          service: agentregistry.googleapis.com
          disableOnDestroy: false
      defaultNetwork:
        type: gcp:compute:Network
        name: default
        properties:
          name: my-gateway-network
          autoCreateSubnetworks: false
      defaultSubnetwork:
        type: gcp:compute:Subnetwork
        name: default
        properties:
          name: my-gateway-subnetwork
          region: us-central1
          network: ${defaultNetwork.id}
          ipCidrRange: 10.0.0.0/16
      defaultNetworkAttachment:
        type: gcp:compute:NetworkAttachment
        name: default
        properties:
          name: my-gateway-attachment
          region: us-central1
          connectionPreference: ACCEPT_MANUAL
          subnetworks:
            - ${defaultSubnetwork.id}
      defaultManagedZone:
        type: gcp:dns:ManagedZone
        name: default
        properties:
          name: my-gateway-zone
          dnsName: example.com.
          description: Private zone used by AgentGateway DNS peering
          visibility: private
          privateVisibilityConfig:
            networks:
              - networkUrl: ${defaultNetwork.id}
    variables:
      project:
        fn::invoke:
          function: gcp:organizations:getProject
          arguments: {}
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    data "gcp_organizations_getproject" "project" {
    }
    
    resource "gcp_networkservices_agentgateway" "default" {
      depends_on  = [gcp_projects_service.agent_registry]
      name        = "my-full-agent-gateway"
      location    = "us-central1"
      description = "A full configuration for Agent Gateway"
      labels = {
        "env"  = "test"
        "tier" = "gold"
      }
      protocols = ["MCP"]
      google_managed = {
        governed_access_path = "AGENT_TO_ANYWHERE"
      }
      registries = ["//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"]
      network_config = {
        egress = {
          network_attachment = gcp_compute_networkattachment.default.id
        }
        dns_peering_config = {
          domains        = [gcp_dns_managedzone.default.dns_name]
          target_project = data.gcp_organizations_getproject.project.project_id
          target_network = gcp_compute_network.default.id
        }
      }
    }
    resource "gcp_projects_service" "agent_registry" {
      service            = "agentregistry.googleapis.com"
      disable_on_destroy = false
    }
    resource "gcp_compute_network" "default" {
      name                    = "my-gateway-network"
      auto_create_subnetworks = false
    }
    resource "gcp_compute_subnetwork" "default" {
      name          = "my-gateway-subnetwork"
      region        = "us-central1"
      network       = gcp_compute_network.default.id
      ip_cidr_range = "10.0.0.0/16"
    }
    resource "gcp_compute_networkattachment" "default" {
      name                  = "my-gateway-attachment"
      region                = "us-central1"
      connection_preference = "ACCEPT_MANUAL"
      subnetworks           = [gcp_compute_subnetwork.default.id]
    }
    resource "gcp_dns_managedzone" "default" {
      name        = "my-gateway-zone"
      dns_name    = "example.com."
      description = "Private zone used by AgentGateway DNS peering"
      visibility  = "private"
      private_visibility_config = {
        networks = [{
          "networkUrl" = gcp_compute_network.default.id
        }]
      }
    }
    

    Network Services Agent Gateway Client To Agent

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const agentRegistry = new gcp.projects.Service("agent_registry", {
        service: "agentregistry.googleapis.com",
        disableOnDestroy: false,
    });
    const _default = new gcp.networkservices.AgentGateway("default", {
        name: "my-client-to-agent-gateway",
        location: "us-central1",
        googleManaged: {
            governedAccessPath: "CLIENT_TO_AGENT",
        },
        registries: ["//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"],
    }, {
        dependsOn: [agentRegistry],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    agent_registry = gcp.projects.Service("agent_registry",
        service="agentregistry.googleapis.com",
        disable_on_destroy=False)
    default = gcp.networkservices.AgentGateway("default",
        name="my-client-to-agent-gateway",
        location="us-central1",
        google_managed={
            "governed_access_path": "CLIENT_TO_AGENT",
        },
        registries=["//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"],
        opts = pulumi.ResourceOptions(depends_on=[agent_registry]))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/networkservices"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		agentRegistry, err := projects.NewService(ctx, "agent_registry", &projects.ServiceArgs{
    			Service:          pulumi.String("agentregistry.googleapis.com"),
    			DisableOnDestroy: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = networkservices.NewAgentGateway(ctx, "default", &networkservices.AgentGatewayArgs{
    			Name:     pulumi.String("my-client-to-agent-gateway"),
    			Location: pulumi.String("us-central1"),
    			GoogleManaged: &networkservices.AgentGatewayGoogleManagedArgs{
    				GovernedAccessPath: pulumi.String("CLIENT_TO_AGENT"),
    			},
    			Registries: pulumi.StringArray{
    				pulumi.String("//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"),
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			agentRegistry,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var agentRegistry = new Gcp.Projects.Service("agent_registry", new()
        {
            ServiceName = "agentregistry.googleapis.com",
            DisableOnDestroy = false,
        });
    
        var @default = new Gcp.NetworkServices.AgentGateway("default", new()
        {
            Name = "my-client-to-agent-gateway",
            Location = "us-central1",
            GoogleManaged = new Gcp.NetworkServices.Inputs.AgentGatewayGoogleManagedArgs
            {
                GovernedAccessPath = "CLIENT_TO_AGENT",
            },
            Registries = new[]
            {
                "//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1",
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                agentRegistry,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.projects.Service;
    import com.pulumi.gcp.projects.ServiceArgs;
    import com.pulumi.gcp.networkservices.AgentGateway;
    import com.pulumi.gcp.networkservices.AgentGatewayArgs;
    import com.pulumi.gcp.networkservices.inputs.AgentGatewayGoogleManagedArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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 agentRegistry = new Service("agentRegistry", ServiceArgs.builder()
                .service("agentregistry.googleapis.com")
                .disableOnDestroy(false)
                .build());
    
            var default_ = new AgentGateway("default", AgentGatewayArgs.builder()
                .name("my-client-to-agent-gateway")
                .location("us-central1")
                .googleManaged(AgentGatewayGoogleManagedArgs.builder()
                    .governedAccessPath("CLIENT_TO_AGENT")
                    .build())
                .registries("//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(agentRegistry)
                    .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:networkservices:AgentGateway
        properties:
          name: my-client-to-agent-gateway
          location: us-central1
          googleManaged:
            governedAccessPath: CLIENT_TO_AGENT
          registries:
            - //agentregistry.googleapis.com/projects/my-project-name/locations/us-central1
        options:
          dependsOn:
            - ${agentRegistry}
      agentRegistry:
        type: gcp:projects:Service
        name: agent_registry
        properties:
          service: agentregistry.googleapis.com
          disableOnDestroy: false
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_networkservices_agentgateway" "default" {
      depends_on = [gcp_projects_service.agent_registry]
      name       = "my-client-to-agent-gateway"
      location   = "us-central1"
      google_managed = {
        governed_access_path = "CLIENT_TO_AGENT"
      }
      registries = ["//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"]
    }
    resource "gcp_projects_service" "agent_registry" {
      service            = "agentregistry.googleapis.com"
      disable_on_destroy = false
    }
    

    Network Services Agent Gateway Self Managed

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const _default = new gcp.networkservices.AgentGateway("default", {
        name: "my-self-managed-agent-gateway",
        location: "us-central1",
        selfManaged: {
            resourceUri: "projects/my-project-name/locations/us-central1/gateways/my-gateway",
        },
        registries: ["//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    default = gcp.networkservices.AgentGateway("default",
        name="my-self-managed-agent-gateway",
        location="us-central1",
        self_managed={
            "resource_uri": "projects/my-project-name/locations/us-central1/gateways/my-gateway",
        },
        registries=["//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/networkservices"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := networkservices.NewAgentGateway(ctx, "default", &networkservices.AgentGatewayArgs{
    			Name:     pulumi.String("my-self-managed-agent-gateway"),
    			Location: pulumi.String("us-central1"),
    			SelfManaged: &networkservices.AgentGatewaySelfManagedArgs{
    				ResourceUri: pulumi.String("projects/my-project-name/locations/us-central1/gateways/my-gateway"),
    			},
    			Registries: pulumi.StringArray{
    				pulumi.String("//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var @default = new Gcp.NetworkServices.AgentGateway("default", new()
        {
            Name = "my-self-managed-agent-gateway",
            Location = "us-central1",
            SelfManaged = new Gcp.NetworkServices.Inputs.AgentGatewaySelfManagedArgs
            {
                ResourceUri = "projects/my-project-name/locations/us-central1/gateways/my-gateway",
            },
            Registries = new[]
            {
                "//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.networkservices.AgentGateway;
    import com.pulumi.gcp.networkservices.AgentGatewayArgs;
    import com.pulumi.gcp.networkservices.inputs.AgentGatewaySelfManagedArgs;
    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 default_ = new AgentGateway("default", AgentGatewayArgs.builder()
                .name("my-self-managed-agent-gateway")
                .location("us-central1")
                .selfManaged(AgentGatewaySelfManagedArgs.builder()
                    .resourceUri("projects/my-project-name/locations/us-central1/gateways/my-gateway")
                    .build())
                .registries("//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1")
                .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:networkservices:AgentGateway
        properties:
          name: my-self-managed-agent-gateway
          location: us-central1
          selfManaged:
            resourceUri: projects/my-project-name/locations/us-central1/gateways/my-gateway
          registries:
            - //agentregistry.googleapis.com/projects/my-project-name/locations/us-central1
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_networkservices_agentgateway" "default" {
      name     = "my-self-managed-agent-gateway"
      location = "us-central1"
      self_managed = {
        resource_uri = "projects/my-project-name/locations/us-central1/gateways/my-gateway"
      }
      registries = ["//agentregistry.googleapis.com/projects/my-project-name/locations/us-central1"]
    }
    

    Create AgentGateway Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new AgentGateway(name: string, args: AgentGatewayArgs, opts?: CustomResourceOptions);
    @overload
    def AgentGateway(resource_name: str,
                     args: AgentGatewayArgs,
                     opts: Optional[ResourceOptions] = None)
    
    @overload
    def AgentGateway(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     location: Optional[str] = None,
                     deletion_policy: Optional[str] = None,
                     description: Optional[str] = None,
                     google_managed: Optional[AgentGatewayGoogleManagedArgs] = None,
                     labels: Optional[Mapping[str, str]] = None,
                     name: Optional[str] = None,
                     network_config: Optional[AgentGatewayNetworkConfigArgs] = None,
                     project: Optional[str] = None,
                     protocols: Optional[Sequence[str]] = None,
                     registries: Optional[Sequence[str]] = None,
                     self_managed: Optional[AgentGatewaySelfManagedArgs] = None)
    func NewAgentGateway(ctx *Context, name string, args AgentGatewayArgs, opts ...ResourceOption) (*AgentGateway, error)
    public AgentGateway(string name, AgentGatewayArgs args, CustomResourceOptions? opts = null)
    public AgentGateway(String name, AgentGatewayArgs args)
    public AgentGateway(String name, AgentGatewayArgs args, CustomResourceOptions options)
    
    type: gcp:networkservices:AgentGateway
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "gcp_networkservices_agentgateway" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args AgentGatewayArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args AgentGatewayArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args AgentGatewayArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args AgentGatewayArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args AgentGatewayArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var agentGatewayResource = new Gcp.NetworkServices.AgentGateway("agentGatewayResource", new()
    {
        Location = "string",
        DeletionPolicy = "string",
        Description = "string",
        GoogleManaged = new Gcp.NetworkServices.Inputs.AgentGatewayGoogleManagedArgs
        {
            GovernedAccessPath = "string",
        },
        Labels = 
        {
            { "string", "string" },
        },
        Name = "string",
        NetworkConfig = new Gcp.NetworkServices.Inputs.AgentGatewayNetworkConfigArgs
        {
            Egress = new Gcp.NetworkServices.Inputs.AgentGatewayNetworkConfigEgressArgs
            {
                NetworkAttachment = "string",
            },
            DnsPeeringConfig = new Gcp.NetworkServices.Inputs.AgentGatewayNetworkConfigDnsPeeringConfigArgs
            {
                Domains = new[]
                {
                    "string",
                },
                TargetNetwork = "string",
                TargetProject = "string",
            },
        },
        Project = "string",
        Registries = new[]
        {
            "string",
        },
        SelfManaged = new Gcp.NetworkServices.Inputs.AgentGatewaySelfManagedArgs
        {
            ResourceUri = "string",
        },
    });
    
    example, err := networkservices.NewAgentGateway(ctx, "agentGatewayResource", &networkservices.AgentGatewayArgs{
    	Location:       pulumi.String("string"),
    	DeletionPolicy: pulumi.String("string"),
    	Description:    pulumi.String("string"),
    	GoogleManaged: &networkservices.AgentGatewayGoogleManagedArgs{
    		GovernedAccessPath: pulumi.String("string"),
    	},
    	Labels: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Name: pulumi.String("string"),
    	NetworkConfig: &networkservices.AgentGatewayNetworkConfigArgs{
    		Egress: &networkservices.AgentGatewayNetworkConfigEgressArgs{
    			NetworkAttachment: pulumi.String("string"),
    		},
    		DnsPeeringConfig: &networkservices.AgentGatewayNetworkConfigDnsPeeringConfigArgs{
    			Domains: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			TargetNetwork: pulumi.String("string"),
    			TargetProject: pulumi.String("string"),
    		},
    	},
    	Project: pulumi.String("string"),
    	Registries: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	SelfManaged: &networkservices.AgentGatewaySelfManagedArgs{
    		ResourceUri: pulumi.String("string"),
    	},
    })
    
    resource "gcp_networkservices_agentgateway" "agentGatewayResource" {
      location        = "string"
      deletion_policy = "string"
      description     = "string"
      google_managed = {
        governed_access_path = "string"
      }
      labels = {
        "string" = "string"
      }
      name = "string"
      network_config = {
        egress = {
          network_attachment = "string"
        }
        dns_peering_config = {
          domains        = ["string"]
          target_network = "string"
          target_project = "string"
        }
      }
      project    = "string"
      registries = ["string"]
      self_managed = {
        resource_uri = "string"
      }
    }
    
    var agentGatewayResource = new AgentGateway("agentGatewayResource", AgentGatewayArgs.builder()
        .location("string")
        .deletionPolicy("string")
        .description("string")
        .googleManaged(AgentGatewayGoogleManagedArgs.builder()
            .governedAccessPath("string")
            .build())
        .labels(Map.of("string", "string"))
        .name("string")
        .networkConfig(AgentGatewayNetworkConfigArgs.builder()
            .egress(AgentGatewayNetworkConfigEgressArgs.builder()
                .networkAttachment("string")
                .build())
            .dnsPeeringConfig(AgentGatewayNetworkConfigDnsPeeringConfigArgs.builder()
                .domains("string")
                .targetNetwork("string")
                .targetProject("string")
                .build())
            .build())
        .project("string")
        .registries("string")
        .selfManaged(AgentGatewaySelfManagedArgs.builder()
            .resourceUri("string")
            .build())
        .build());
    
    agent_gateway_resource = gcp.networkservices.AgentGateway("agentGatewayResource",
        location="string",
        deletion_policy="string",
        description="string",
        google_managed={
            "governed_access_path": "string",
        },
        labels={
            "string": "string",
        },
        name="string",
        network_config={
            "egress": {
                "network_attachment": "string",
            },
            "dns_peering_config": {
                "domains": ["string"],
                "target_network": "string",
                "target_project": "string",
            },
        },
        project="string",
        registries=["string"],
        self_managed={
            "resource_uri": "string",
        })
    
    const agentGatewayResource = new gcp.networkservices.AgentGateway("agentGatewayResource", {
        location: "string",
        deletionPolicy: "string",
        description: "string",
        googleManaged: {
            governedAccessPath: "string",
        },
        labels: {
            string: "string",
        },
        name: "string",
        networkConfig: {
            egress: {
                networkAttachment: "string",
            },
            dnsPeeringConfig: {
                domains: ["string"],
                targetNetwork: "string",
                targetProject: "string",
            },
        },
        project: "string",
        registries: ["string"],
        selfManaged: {
            resourceUri: "string",
        },
    });
    
    type: gcp:networkservices:AgentGateway
    properties:
        deletionPolicy: string
        description: string
        googleManaged:
            governedAccessPath: string
        labels:
            string: string
        location: string
        name: string
        networkConfig:
            dnsPeeringConfig:
                domains:
                    - string
                targetNetwork: string
                targetProject: string
            egress:
                networkAttachment: string
        project: string
        registries:
            - string
        selfManaged:
            resourceUri: string
    

    AgentGateway Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The AgentGateway resource accepts the following input properties:

    Location string
    The location of the agent gateway.
    DeletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    Description string
    A free-text description of the resource. Max length 1024 characters.
    GoogleManaged AgentGatewayGoogleManaged
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    Labels Dictionary<string, string>

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    Name string
    Name of the AgentGateway resource.
    NetworkConfig AgentGatewayNetworkConfig
    Network configuration for the AgentGateway. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Protocols List<string>

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    Registries List<string>
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    SelfManaged AgentGatewaySelfManaged
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    Location string
    The location of the agent gateway.
    DeletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    Description string
    A free-text description of the resource. Max length 1024 characters.
    GoogleManaged AgentGatewayGoogleManagedArgs
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    Labels map[string]string

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    Name string
    Name of the AgentGateway resource.
    NetworkConfig AgentGatewayNetworkConfigArgs
    Network configuration for the AgentGateway. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Protocols []string

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    Registries []string
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    SelfManaged AgentGatewaySelfManagedArgs
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    location string
    The location of the agent gateway.
    deletion_policy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description string
    A free-text description of the resource. Max length 1024 characters.
    google_managed object
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels map(string)

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    name string
    Name of the AgentGateway resource.
    network_config object
    Network configuration for the AgentGateway. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols list(string)

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    registries list(string)
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    self_managed object
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    location String
    The location of the agent gateway.
    deletionPolicy String
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description String
    A free-text description of the resource. Max length 1024 characters.
    googleManaged AgentGatewayGoogleManaged
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels Map<String,String>

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    name String
    Name of the AgentGateway resource.
    networkConfig AgentGatewayNetworkConfig
    Network configuration for the AgentGateway. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols List<String>

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    registries List<String>
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    selfManaged AgentGatewaySelfManaged
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    location string
    The location of the agent gateway.
    deletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description string
    A free-text description of the resource. Max length 1024 characters.
    googleManaged AgentGatewayGoogleManaged
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels {[key: string]: string}

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    name string
    Name of the AgentGateway resource.
    networkConfig AgentGatewayNetworkConfig
    Network configuration for the AgentGateway. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols string[]

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    registries string[]
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    selfManaged AgentGatewaySelfManaged
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    location str
    The location of the agent gateway.
    deletion_policy str
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description str
    A free-text description of the resource. Max length 1024 characters.
    google_managed AgentGatewayGoogleManagedArgs
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels Mapping[str, str]

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    name str
    Name of the AgentGateway resource.
    network_config AgentGatewayNetworkConfigArgs
    Network configuration for the AgentGateway. Structure is documented below.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols Sequence[str]

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    registries Sequence[str]
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    self_managed AgentGatewaySelfManagedArgs
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    location String
    The location of the agent gateway.
    deletionPolicy String
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description String
    A free-text description of the resource. Max length 1024 characters.
    googleManaged Property Map
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels Map<String>

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    name String
    Name of the AgentGateway resource.
    networkConfig Property Map
    Network configuration for the AgentGateway. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols List<String>

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    registries List<String>
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    selfManaged Property Map
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the AgentGateway resource produces the following output properties:

    AgentGatewayCards List<AgentGatewayAgentGatewayCard>
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    CreateTime string
    The timestamp when the resource was created.
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    Id string
    The provider-assigned unique ID for this managed resource.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    UpdateTime string
    The timestamp when the resource was updated.
    AgentGatewayCards []AgentGatewayAgentGatewayCard
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    CreateTime string
    The timestamp when the resource was created.
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    Id string
    The provider-assigned unique ID for this managed resource.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    UpdateTime string
    The timestamp when the resource was updated.
    agent_gateway_cards list(object)
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    create_time string
    The timestamp when the resource was created.
    effective_labels map(string)
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag string
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    id string
    The provider-assigned unique ID for this managed resource.
    pulumi_labels map(string)
    The combination of labels configured directly on the resource and default labels configured on the provider.
    update_time string
    The timestamp when the resource was updated.
    agentGatewayCards List<AgentGatewayAgentGatewayCard>
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    createTime String
    The timestamp when the resource was created.
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    id String
    The provider-assigned unique ID for this managed resource.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    updateTime String
    The timestamp when the resource was updated.
    agentGatewayCards AgentGatewayAgentGatewayCard[]
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    createTime string
    The timestamp when the resource was created.
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag string
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    id string
    The provider-assigned unique ID for this managed resource.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    updateTime string
    The timestamp when the resource was updated.
    agent_gateway_cards Sequence[AgentGatewayAgentGatewayCard]
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    create_time str
    The timestamp when the resource was created.
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag str
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    id str
    The provider-assigned unique ID for this managed resource.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    update_time str
    The timestamp when the resource was updated.
    agentGatewayCards List<Property Map>
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    createTime String
    The timestamp when the resource was created.
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    id String
    The provider-assigned unique ID for this managed resource.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    updateTime String
    The timestamp when the resource was updated.

    Look up Existing AgentGateway Resource

    Get an existing AgentGateway resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: AgentGatewayState, opts?: CustomResourceOptions): AgentGateway
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            agent_gateway_cards: Optional[Sequence[AgentGatewayAgentGatewayCardArgs]] = None,
            create_time: Optional[str] = None,
            deletion_policy: Optional[str] = None,
            description: Optional[str] = None,
            effective_labels: Optional[Mapping[str, str]] = None,
            etag: Optional[str] = None,
            google_managed: Optional[AgentGatewayGoogleManagedArgs] = None,
            labels: Optional[Mapping[str, str]] = None,
            location: Optional[str] = None,
            name: Optional[str] = None,
            network_config: Optional[AgentGatewayNetworkConfigArgs] = None,
            project: Optional[str] = None,
            protocols: Optional[Sequence[str]] = None,
            pulumi_labels: Optional[Mapping[str, str]] = None,
            registries: Optional[Sequence[str]] = None,
            self_managed: Optional[AgentGatewaySelfManagedArgs] = None,
            update_time: Optional[str] = None) -> AgentGateway
    func GetAgentGateway(ctx *Context, name string, id IDInput, state *AgentGatewayState, opts ...ResourceOption) (*AgentGateway, error)
    public static AgentGateway Get(string name, Input<string> id, AgentGatewayState? state, CustomResourceOptions? opts = null)
    public static AgentGateway get(String name, Output<String> id, AgentGatewayState state, CustomResourceOptions options)
    resources:  _:    type: gcp:networkservices:AgentGateway    get:      id: ${id}
    import {
      to = gcp_networkservices_agentgateway.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AgentGatewayCards List<AgentGatewayAgentGatewayCard>
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    CreateTime string
    The timestamp when the resource was created.
    DeletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    Description string
    A free-text description of the resource. Max length 1024 characters.
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    GoogleManaged AgentGatewayGoogleManaged
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    Labels Dictionary<string, string>

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    Location string
    The location of the agent gateway.
    Name string
    Name of the AgentGateway resource.
    NetworkConfig AgentGatewayNetworkConfig
    Network configuration for the AgentGateway. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Protocols List<string>

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    Registries List<string>
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    SelfManaged AgentGatewaySelfManaged
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    UpdateTime string
    The timestamp when the resource was updated.
    AgentGatewayCards []AgentGatewayAgentGatewayCardArgs
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    CreateTime string
    The timestamp when the resource was created.
    DeletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    Description string
    A free-text description of the resource. Max length 1024 characters.
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    GoogleManaged AgentGatewayGoogleManagedArgs
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    Labels map[string]string

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    Location string
    The location of the agent gateway.
    Name string
    Name of the AgentGateway resource.
    NetworkConfig AgentGatewayNetworkConfigArgs
    Network configuration for the AgentGateway. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Protocols []string

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    Registries []string
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    SelfManaged AgentGatewaySelfManagedArgs
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    UpdateTime string
    The timestamp when the resource was updated.
    agent_gateway_cards list(object)
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    create_time string
    The timestamp when the resource was created.
    deletion_policy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description string
    A free-text description of the resource. Max length 1024 characters.
    effective_labels map(string)
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag string
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    google_managed object
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels map(string)

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    location string
    The location of the agent gateway.
    name string
    Name of the AgentGateway resource.
    network_config object
    Network configuration for the AgentGateway. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols list(string)

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    pulumi_labels map(string)
    The combination of labels configured directly on the resource and default labels configured on the provider.
    registries list(string)
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    self_managed object
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    update_time string
    The timestamp when the resource was updated.
    agentGatewayCards List<AgentGatewayAgentGatewayCard>
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    createTime String
    The timestamp when the resource was created.
    deletionPolicy String
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description String
    A free-text description of the resource. Max length 1024 characters.
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    googleManaged AgentGatewayGoogleManaged
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels Map<String,String>

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    location String
    The location of the agent gateway.
    name String
    Name of the AgentGateway resource.
    networkConfig AgentGatewayNetworkConfig
    Network configuration for the AgentGateway. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols List<String>

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    registries List<String>
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    selfManaged AgentGatewaySelfManaged
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    updateTime String
    The timestamp when the resource was updated.
    agentGatewayCards AgentGatewayAgentGatewayCard[]
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    createTime string
    The timestamp when the resource was created.
    deletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description string
    A free-text description of the resource. Max length 1024 characters.
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag string
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    googleManaged AgentGatewayGoogleManaged
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels {[key: string]: string}

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    location string
    The location of the agent gateway.
    name string
    Name of the AgentGateway resource.
    networkConfig AgentGatewayNetworkConfig
    Network configuration for the AgentGateway. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols string[]

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    registries string[]
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    selfManaged AgentGatewaySelfManaged
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    updateTime string
    The timestamp when the resource was updated.
    agent_gateway_cards Sequence[AgentGatewayAgentGatewayCardArgs]
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    create_time str
    The timestamp when the resource was created.
    deletion_policy str
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description str
    A free-text description of the resource. Max length 1024 characters.
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag str
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    google_managed AgentGatewayGoogleManagedArgs
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels Mapping[str, str]

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    location str
    The location of the agent gateway.
    name str
    Name of the AgentGateway resource.
    network_config AgentGatewayNetworkConfigArgs
    Network configuration for the AgentGateway. Structure is documented below.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols Sequence[str]

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    registries Sequence[str]
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    self_managed AgentGatewaySelfManagedArgs
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    update_time str
    The timestamp when the resource was updated.
    agentGatewayCards List<Property Map>
    AgentGatewayOutputCard contains informational output-only fields. Structure is documented below.
    createTime String
    The timestamp when the resource was created.
    deletionPolicy String
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    description String
    A free-text description of the resource. Max length 1024 characters.
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Etag of the resource. If this is provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
    googleManaged Property Map
    Configuration for Google Managed deployment mode. Proxy is orchestrated and managed by GoogleCloud in a tenant project. Structure is documented below.
    labels Map<String>

    Set of label tags associated with the AgentGateway resource.

    Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effectiveLabels for all of the labels present on the resource.

    location String
    The location of the agent gateway.
    name String
    Name of the AgentGateway resource.
    networkConfig Property Map
    Network configuration for the AgentGateway. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    protocols List<String>

    (Optional, Deprecated) List of protocols supported by an Agent Gateway. Each value may be one of: MCP.

    Warning: protocols is deprecated and will be removed in a future major release.

    Deprecated: protocols is deprecated and will be removed in a future major release.

    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    registries List<String>
    A list of Agent registries containing the agents, MCP servers and tools governed by the Agent Gateway. Note: Currently limited to project-scoped registries Must be of format //agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}
    selfManaged Property Map
    Configuration for Self Managed deployment mode. Attach to existing Application Load Balancers or Secure Web Proxies. Structure is documented below.
    updateTime String
    The timestamp when the resource was updated.

    Supporting Types

    AgentGatewayAgentGatewayCard, AgentGatewayAgentGatewayCardArgs

    MtlsEndpoint string
    (Output) mTLS Endpoint associated with this AgentGateway.
    RootCertificates List<string>
    (Output) Root Certificates for Agents to validate this AgentGateway.
    ServiceExtensionsServiceAccount string
    (Output) Service Account used by Service Extensions to operate.
    MtlsEndpoint string
    (Output) mTLS Endpoint associated with this AgentGateway.
    RootCertificates []string
    (Output) Root Certificates for Agents to validate this AgentGateway.
    ServiceExtensionsServiceAccount string
    (Output) Service Account used by Service Extensions to operate.
    mtls_endpoint string
    (Output) mTLS Endpoint associated with this AgentGateway.
    root_certificates list(string)
    (Output) Root Certificates for Agents to validate this AgentGateway.
    service_extensions_service_account string
    (Output) Service Account used by Service Extensions to operate.
    mtlsEndpoint String
    (Output) mTLS Endpoint associated with this AgentGateway.
    rootCertificates List<String>
    (Output) Root Certificates for Agents to validate this AgentGateway.
    serviceExtensionsServiceAccount String
    (Output) Service Account used by Service Extensions to operate.
    mtlsEndpoint string
    (Output) mTLS Endpoint associated with this AgentGateway.
    rootCertificates string[]
    (Output) Root Certificates for Agents to validate this AgentGateway.
    serviceExtensionsServiceAccount string
    (Output) Service Account used by Service Extensions to operate.
    mtls_endpoint str
    (Output) mTLS Endpoint associated with this AgentGateway.
    root_certificates Sequence[str]
    (Output) Root Certificates for Agents to validate this AgentGateway.
    service_extensions_service_account str
    (Output) Service Account used by Service Extensions to operate.
    mtlsEndpoint String
    (Output) mTLS Endpoint associated with this AgentGateway.
    rootCertificates List<String>
    (Output) Root Certificates for Agents to validate this AgentGateway.
    serviceExtensionsServiceAccount String
    (Output) Service Account used by Service Extensions to operate.

    AgentGatewayGoogleManaged, AgentGatewayGoogleManagedArgs

    GovernedAccessPath string
    Operating Mode of Agent Gateway. Possible values are: AGENT_TO_ANYWHERE, CLIENT_TO_AGENT.
    GovernedAccessPath string
    Operating Mode of Agent Gateway. Possible values are: AGENT_TO_ANYWHERE, CLIENT_TO_AGENT.
    governed_access_path string
    Operating Mode of Agent Gateway. Possible values are: AGENT_TO_ANYWHERE, CLIENT_TO_AGENT.
    governedAccessPath String
    Operating Mode of Agent Gateway. Possible values are: AGENT_TO_ANYWHERE, CLIENT_TO_AGENT.
    governedAccessPath string
    Operating Mode of Agent Gateway. Possible values are: AGENT_TO_ANYWHERE, CLIENT_TO_AGENT.
    governed_access_path str
    Operating Mode of Agent Gateway. Possible values are: AGENT_TO_ANYWHERE, CLIENT_TO_AGENT.
    governedAccessPath String
    Operating Mode of Agent Gateway. Possible values are: AGENT_TO_ANYWHERE, CLIENT_TO_AGENT.

    AgentGatewayNetworkConfig, AgentGatewayNetworkConfigArgs

    Egress AgentGatewayNetworkConfigEgress
    Optional PSC-Interface network attachment for connectivity to your private VPCs network. Structure is documented below.
    DnsPeeringConfig AgentGatewayNetworkConfigDnsPeeringConfig
    DNS peering configuration for the AgentGateway. When set, the AgentGateway will resolve queries for the configured domains via Cloud DNS in the specified targetNetwork. Structure is documented below.
    Egress AgentGatewayNetworkConfigEgress
    Optional PSC-Interface network attachment for connectivity to your private VPCs network. Structure is documented below.
    DnsPeeringConfig AgentGatewayNetworkConfigDnsPeeringConfig
    DNS peering configuration for the AgentGateway. When set, the AgentGateway will resolve queries for the configured domains via Cloud DNS in the specified targetNetwork. Structure is documented below.
    egress object
    Optional PSC-Interface network attachment for connectivity to your private VPCs network. Structure is documented below.
    dns_peering_config object
    DNS peering configuration for the AgentGateway. When set, the AgentGateway will resolve queries for the configured domains via Cloud DNS in the specified targetNetwork. Structure is documented below.
    egress AgentGatewayNetworkConfigEgress
    Optional PSC-Interface network attachment for connectivity to your private VPCs network. Structure is documented below.
    dnsPeeringConfig AgentGatewayNetworkConfigDnsPeeringConfig
    DNS peering configuration for the AgentGateway. When set, the AgentGateway will resolve queries for the configured domains via Cloud DNS in the specified targetNetwork. Structure is documented below.
    egress AgentGatewayNetworkConfigEgress
    Optional PSC-Interface network attachment for connectivity to your private VPCs network. Structure is documented below.
    dnsPeeringConfig AgentGatewayNetworkConfigDnsPeeringConfig
    DNS peering configuration for the AgentGateway. When set, the AgentGateway will resolve queries for the configured domains via Cloud DNS in the specified targetNetwork. Structure is documented below.
    egress AgentGatewayNetworkConfigEgress
    Optional PSC-Interface network attachment for connectivity to your private VPCs network. Structure is documented below.
    dns_peering_config AgentGatewayNetworkConfigDnsPeeringConfig
    DNS peering configuration for the AgentGateway. When set, the AgentGateway will resolve queries for the configured domains via Cloud DNS in the specified targetNetwork. Structure is documented below.
    egress Property Map
    Optional PSC-Interface network attachment for connectivity to your private VPCs network. Structure is documented below.
    dnsPeeringConfig Property Map
    DNS peering configuration for the AgentGateway. When set, the AgentGateway will resolve queries for the configured domains via Cloud DNS in the specified targetNetwork. Structure is documented below.

    AgentGatewayNetworkConfigDnsPeeringConfig, AgentGatewayNetworkConfigDnsPeeringConfigArgs

    Domains List<string>
    The list of domain names to peer for DNS resolution. Each entry must be a fully qualified domain name ending with a dot (for example, example.com.).
    TargetNetwork string
    The URI of the target VPC network for DNS peering. Must be of the form projects/{project}/global/networks/{network}.
    TargetProject string
    The ID of the project that hosts the target VPC network for DNS peering.
    Domains []string
    The list of domain names to peer for DNS resolution. Each entry must be a fully qualified domain name ending with a dot (for example, example.com.).
    TargetNetwork string
    The URI of the target VPC network for DNS peering. Must be of the form projects/{project}/global/networks/{network}.
    TargetProject string
    The ID of the project that hosts the target VPC network for DNS peering.
    domains list(string)
    The list of domain names to peer for DNS resolution. Each entry must be a fully qualified domain name ending with a dot (for example, example.com.).
    target_network string
    The URI of the target VPC network for DNS peering. Must be of the form projects/{project}/global/networks/{network}.
    target_project string
    The ID of the project that hosts the target VPC network for DNS peering.
    domains List<String>
    The list of domain names to peer for DNS resolution. Each entry must be a fully qualified domain name ending with a dot (for example, example.com.).
    targetNetwork String
    The URI of the target VPC network for DNS peering. Must be of the form projects/{project}/global/networks/{network}.
    targetProject String
    The ID of the project that hosts the target VPC network for DNS peering.
    domains string[]
    The list of domain names to peer for DNS resolution. Each entry must be a fully qualified domain name ending with a dot (for example, example.com.).
    targetNetwork string
    The URI of the target VPC network for DNS peering. Must be of the form projects/{project}/global/networks/{network}.
    targetProject string
    The ID of the project that hosts the target VPC network for DNS peering.
    domains Sequence[str]
    The list of domain names to peer for DNS resolution. Each entry must be a fully qualified domain name ending with a dot (for example, example.com.).
    target_network str
    The URI of the target VPC network for DNS peering. Must be of the form projects/{project}/global/networks/{network}.
    target_project str
    The ID of the project that hosts the target VPC network for DNS peering.
    domains List<String>
    The list of domain names to peer for DNS resolution. Each entry must be a fully qualified domain name ending with a dot (for example, example.com.).
    targetNetwork String
    The URI of the target VPC network for DNS peering. Must be of the form projects/{project}/global/networks/{network}.
    targetProject String
    The ID of the project that hosts the target VPC network for DNS peering.

    AgentGatewayNetworkConfigEgress, AgentGatewayNetworkConfigEgressArgs

    NetworkAttachment string
    The URI of the Network Attachment resource.
    NetworkAttachment string
    The URI of the Network Attachment resource.
    network_attachment string
    The URI of the Network Attachment resource.
    networkAttachment String
    The URI of the Network Attachment resource.
    networkAttachment string
    The URI of the Network Attachment resource.
    network_attachment str
    The URI of the Network Attachment resource.
    networkAttachment String
    The URI of the Network Attachment resource.

    AgentGatewaySelfManaged, AgentGatewaySelfManagedArgs

    ResourceUri string
    A supported Google Cloud networking proxy in the Project and Location.
    ResourceUri string
    A supported Google Cloud networking proxy in the Project and Location.
    resource_uri string
    A supported Google Cloud networking proxy in the Project and Location.
    resourceUri String
    A supported Google Cloud networking proxy in the Project and Location.
    resourceUri string
    A supported Google Cloud networking proxy in the Project and Location.
    resource_uri str
    A supported Google Cloud networking proxy in the Project and Location.
    resourceUri String
    A supported Google Cloud networking proxy in the Project and Location.

    Import

    AgentGateway can be imported using any of these accepted formats:

    • projects/{{project}}/locations/{{location}}/agentGateways/{{name}}
    • {{project}}/{{location}}/{{name}}
    • {{location}}/{{name}}

    When using the pulumi import command, AgentGateway can be imported using one of the formats above. For example:

    $ pulumi import gcp:networkservices/agentGateway:AgentGateway default projects/{{project}}/locations/{{location}}/agentGateways/{{name}}
    $ pulumi import gcp:networkservices/agentGateway:AgentGateway default {{project}}/{{location}}/{{name}}
    $ pulumi import gcp:networkservices/agentGateway:AgentGateway default {{location}}/{{name}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Viewing docs for Google Cloud v9.29.0
    published on Wednesday, Jun 24, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial