# KubernetesGatewayResource

- Kind: `class`
- Package: [Aspire.Hosting.Kubernetes](/reference/api/csharp/aspire.hosting.kubernetes.md)
- Version: `13.3.0-preview.1.26254.5`
- Namespace: `Aspire.Hosting.Kubernetes`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Kubernetes/KubernetesGatewayResource.cs)
- Inherits: `Resource`
- Implements: `IResource`, `IResourceWithParent`, `IResourceWithParent<KubernetesEnvironmentResource>`

Represents a Kubernetes Gateway API Gateway as a first-class resource in the Aspire application model. A Gateway defines listeners (ports, protocols, TLS) and HTTPRoutes attach to it for routing.

## Definition

```csharp
namespace Aspire.Hosting.Kubernetes;

public class KubernetesGatewayResource
    : Aspire.Hosting.ApplicationModel.Resource,
      Aspire.Hosting.ApplicationModel.IResource,
      Aspire.Hosting.ApplicationModel.IResourceWithParent,
      Aspire.Hosting.ApplicationModel.IResourceWithParent<Aspire.Hosting.Kubernetes.KubernetesEnvironmentResource>
{
    // ...
}
```

## ATS metadata

### ATS export

- Type ID: `Aspire.Hosting.Kubernetes/KubernetesGatewayResource`

## Remarks

Create a gateway using [KubernetesGatewayExtensions.AddGateway(IResourceBuilder<KubernetesEnvironmentResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesgatewayextensions/methods.md#addgateway-iresourcebuilder-kubernetesenvironmentresource-string) and configure routes using [KubernetesGatewayExtensions.WithRoute(IResourceBuilder<KubernetesGatewayResource>, string, EndpointReference, IngressPathType)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesgatewayextensions/methods.md#withroute-iresourcebuilder-kubernetesgatewayresource-string-endpointreference-ingresspathtype).

At publish time, the gateway generates a `gateway.networking.k8s.io/v1 Gateway` resource with auto-inferred listeners and one or more `HTTPRoute` resources in the Helm chart output.

## Constructors

- [KubernetesGatewayResource(string, KubernetesEnvironmentResource)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesgatewayresource/constructors.md#constructor-string-kubernetesenvironmentresource) -- Represents a Kubernetes Gateway API Gateway as a first-class resource in the Aspire application model. A Gateway defines listeners (ports, protocols, TLS) and HTTPRoutes attach to it for routing.

## Properties

- [GatewayClassName](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesgatewayresource/properties.md#gatewayclassname) : `ReferenceExpression?` `get; set` -- Gets or sets the GatewayClass name that selects which controller implementation handles this gateway.
- [Parent](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesgatewayresource/properties.md#parent) : [KubernetesEnvironmentResource](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesenvironmentresource.md) `get` -- Gets the parent Kubernetes environment resource.

## Examples

```csharp
var k8s = builder.AddKubernetesEnvironment("k8s");
var gateway = k8s.AddGateway("public")
    .WithGatewayClass("azure-alb-external");

var api = builder.AddProject<MyApi>("api");
gateway.WithRoute("/api", api.GetEndpoint("http"));
```
