# GatewayClass

> API reference for Gateway Classes (gateway.apoxy.dev/v1)

**API Group:** `gateway.apoxy.dev/v1`

## Operations

### List Gateway Classes

<APIEndpoint method="GET" path="/apis/gateway.apoxy.dev/v1/gatewayclasses" />

List GatewayClass

**Response**

- `200`: OK

---

### Create Gateway Class

<APIEndpoint method="POST" path="/apis/gateway.apoxy.dev/v1/gatewayclasses" />

Create a GatewayClass

**Request Body**

Spec fields (`GatewayClassSpec`):

| Field | Type | Description |
| --- | --- | --- |
| `controllerName` | string | ControllerName is the name of the controller that is managing Gateways of this class. The value of this field MUST be a domain prefixed path.  Example: "example.net/gateway-controller".  This field is not mutable and cannot be empty.  Support: Core **(required)** |
| `description` | string | Description helps describe a GatewayClass with more details. |
| `parametersRef` | [ParametersReference](#parametersreference) | ParametersRef is a reference to a resource that contains the configuration parameters corresponding to the GatewayClass. This is optional if the controller does not require any additional configuration.  ParametersRef can reference a standard Kubernetes resource, i.e. ConfigMap, or an implementation-specific custom resource. The resource can be cluster-scoped or namespace-scoped.  If the referent cannot be found, refers to an unsupported kind, or when the data within that resource is malformed, the GatewayClass SHOULD be rejected with the "Accepted" status condition set to "False" and an "InvalidParameters" reason.  A Gateway for this GatewayClass may provide its own `parametersRef`. When both are specified, the merging behavior is implementation specific. It is generally recommended that GatewayClass provides defaults that can be overridden by a Gateway.  Support: Implementation-specific |

**Response**

- `200`: OK
- `201`: Created
- `202`: Accepted

---

### Delete All Gateway Classes

<APIEndpoint method="DELETE" path="/apis/gateway.apoxy.dev/v1/gatewayclasses" />

Delete collection of GatewayClass

**Response**

- `200`: OK

---

### Get Gateway Class

<APIEndpoint method="GET" path="/apis/gateway.apoxy.dev/v1/gatewayclasses/{name}" />

Get the specified GatewayClass

**Response**

- `200`: OK

---

### Replace Gateway Class

<APIEndpoint method="PUT" path="/apis/gateway.apoxy.dev/v1/gatewayclasses/{name}" />

Replace the specified GatewayClass

**Request Body**

Spec fields (`GatewayClassSpec`):

| Field | Type | Description |
| --- | --- | --- |
| `controllerName` | string | ControllerName is the name of the controller that is managing Gateways of this class. The value of this field MUST be a domain prefixed path.  Example: "example.net/gateway-controller".  This field is not mutable and cannot be empty.  Support: Core **(required)** |
| `description` | string | Description helps describe a GatewayClass with more details. |
| `parametersRef` | [ParametersReference](#parametersreference) | ParametersRef is a reference to a resource that contains the configuration parameters corresponding to the GatewayClass. This is optional if the controller does not require any additional configuration.  ParametersRef can reference a standard Kubernetes resource, i.e. ConfigMap, or an implementation-specific custom resource. The resource can be cluster-scoped or namespace-scoped.  If the referent cannot be found, refers to an unsupported kind, or when the data within that resource is malformed, the GatewayClass SHOULD be rejected with the "Accepted" status condition set to "False" and an "InvalidParameters" reason.  A Gateway for this GatewayClass may provide its own `parametersRef`. When both are specified, the merging behavior is implementation specific. It is generally recommended that GatewayClass provides defaults that can be overridden by a Gateway.  Support: Implementation-specific |

**Response**

- `200`: OK
- `201`: Created

---

### Update Gateway Class

<APIEndpoint method="PATCH" path="/apis/gateway.apoxy.dev/v1/gatewayclasses/{name}" />

Partially update the specified GatewayClass

**Response**

- `200`: OK
- `201`: Created

---

### Delete Gateway Class

<APIEndpoint method="DELETE" path="/apis/gateway.apoxy.dev/v1/gatewayclasses/{name}" />

Delete a GatewayClass

**Response**

- `200`: OK
- `202`: Accepted

---

## Schema Reference

### ParametersReference

| Field | Type | Description |
| --- | --- | --- |
| `group` | string | Group is the group of the referent. **(required)** |
| `name` | string | Name is the name of the referent. **(required)** |
| `namespace` | string | Namespace is the namespace of the referent. This field is required when referring to a Namespace-scoped resource and MUST be unset when referring to a Cluster-scoped resource. |
