Download OpenAPI specification:Download
API for managing Kubernetes Gateway API resources
| username required | string |
| password required | string |
{- "username": "string",
- "password": "string"
}{- "accessToken": "string",
- "refreshToken": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| refreshToken required | string |
{- "refreshToken": "string"
}{- "accessToken": "string",
- "refreshToken": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "authMethod": "string"
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "name": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
]| name required | string |
| expiresAt | string <date-time> |
{- "name": "string",
- "expiresAt": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "token": "string",
- "expiresAt": "2019-08-24T14:15:22Z"
}| currentPassword required | string The user's current password |
| newPassword required | string >= 8 characters The new password (minimum 8 characters) |
{- "currentPassword": "string",
- "newPassword": "stringst"
}{- "message": "Password changed successfully"
}| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
| role | string Enum: "owner" "user" |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}| username required | string |
| email required | string <email> |
| password required | string |
| role required | string Enum: "owner" "user" |
{- "username": "string",
- "email": "user@example.com",
- "password": "string",
- "role": "owner"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| userId required | string <uuid> |
string <email> | |
| password | string |
| isActive | boolean |
{- "email": "user@example.com",
- "password": "string",
- "isActive": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "connectionType": "in_cluster",
- "k8sApiUrl": "string",
- "k8sTlsSkipVerify": true,
- "isConnected": true,
- "lastConnectedAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "domainCount": 0,
- "routeCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "approvalEnabled": true,
- "selfApprovalAllowed": true,
- "metricsEndpointUrl": "string",
- "metricsAuthType": "none",
- "metricsUsername": "string",
- "metricsTlsSkipVerify": true,
- "metricsCaCert": "string"
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}| name required | string |
| description | string |
| connectionType | string Enum: "in_cluster" "kubeconfig" "api_token" Kubernetes connection type. The wire values use underscores (e.g. |
| kubeconfig | string Kubeconfig content (for connectionType=kubeconfig) |
| k8sApiUrl | string Kubernetes API URL (for connectionType=api_token) |
| k8sToken | string Kubernetes bearer token (for connectionType=api_token) |
| tlsVerification | string Enum: "system_ca" "custom_ca" "skip" TLS verification mode for the K8s API (connectionType=api_token only). Defaults to |
| k8sCaCert | string Custom CA certificate PEM (required when tlsVerification=custom_ca) |
object (Labels) Arbitrary key/value labels (Kubernetes-style) attached to a resource. |
{- "name": "string",
- "description": "string",
- "connectionType": "in_cluster",
- "kubeconfig": "string",
- "k8sApiUrl": "string",
- "k8sToken": "string",
- "tlsVerification": "system_ca",
- "k8sCaCert": "string",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "connectionType": "in_cluster",
- "k8sApiUrl": "string",
- "k8sTlsSkipVerify": true,
- "isConnected": true,
- "lastConnectedAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "domainCount": 0,
- "routeCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "approvalEnabled": true,
- "selfApprovalAllowed": true,
- "metricsEndpointUrl": "string",
- "metricsAuthType": "none",
- "metricsUsername": "string",
- "metricsTlsSkipVerify": true,
- "metricsCaCert": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "connectionType": "in_cluster",
- "k8sApiUrl": "string",
- "k8sTlsSkipVerify": true,
- "isConnected": true,
- "lastConnectedAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "domainCount": 0,
- "routeCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "approvalEnabled": true,
- "selfApprovalAllowed": true,
- "metricsEndpointUrl": "string",
- "metricsAuthType": "none",
- "metricsUsername": "string",
- "metricsTlsSkipVerify": true,
- "metricsCaCert": "string"
}| projectId required | string <uuid> |
| name | string |
| description | string |
| kubeconfig | string Kubeconfig content (for connectionType=kubeconfig) |
| k8sApiUrl | string Kubernetes API URL (for connectionType=api_token) |
| k8sToken | string Kubernetes bearer token (for connectionType=api_token) |
| tlsVerification | string Enum: "system_ca" "custom_ca" "skip" TLS verification mode for the K8s API (connectionType=api_token only) |
| k8sCaCert | string Custom CA certificate PEM (required when tlsVerification=custom_ca) |
object (Labels) Arbitrary key/value labels (Kubernetes-style) attached to a resource. | |
| approvalEnabled | boolean Whether route changes in this project require approval |
| selfApprovalAllowed | boolean Whether the author of a change may also approve it |
| metricsEndpointUrl | string Prometheus/VictoriaMetrics-compatible metrics endpoint URL |
| metricsAuthType | string Enum: "none" "bearer" "basic" Authentication method for the metrics endpoint |
| metricsUsername | string Username for basic auth against the metrics endpoint |
| metricsPassword | string Password for basic auth against the metrics endpoint. Write-only; encrypted at rest and never returned. |
| metricsToken | string Bearer token for the metrics endpoint. Write-only; encrypted at rest and never returned. |
| metricsTlsSkipVerify | boolean Whether TLS verification of the metrics endpoint is skipped |
| metricsCaCert | string Custom CA certificate PEM for the metrics endpoint |
{- "name": "string",
- "description": "string",
- "kubeconfig": "string",
- "k8sApiUrl": "string",
- "k8sToken": "string",
- "tlsVerification": "system_ca",
- "k8sCaCert": "string",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "approvalEnabled": true,
- "selfApprovalAllowed": true,
- "metricsEndpointUrl": "string",
- "metricsAuthType": "none",
- "metricsUsername": "string",
- "metricsPassword": "string",
- "metricsToken": "string",
- "metricsTlsSkipVerify": true,
- "metricsCaCert": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "connectionType": "in_cluster",
- "k8sApiUrl": "string",
- "k8sTlsSkipVerify": true,
- "isConnected": true,
- "lastConnectedAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "domainCount": 0,
- "routeCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "approvalEnabled": true,
- "selfApprovalAllowed": true,
- "metricsEndpointUrl": "string",
- "metricsAuthType": "none",
- "metricsUsername": "string",
- "metricsTlsSkipVerify": true,
- "metricsCaCert": "string"
}Returns the cached (or freshly-detected, if the cache is cold or expired) version-compatibility info for the project's cluster.
| projectId required | string <uuid> |
{- "status": "supported",
- "envoyGateway": {
- "version": "string",
- "image": "string",
- "source": "string",
- "detected": true,
- "error": "string"
}, - "gatewayAPI": {
- "version": "string",
- "image": "string",
- "source": "string",
- "detected": true,
- "error": "string"
}, - "supportedPairs": [
- {
- "envoyGateway": "1.8.4",
- "gatewayAPI": "1.5.1"
}
], - "checkedAt": "2019-08-24T14:15:22Z",
- "cacheExpiresAt": "2019-08-24T14:15:22Z"
}Drops the cached version info for the project, then immediately re-detects and re-caches it.
| projectId required | string <uuid> |
{- "status": "supported",
- "envoyGateway": {
- "version": "string",
- "image": "string",
- "source": "string",
- "detected": true,
- "error": "string"
}, - "gatewayAPI": {
- "version": "string",
- "image": "string",
- "source": "string",
- "detected": true,
- "error": "string"
}, - "supportedPairs": [
- {
- "envoyGateway": "1.8.4",
- "gatewayAPI": "1.5.1"
}
], - "checkedAt": "2019-08-24T14:15:22Z",
- "cacheExpiresAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
{- "canManageDomainTemplates": true,
- "canManageDomains": true,
- "canManageTeams": true,
- "canCreateRoutes": true,
- "canApproveRoutes": true,
- "canViewAudit": true,
- "permissions": [
- "string"
], - "isOwner": true,
- "isProjectAdmin": true
}| projectId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]Returns all users who have access to the project (admins, team members, etc.)
| projectId required | string <uuid> |
| search | string Free-text search term to filter members |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]| projectId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "presets": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectTeamRoleId": "19b57d86-bf4a-4b81-b4cb-b339a8296680",
- "presetId": "b5328e39-941d-4ef5-aaa6-ea546cf8450f",
- "preset": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "effectivePermissions": [
- "string"
], - "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
][- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]| name required | string |
| description | string |
{- "name": "string",
- "description": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| teamId required | string <uuid> |
| name | string |
| description | string |
{- "name": "string",
- "description": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]| teamId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "presets": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectTeamRoleId": "19b57d86-bf4a-4b81-b4cb-b339a8296680",
- "presetId": "b5328e39-941d-4ef5-aaa6-ea546cf8450f",
- "preset": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "effectivePermissions": [
- "string"
], - "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]If user exists, adds directly. If not, creates a pending invite.
| teamId required | string <uuid> |
| email required | string <email> |
{- "email": "user@example.com"
}{- "type": "added",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "invite": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "email": "string",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "createdAt": "2019-08-24T14:15:22Z",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "inviter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}
}| teamId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "email": "string",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "createdAt": "2019-08-24T14:15:22Z",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "inviter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}
]| projectId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "presets": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectTeamRoleId": "19b57d86-bf4a-4b81-b4cb-b339a8296680",
- "presetId": "b5328e39-941d-4ef5-aaa6-ea546cf8450f",
- "preset": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "effectivePermissions": [
- "string"
], - "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]| projectId required | string <uuid> |
| teamId required | string <uuid> |
| presetIds required | Array of strings <uuid> non-empty [ items <uuid > ] |
{- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "presetIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "presets": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectTeamRoleId": "19b57d86-bf4a-4b81-b4cb-b339a8296680",
- "presetId": "b5328e39-941d-4ef5-aaa6-ea546cf8450f",
- "preset": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "effectivePermissions": [
- "string"
], - "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| teamId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "presets": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectTeamRoleId": "19b57d86-bf4a-4b81-b4cb-b339a8296680",
- "presetId": "b5328e39-941d-4ef5-aaa6-ea546cf8450f",
- "preset": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "effectivePermissions": [
- "string"
], - "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| teamId required | string <uuid> |
| presetIds required | Array of strings <uuid> non-empty [ items <uuid > ] |
{- "presetIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "presets": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectTeamRoleId": "19b57d86-bf4a-4b81-b4cb-b339a8296680",
- "presetId": "b5328e39-941d-4ef5-aaa6-ea546cf8450f",
- "preset": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "effectivePermissions": [
- "string"
], - "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "controllerName": "string",
- "exposureType": "LoadBalancer",
- "tlsMode": "tls_only",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsPolicy": "terminate",
- "externalTrafficPolicy": "Cluster",
- "loadBalancerClass": "string",
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "podAnnotations": {
- "property1": "string",
- "property2": "string"
}, - "containerResources": {
- "requests": {
- "cpu": "string",
- "memory": "string"
}, - "limits": {
- "cpu": "string",
- "memory": "string"
}
}, - "scalingConfig": {
- "type": "fixed",
- "replicas": 0,
- "minReplicas": 0,
- "maxReplicas": 0
}, - "mergeGateways": true,
- "telemetryAccessLog": {
- "format": {
- "type": "text",
- "text": "string",
- "json": {
- "property1": "string",
- "property2": "string"
}
}, - "sink": {
- "type": "file",
- "file": {
- "path": "string"
}, - "otel": {
- "namespace": "string",
- "service": "string",
- "port": 0
}
}
}, - "telemetryTracing": {
- "samplingRate": 0.1,
- "provider": {
- "namespace": "string",
- "service": "string",
- "port": 0
}, - "customTags": [
- {
- "type": "literal",
- "tag": "string",
- "value": "string",
- "header": "string",
- "defaultValue": "string"
}
]
}, - "telemetryMetrics": {
- "prometheus": {
- "disable": true
}, - "enableVirtualHostStats": true,
- "enablePerEndpointStats": true,
- "sinks": [
- {
- "type": "openTelemetry",
- "namespace": "string",
- "service": "string",
- "port": 0
}
]
}, - "podPlacement": {
- "nodeSelector": {
- "property1": "string",
- "property2": "string"
}, - "tolerations": [
- {
- "key": "string",
- "operator": "string",
- "value": "string",
- "effect": "string",
- "tolerationSeconds": 0
}
], - "topologySpreadConstraints": [
- {
- "maxSkew": 0,
- "topologyKey": "string",
- "whenUnsatisfiable": "string"
}
], - "priorityClassName": "string"
}, - "pdbConfig": {
- "kind": "minAvailable",
- "value": "string"
}, - "deploymentStrategy": {
- "type": "RollingUpdate",
- "rollingUpdate": {
- "maxSurge": "string",
- "maxUnavailable": "string"
}
}, - "status": "pending",
- "statusMessage": "string",
- "k8sGatewayClassName": "string",
- "k8sEnvoyProxyName": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}| projectId required | string <uuid> |
| name required | string |
| description | string |
| controllerName | string Default: "gateway.envoyproxy.io/gatewayclass-controller" |
| exposureType required | string Enum: "LoadBalancer" "ClusterIP" |
| tlsMode required | string Enum: "tls_only" "no_tls" "both" |
| httpPort | integer Default: 80 |
| httpsPort | integer Default: 443 |
| tlsPolicy | string Default: "terminate" Enum: "terminate" "passthrough" |
| externalTrafficPolicy | string Enum: "Cluster" "Local" |
| loadBalancerClass | string |
object | |
object Annotations applied to the Envoy proxy pods | |
object (ContainerResourcesConfig) Container resource requests and limits for the Envoy proxy container | |
object (ScalingConfig) Scaling configuration - fixed replica count, or HPA-managed | |
| mergeGateways | boolean Merge all Gateways using this template into a single Envoy Deployment/Service |
object (TelemetryAccessLogConfig) Access log configuration (spec.telemetry.accessLog) | |
object (TelemetryTracingConfig) Tracing configuration (spec.telemetry.tracing) | |
object (TelemetryMetricsConfig) Metrics configuration (spec.telemetry.metrics) | |
object (PodPlacementConfig) | |
object (PDBConfig) PodDisruptionBudget configuration - exactly one of minAvailable/maxUnavailable, selected by "kind" | |
object (DeploymentStrategyConfig) |
{- "name": "string",
- "description": "string",
- "controllerName": "gateway.envoyproxy.io/gatewayclass-controller",
- "exposureType": "LoadBalancer",
- "tlsMode": "tls_only",
- "httpPort": 80,
- "httpsPort": 443,
- "tlsPolicy": "terminate",
- "externalTrafficPolicy": "Cluster",
- "loadBalancerClass": "string",
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "podAnnotations": {
- "property1": "string",
- "property2": "string"
}, - "containerResources": {
- "requests": {
- "cpu": "string",
- "memory": "string"
}, - "limits": {
- "cpu": "string",
- "memory": "string"
}
}, - "scalingConfig": {
- "type": "fixed",
- "replicas": 0,
- "minReplicas": 0,
- "maxReplicas": 0
}, - "mergeGateways": true,
- "telemetryAccessLog": {
- "format": {
- "type": "text",
- "text": "string",
- "json": {
- "property1": "string",
- "property2": "string"
}
}, - "sink": {
- "type": "file",
- "file": {
- "path": "string"
}, - "otel": {
- "namespace": "string",
- "service": "string",
- "port": 0
}
}
}, - "telemetryTracing": {
- "samplingRate": 0.1,
- "provider": {
- "namespace": "string",
- "service": "string",
- "port": 0
}, - "customTags": [
- {
- "type": "literal",
- "tag": "string",
- "value": "string",
- "header": "string",
- "defaultValue": "string"
}
]
}, - "telemetryMetrics": {
- "prometheus": {
- "disable": true
}, - "enableVirtualHostStats": true,
- "enablePerEndpointStats": true,
- "sinks": [
- {
- "type": "openTelemetry",
- "namespace": "string",
- "service": "string",
- "port": 0
}
]
}, - "podPlacement": {
- "nodeSelector": {
- "property1": "string",
- "property2": "string"
}, - "tolerations": [
- {
- "key": "string",
- "operator": "string",
- "value": "string",
- "effect": "string",
- "tolerationSeconds": 0
}
], - "topologySpreadConstraints": [
- {
- "maxSkew": 0,
- "topologyKey": "string",
- "whenUnsatisfiable": "string"
}
], - "priorityClassName": "string"
}, - "pdbConfig": {
- "kind": "minAvailable",
- "value": "string"
}, - "deploymentStrategy": {
- "type": "RollingUpdate",
- "rollingUpdate": {
- "maxSurge": "string",
- "maxUnavailable": "string"
}
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "controllerName": "string",
- "exposureType": "LoadBalancer",
- "tlsMode": "tls_only",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsPolicy": "terminate",
- "externalTrafficPolicy": "Cluster",
- "loadBalancerClass": "string",
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "podAnnotations": {
- "property1": "string",
- "property2": "string"
}, - "containerResources": {
- "requests": {
- "cpu": "string",
- "memory": "string"
}, - "limits": {
- "cpu": "string",
- "memory": "string"
}
}, - "scalingConfig": {
- "type": "fixed",
- "replicas": 0,
- "minReplicas": 0,
- "maxReplicas": 0
}, - "mergeGateways": true,
- "telemetryAccessLog": {
- "format": {
- "type": "text",
- "text": "string",
- "json": {
- "property1": "string",
- "property2": "string"
}
}, - "sink": {
- "type": "file",
- "file": {
- "path": "string"
}, - "otel": {
- "namespace": "string",
- "service": "string",
- "port": 0
}
}
}, - "telemetryTracing": {
- "samplingRate": 0.1,
- "provider": {
- "namespace": "string",
- "service": "string",
- "port": 0
}, - "customTags": [
- {
- "type": "literal",
- "tag": "string",
- "value": "string",
- "header": "string",
- "defaultValue": "string"
}
]
}, - "telemetryMetrics": {
- "prometheus": {
- "disable": true
}, - "enableVirtualHostStats": true,
- "enablePerEndpointStats": true,
- "sinks": [
- {
- "type": "openTelemetry",
- "namespace": "string",
- "service": "string",
- "port": 0
}
]
}, - "podPlacement": {
- "nodeSelector": {
- "property1": "string",
- "property2": "string"
}, - "tolerations": [
- {
- "key": "string",
- "operator": "string",
- "value": "string",
- "effect": "string",
- "tolerationSeconds": 0
}
], - "topologySpreadConstraints": [
- {
- "maxSkew": 0,
- "topologyKey": "string",
- "whenUnsatisfiable": "string"
}
], - "priorityClassName": "string"
}, - "pdbConfig": {
- "kind": "minAvailable",
- "value": "string"
}, - "deploymentStrategy": {
- "type": "RollingUpdate",
- "rollingUpdate": {
- "maxSurge": "string",
- "maxUnavailable": "string"
}
}, - "status": "pending",
- "statusMessage": "string",
- "k8sGatewayClassName": "string",
- "k8sEnvoyProxyName": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainTemplateId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "controllerName": "string",
- "exposureType": "LoadBalancer",
- "tlsMode": "tls_only",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsPolicy": "terminate",
- "externalTrafficPolicy": "Cluster",
- "loadBalancerClass": "string",
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "podAnnotations": {
- "property1": "string",
- "property2": "string"
}, - "containerResources": {
- "requests": {
- "cpu": "string",
- "memory": "string"
}, - "limits": {
- "cpu": "string",
- "memory": "string"
}
}, - "scalingConfig": {
- "type": "fixed",
- "replicas": 0,
- "minReplicas": 0,
- "maxReplicas": 0
}, - "mergeGateways": true,
- "telemetryAccessLog": {
- "format": {
- "type": "text",
- "text": "string",
- "json": {
- "property1": "string",
- "property2": "string"
}
}, - "sink": {
- "type": "file",
- "file": {
- "path": "string"
}, - "otel": {
- "namespace": "string",
- "service": "string",
- "port": 0
}
}
}, - "telemetryTracing": {
- "samplingRate": 0.1,
- "provider": {
- "namespace": "string",
- "service": "string",
- "port": 0
}, - "customTags": [
- {
- "type": "literal",
- "tag": "string",
- "value": "string",
- "header": "string",
- "defaultValue": "string"
}
]
}, - "telemetryMetrics": {
- "prometheus": {
- "disable": true
}, - "enableVirtualHostStats": true,
- "enablePerEndpointStats": true,
- "sinks": [
- {
- "type": "openTelemetry",
- "namespace": "string",
- "service": "string",
- "port": 0
}
]
}, - "podPlacement": {
- "nodeSelector": {
- "property1": "string",
- "property2": "string"
}, - "tolerations": [
- {
- "key": "string",
- "operator": "string",
- "value": "string",
- "effect": "string",
- "tolerationSeconds": 0
}
], - "topologySpreadConstraints": [
- {
- "maxSkew": 0,
- "topologyKey": "string",
- "whenUnsatisfiable": "string"
}
], - "priorityClassName": "string"
}, - "pdbConfig": {
- "kind": "minAvailable",
- "value": "string"
}, - "deploymentStrategy": {
- "type": "RollingUpdate",
- "rollingUpdate": {
- "maxSurge": "string",
- "maxUnavailable": "string"
}
}, - "status": "pending",
- "statusMessage": "string",
- "k8sGatewayClassName": "string",
- "k8sEnvoyProxyName": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainTemplateId required | string <uuid> |
| description | string |
| externalTrafficPolicy | string Enum: "Cluster" "Local" |
| loadBalancerClass | string |
object | |
object Annotations applied to the Envoy proxy pods | |
object (ContainerResourcesConfig) Container resource requests and limits for the Envoy proxy container | |
object (ScalingConfig) Scaling configuration - fixed replica count, or HPA-managed | |
object (TelemetryAccessLogConfig) Access log configuration (spec.telemetry.accessLog) | |
object (TelemetryTracingConfig) Tracing configuration (spec.telemetry.tracing) | |
object (TelemetryMetricsConfig) Metrics configuration (spec.telemetry.metrics) | |
object (PodPlacementConfig) | |
object (PDBConfig) PodDisruptionBudget configuration - exactly one of minAvailable/maxUnavailable, selected by "kind" | |
object (DeploymentStrategyConfig) | |
| clearTelemetryAccessLog | boolean When true, clears the stored telemetryAccessLog config (JSON null is indistinguishable from absent) |
| clearTelemetryTracing | boolean When true, clears the stored telemetryTracing config |
| clearTelemetryMetrics | boolean When true, clears the stored telemetryMetrics config |
| clearPodPlacement | boolean When true, clears the stored podPlacement config |
| clearPdbConfig | boolean When true, clears the stored pdbConfig config |
| clearDeploymentStrategy | boolean When true, clears the stored deploymentStrategy config |
{- "description": "string",
- "externalTrafficPolicy": "Cluster",
- "loadBalancerClass": "string",
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "podAnnotations": {
- "property1": "string",
- "property2": "string"
}, - "containerResources": {
- "requests": {
- "cpu": "string",
- "memory": "string"
}, - "limits": {
- "cpu": "string",
- "memory": "string"
}
}, - "scalingConfig": {
- "type": "fixed",
- "replicas": 0,
- "minReplicas": 0,
- "maxReplicas": 0
}, - "telemetryAccessLog": {
- "format": {
- "type": "text",
- "text": "string",
- "json": {
- "property1": "string",
- "property2": "string"
}
}, - "sink": {
- "type": "file",
- "file": {
- "path": "string"
}, - "otel": {
- "namespace": "string",
- "service": "string",
- "port": 0
}
}
}, - "telemetryTracing": {
- "samplingRate": 0.1,
- "provider": {
- "namespace": "string",
- "service": "string",
- "port": 0
}, - "customTags": [
- {
- "type": "literal",
- "tag": "string",
- "value": "string",
- "header": "string",
- "defaultValue": "string"
}
]
}, - "telemetryMetrics": {
- "prometheus": {
- "disable": true
}, - "enableVirtualHostStats": true,
- "enablePerEndpointStats": true,
- "sinks": [
- {
- "type": "openTelemetry",
- "namespace": "string",
- "service": "string",
- "port": 0
}
]
}, - "podPlacement": {
- "nodeSelector": {
- "property1": "string",
- "property2": "string"
}, - "tolerations": [
- {
- "key": "string",
- "operator": "string",
- "value": "string",
- "effect": "string",
- "tolerationSeconds": 0
}
], - "topologySpreadConstraints": [
- {
- "maxSkew": 0,
- "topologyKey": "string",
- "whenUnsatisfiable": "string"
}
], - "priorityClassName": "string"
}, - "pdbConfig": {
- "kind": "minAvailable",
- "value": "string"
}, - "deploymentStrategy": {
- "type": "RollingUpdate",
- "rollingUpdate": {
- "maxSurge": "string",
- "maxUnavailable": "string"
}
}, - "clearTelemetryAccessLog": true,
- "clearTelemetryTracing": true,
- "clearTelemetryMetrics": true,
- "clearPodPlacement": true,
- "clearPdbConfig": true,
- "clearDeploymentStrategy": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "controllerName": "string",
- "exposureType": "LoadBalancer",
- "tlsMode": "tls_only",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsPolicy": "terminate",
- "externalTrafficPolicy": "Cluster",
- "loadBalancerClass": "string",
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "podAnnotations": {
- "property1": "string",
- "property2": "string"
}, - "containerResources": {
- "requests": {
- "cpu": "string",
- "memory": "string"
}, - "limits": {
- "cpu": "string",
- "memory": "string"
}
}, - "scalingConfig": {
- "type": "fixed",
- "replicas": 0,
- "minReplicas": 0,
- "maxReplicas": 0
}, - "mergeGateways": true,
- "telemetryAccessLog": {
- "format": {
- "type": "text",
- "text": "string",
- "json": {
- "property1": "string",
- "property2": "string"
}
}, - "sink": {
- "type": "file",
- "file": {
- "path": "string"
}, - "otel": {
- "namespace": "string",
- "service": "string",
- "port": 0
}
}
}, - "telemetryTracing": {
- "samplingRate": 0.1,
- "provider": {
- "namespace": "string",
- "service": "string",
- "port": 0
}, - "customTags": [
- {
- "type": "literal",
- "tag": "string",
- "value": "string",
- "header": "string",
- "defaultValue": "string"
}
]
}, - "telemetryMetrics": {
- "prometheus": {
- "disable": true
}, - "enableVirtualHostStats": true,
- "enablePerEndpointStats": true,
- "sinks": [
- {
- "type": "openTelemetry",
- "namespace": "string",
- "service": "string",
- "port": 0
}
]
}, - "podPlacement": {
- "nodeSelector": {
- "property1": "string",
- "property2": "string"
}, - "tolerations": [
- {
- "key": "string",
- "operator": "string",
- "value": "string",
- "effect": "string",
- "tolerationSeconds": 0
}
], - "topologySpreadConstraints": [
- {
- "maxSkew": 0,
- "topologyKey": "string",
- "whenUnsatisfiable": "string"
}
], - "priorityClassName": "string"
}, - "pdbConfig": {
- "kind": "minAvailable",
- "value": "string"
}, - "deploymentStrategy": {
- "type": "RollingUpdate",
- "rollingUpdate": {
- "maxSurge": "string",
- "maxUnavailable": "string"
}
}, - "status": "pending",
- "statusMessage": "string",
- "k8sGatewayClassName": "string",
- "k8sEnvoyProxyName": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainTemplateId required | string <uuid> |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "domainTemplateId": "8f5df8fe-3460-4807-8240-1ccc797bedbb",
- "name": "string",
- "hostname": "string",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsMode": "tls_only",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "tlsPolicy": "terminate",
- "namespace": "string",
- "k8sGatewayName": "string",
- "k8sGatewayClassName": "string",
- "status": "pending",
- "statusMessage": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "routeCount": 0,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| projectId required | string <uuid> |
| name required | string |
| description | string |
| controllerName | string |
| exposureType required | string Enum: "LoadBalancer" "ClusterIP" |
| tlsMode required | string Enum: "tls_only" "no_tls" "both" |
| httpPort | integer |
| httpsPort | integer |
| tlsPolicy | string Enum: "terminate" "passthrough" |
| externalTrafficPolicy | string Enum: "Cluster" "Local" |
| loadBalancerClass | string |
object | |
object | |
object (ContainerResourcesConfig) Container resource requests and limits for the Envoy proxy container | |
object (ScalingConfig) Scaling configuration - fixed replica count, or HPA-managed | |
| mergeGateways | boolean Merge all Gateways using this template into a single Envoy Deployment/Service |
object (TelemetryAccessLogConfig) Access log configuration (spec.telemetry.accessLog) | |
object (TelemetryTracingConfig) Tracing configuration (spec.telemetry.tracing) | |
object (TelemetryMetricsConfig) Metrics configuration (spec.telemetry.metrics) | |
object (PodPlacementConfig) | |
object (PDBConfig) PodDisruptionBudget configuration - exactly one of minAvailable/maxUnavailable, selected by "kind" | |
object (DeploymentStrategyConfig) | |
| includeAIReview | boolean |
| changeDescription | string |
{- "name": "string",
- "description": "string",
- "controllerName": "string",
- "exposureType": "LoadBalancer",
- "tlsMode": "tls_only",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsPolicy": "terminate",
- "externalTrafficPolicy": "Cluster",
- "loadBalancerClass": "string",
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "podAnnotations": {
- "property1": "string",
- "property2": "string"
}, - "containerResources": {
- "requests": {
- "cpu": "string",
- "memory": "string"
}, - "limits": {
- "cpu": "string",
- "memory": "string"
}
}, - "scalingConfig": {
- "type": "fixed",
- "replicas": 0,
- "minReplicas": 0,
- "maxReplicas": 0
}, - "mergeGateways": true,
- "telemetryAccessLog": {
- "format": {
- "type": "text",
- "text": "string",
- "json": {
- "property1": "string",
- "property2": "string"
}
}, - "sink": {
- "type": "file",
- "file": {
- "path": "string"
}, - "otel": {
- "namespace": "string",
- "service": "string",
- "port": 0
}
}
}, - "telemetryTracing": {
- "samplingRate": 0.1,
- "provider": {
- "namespace": "string",
- "service": "string",
- "port": 0
}, - "customTags": [
- {
- "type": "literal",
- "tag": "string",
- "value": "string",
- "header": "string",
- "defaultValue": "string"
}
]
}, - "telemetryMetrics": {
- "prometheus": {
- "disable": true
}, - "enableVirtualHostStats": true,
- "enablePerEndpointStats": true,
- "sinks": [
- {
- "type": "openTelemetry",
- "namespace": "string",
- "service": "string",
- "port": 0
}
]
}, - "podPlacement": {
- "nodeSelector": {
- "property1": "string",
- "property2": "string"
}, - "tolerations": [
- {
- "key": "string",
- "operator": "string",
- "value": "string",
- "effect": "string",
- "tolerationSeconds": 0
}
], - "topologySpreadConstraints": [
- {
- "maxSkew": 0,
- "topologyKey": "string",
- "whenUnsatisfiable": "string"
}
], - "priorityClassName": "string"
}, - "pdbConfig": {
- "kind": "minAvailable",
- "value": "string"
}, - "deploymentStrategy": {
- "type": "RollingUpdate",
- "rollingUpdate": {
- "maxSurge": "string",
- "maxUnavailable": "string"
}
}, - "includeAIReview": true,
- "changeDescription": "string"
}{- "gatewayClassYaml": "string",
- "envoyProxyYaml": "string",
- "gatewayYaml": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}
}| projectId required | string <uuid> |
| domainTemplateId required | string <uuid> |
| description | string |
| externalTrafficPolicy | string Enum: "Cluster" "Local" |
| loadBalancerClass | string |
object | |
object | |
object (ContainerResourcesConfig) Container resource requests and limits for the Envoy proxy container | |
object (ScalingConfig) Scaling configuration - fixed replica count, or HPA-managed | |
object (TelemetryAccessLogConfig) Access log configuration (spec.telemetry.accessLog) | |
object (TelemetryTracingConfig) Tracing configuration (spec.telemetry.tracing) | |
object (TelemetryMetricsConfig) Metrics configuration (spec.telemetry.metrics) | |
object (PodPlacementConfig) | |
object (PDBConfig) PodDisruptionBudget configuration - exactly one of minAvailable/maxUnavailable, selected by "kind" | |
object (DeploymentStrategyConfig) | |
| clearTelemetryAccessLog | boolean When true, clears the stored telemetryAccessLog config (JSON null is indistinguishable from absent) |
| clearTelemetryTracing | boolean When true, clears the stored telemetryTracing config |
| clearTelemetryMetrics | boolean When true, clears the stored telemetryMetrics config |
| clearPodPlacement | boolean When true, clears the stored podPlacement config |
| clearPdbConfig | boolean When true, clears the stored pdbConfig config |
| clearDeploymentStrategy | boolean When true, clears the stored deploymentStrategy config |
| includeAIReview | boolean |
| changeDescription | string |
{- "description": "string",
- "externalTrafficPolicy": "Cluster",
- "loadBalancerClass": "string",
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "podAnnotations": {
- "property1": "string",
- "property2": "string"
}, - "containerResources": {
- "requests": {
- "cpu": "string",
- "memory": "string"
}, - "limits": {
- "cpu": "string",
- "memory": "string"
}
}, - "scalingConfig": {
- "type": "fixed",
- "replicas": 0,
- "minReplicas": 0,
- "maxReplicas": 0
}, - "telemetryAccessLog": {
- "format": {
- "type": "text",
- "text": "string",
- "json": {
- "property1": "string",
- "property2": "string"
}
}, - "sink": {
- "type": "file",
- "file": {
- "path": "string"
}, - "otel": {
- "namespace": "string",
- "service": "string",
- "port": 0
}
}
}, - "telemetryTracing": {
- "samplingRate": 0.1,
- "provider": {
- "namespace": "string",
- "service": "string",
- "port": 0
}, - "customTags": [
- {
- "type": "literal",
- "tag": "string",
- "value": "string",
- "header": "string",
- "defaultValue": "string"
}
]
}, - "telemetryMetrics": {
- "prometheus": {
- "disable": true
}, - "enableVirtualHostStats": true,
- "enablePerEndpointStats": true,
- "sinks": [
- {
- "type": "openTelemetry",
- "namespace": "string",
- "service": "string",
- "port": 0
}
]
}, - "podPlacement": {
- "nodeSelector": {
- "property1": "string",
- "property2": "string"
}, - "tolerations": [
- {
- "key": "string",
- "operator": "string",
- "value": "string",
- "effect": "string",
- "tolerationSeconds": 0
}
], - "topologySpreadConstraints": [
- {
- "maxSkew": 0,
- "topologyKey": "string",
- "whenUnsatisfiable": "string"
}
], - "priorityClassName": "string"
}, - "pdbConfig": {
- "kind": "minAvailable",
- "value": "string"
}, - "deploymentStrategy": {
- "type": "RollingUpdate",
- "rollingUpdate": {
- "maxSurge": "string",
- "maxUnavailable": "string"
}
}, - "clearTelemetryAccessLog": true,
- "clearTelemetryTracing": true,
- "clearTelemetryMetrics": true,
- "clearPodPlacement": true,
- "clearPdbConfig": true,
- "clearDeploymentStrategy": true,
- "includeAIReview": true,
- "changeDescription": "string"
}{- "currentEnvoyProxyYaml": "string",
- "proposedEnvoyProxyYaml": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}
}| projectId required | string <uuid> |
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "domainTemplateId": "8f5df8fe-3460-4807-8240-1ccc797bedbb",
- "name": "string",
- "hostname": "string",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsMode": "tls_only",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "tlsPolicy": "terminate",
- "namespace": "string",
- "k8sGatewayName": "string",
- "k8sGatewayClassName": "string",
- "status": "pending",
- "statusMessage": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "routeCount": 0,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}| projectId required | string <uuid> |
| name required | string |
| hostname required | string |
| domainTemplateId required | string <uuid> |
| tlsSecretName | string |
| tlsSecretNamespace | string Kubernetes namespace containing the TLS secret. Must be managed by the project unless it is the default FastGateway namespace. |
| namespace | string Kubernetes namespace to deploy the domain's gateway resources into. Defaults to the default FastGateway namespace; any other value must be registered for this project. |
object (Labels) Arbitrary key/value labels (Kubernetes-style) attached to a resource. |
{- "name": "string",
- "hostname": "string",
- "domainTemplateId": "8f5df8fe-3460-4807-8240-1ccc797bedbb",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "namespace": "string",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "domainTemplateId": "8f5df8fe-3460-4807-8240-1ccc797bedbb",
- "name": "string",
- "hostname": "string",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsMode": "tls_only",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "tlsPolicy": "terminate",
- "namespace": "string",
- "k8sGatewayName": "string",
- "k8sGatewayClassName": "string",
- "status": "pending",
- "statusMessage": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "routeCount": 0,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Lists kubernetes.io/tls Secrets in a namespace, annotated with whether FastGateway manages them, plus the namespaces available for lookup in this project.
| projectId required | string <uuid> |
| namespace | string Kubernetes namespace to list TLS secrets from. Defaults to the project's default namespace. |
{- "namespace": "string",
- "secrets": [
- {
- "name": "string",
- "namespace": "string",
- "managedByFastgateway": true,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "string"
}
], - "availableNamespaces": [
- "string"
]
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "domainTemplateId": "8f5df8fe-3460-4807-8240-1ccc797bedbb",
- "name": "string",
- "hostname": "string",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsMode": "tls_only",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "tlsPolicy": "terminate",
- "namespace": "string",
- "k8sGatewayName": "string",
- "k8sGatewayClassName": "string",
- "status": "pending",
- "statusMessage": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "routeCount": 0,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| name | string |
| tlsSecretName | string |
| tlsSecretNamespace | string Kubernetes namespace containing the TLS secret. Must be managed by the project unless it is the default FastGateway namespace. |
object (Labels) Arbitrary key/value labels (Kubernetes-style) attached to a resource. |
{- "name": "string",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "domainTemplateId": "8f5df8fe-3460-4807-8240-1ccc797bedbb",
- "name": "string",
- "hostname": "string",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsMode": "tls_only",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "tlsPolicy": "terminate",
- "namespace": "string",
- "k8sGatewayName": "string",
- "k8sGatewayClassName": "string",
- "status": "pending",
- "statusMessage": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "routeCount": 0,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Returns the domain-level settings configuration. This is a gateway-agnostic API.
| projectId required | string <uuid> |
| domainId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "settings": {
- "clientConnection": {
- "tcpKeepalive": {
- "probes": 3,
- "idleTime": "60s",
- "interval": "10s"
}, - "proxyProtocol": {
- "enabled": true
}, - "connectionLimit": {
- "maxConnections": 0,
- "closeDelay": "string",
- "maxConnectionDuration": "string",
- "maxRequestsPerConnection": 0
}, - "bufferLimit": "string"
}, - "clientIPDetection": {
- "xForwardedFor": {
- "numTrustedHops": 1
}, - "customHeader": {
- "name": "string",
- "failClosed": false
}
}, - "timeout": {
- "http": {
- "requestReceivedTimeout": "string",
- "idleTimeout": "string"
}
}, - "http3": {
- "enabled": true
}, - "tls": {
- "minVersion": "TLS1.0",
- "maxVersion": "TLS1.0",
- "ciphers": [
- "string"
], - "ecdhCurves": [
- "string"
], - "signatureAlgorithms": [
- "string"
]
}, - "mtls": {
- "enabled": true,
- "optional": true,
- "caCerts": [
- {
- "id": "string",
- "name": "string",
- "secretName": "string",
- "secretKey": "string"
}
], - "sanWhitelist": [
- {
- "type": "DNS",
- "value": "string"
}
], - "hashWhitelist": [
- "string"
]
}
}, - "backendTrafficPolicy": {
- "compression": [
- {
- "type": "Gzip",
- "gzip": { },
- "brotli": { },
- "zstd": { }
}
], - "retry": {
- "numRetries": 0,
- "retryOn": {
- "httpStatusCodes": [
- 100
], - "triggers": [
- "5xx"
]
}, - "perRetryPolicy": {
- "backOff": {
- "baseInterval": "string",
- "maxInterval": "string"
}, - "timeout": "string"
}
}, - "loadBalancer": {
- "type": "RoundRobin",
- "consistentHash": {
- "type": "SourceIP",
- "header": {
- "name": "string"
}, - "cookie": {
- "name": "string",
- "ttl": "string",
- "attributes": {
- "property1": "string",
- "property2": "string"
}
}
}
}, - "circuitBreaker": {
- "maxConnections": 0,
- "maxPendingRequests": 0,
- "maxParallelRequests": 0,
- "maxParallelRetries": 0,
- "maxRequestsPerConnection": 0
}, - "healthCheck": {
- "active": {
- "timeout": "string",
- "interval": "string",
- "unhealthyThreshold": 0,
- "healthyThreshold": 0,
- "type": "HTTP",
- "http": {
- "path": "string",
- "method": "GET",
- "expectedStatuses": [
- 0
]
}, - "tcp": {
- "send": {
- "type": "Text",
- "text": "string"
}, - "receive": {
- "type": "Text",
- "text": "string"
}
}, - "grpc": {
- "service": "string"
}
}, - "passive": {
- "consecutiveGatewayErrors": 0,
- "consecutive5xxErrors": 0,
- "interval": "string",
- "baseEjectionTime": "string"
}, - "panicThreshold": 0
}, - "faultInjection": {
- "delay": {
- "fixedDelay": "string",
- "percentage": 0
}, - "abort": {
- "httpStatus": 100,
- "grpcStatus": 0,
- "percentage": 0
}
}, - "rateLimit": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": null,
- "value": null,
- "type": null,
- "invert": null
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "requestBuffer": {
- "limit": "string"
}, - "responseOverride": [
- {
- "match": {
- "statusCodes": [
- {
- "type": "Value",
- "value": 0,
- "range": {
- "start": 0,
- "end": 0
}
}
]
}, - "response": {
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}
}
], - "timeout": {
- "tcp": {
- "connectTimeout": "string"
}, - "http": {
- "requestTimeout": "string",
- "connectionIdleTimeout": "string",
- "maxConnectionDuration": "string",
- "maxStreamDuration": "string"
}
}
}, - "extensionPolicy": {
- "lua": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}, - "wasm": {
- "name": "string",
- "rootID": "string",
- "code": {
- "type": "HTTP",
- "http": {
- "url": "string",
- "sha256": "string"
}, - "image": {
- "url": "string",
- "sha256": "string",
- "pullSecret": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}, - "config": "string"
}, - "extProc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 1
}, - "processingMode": {
- "request": {
- "body": "None"
}, - "response": {
- "body": "None"
}
}, - "failOpen": false
}
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Updates the domain-level settings. This is a gateway-agnostic API that gets translated to the appropriate gateway-specific resources (e.g., Envoy Gateway ClientTrafficPolicy). Requires Owner or Project Admin role.
| projectId required | string <uuid> |
| domainId required | string <uuid> |
object (ClientConnectionConfig) Client connection settings | |
object (ClientIPDetectionConfig) Client IP detection configuration for extracting client IP from HTTP headers | |
object (DomainTimeoutConfig) Domain-level timeout configuration | |
object (HTTP3Config) HTTP/3 configuration | |
object (TLSSettingsConfig) TLS settings configuration | |
object (DomainMTLSConfig) Domain-level mTLS configuration | |
object (BackendTrafficPolicyConfig) | |
object (EnvoyExtensionPolicyConfig) Lua, Wasm, and ext_proc extension configuration stored for a route |
{- "clientConnection": {
- "tcpKeepalive": {
- "probes": 3,
- "idleTime": "60s",
- "interval": "10s"
}, - "proxyProtocol": {
- "enabled": true
}, - "connectionLimit": {
- "maxConnections": 0,
- "closeDelay": "string",
- "maxConnectionDuration": "string",
- "maxRequestsPerConnection": 0
}, - "bufferLimit": "string"
}, - "clientIPDetection": {
- "xForwardedFor": {
- "numTrustedHops": 1
}, - "customHeader": {
- "name": "string",
- "failClosed": false
}
}, - "timeout": {
- "http": {
- "requestReceivedTimeout": "string",
- "idleTimeout": "string"
}
}, - "http3": {
- "enabled": true
}, - "tls": {
- "minVersion": "TLS1.0",
- "maxVersion": "TLS1.0",
- "ciphers": [
- "string"
], - "ecdhCurves": [
- "string"
], - "signatureAlgorithms": [
- "string"
]
}, - "mtls": {
- "enabled": true,
- "optional": true,
- "caCerts": [
- {
- "id": "string",
- "name": "string",
- "secretName": "string",
- "secretKey": "string"
}
], - "sanWhitelist": [
- {
- "type": "DNS",
- "value": "string"
}
], - "hashWhitelist": [
- "string"
]
}, - "backendTrafficPolicy": {
- "compression": [
- {
- "type": "Gzip",
- "gzip": { },
- "brotli": { },
- "zstd": { }
}
], - "retry": {
- "numRetries": 0,
- "retryOn": {
- "httpStatusCodes": [
- 100
], - "triggers": [
- "5xx"
]
}, - "perRetryPolicy": {
- "backOff": {
- "baseInterval": "string",
- "maxInterval": "string"
}, - "timeout": "string"
}
}, - "loadBalancer": {
- "type": "RoundRobin",
- "consistentHash": {
- "type": "SourceIP",
- "header": {
- "name": "string"
}, - "cookie": {
- "name": "string",
- "ttl": "string",
- "attributes": {
- "property1": "string",
- "property2": "string"
}
}
}
}, - "circuitBreaker": {
- "maxConnections": 0,
- "maxPendingRequests": 0,
- "maxParallelRequests": 0,
- "maxParallelRetries": 0,
- "maxRequestsPerConnection": 0
}, - "healthCheck": {
- "active": {
- "timeout": "string",
- "interval": "string",
- "unhealthyThreshold": 0,
- "healthyThreshold": 0,
- "type": "HTTP",
- "http": {
- "path": "string",
- "method": "GET",
- "expectedStatuses": [
- 0
]
}, - "tcp": {
- "send": {
- "type": "Text",
- "text": "string"
}, - "receive": {
- "type": "Text",
- "text": "string"
}
}, - "grpc": {
- "service": "string"
}
}, - "passive": {
- "consecutiveGatewayErrors": 0,
- "consecutive5xxErrors": 0,
- "interval": "string",
- "baseEjectionTime": "string"
}, - "panicThreshold": 0
}, - "faultInjection": {
- "delay": {
- "fixedDelay": "string",
- "percentage": 0
}, - "abort": {
- "httpStatus": 100,
- "grpcStatus": 0,
- "percentage": 0
}
}, - "rateLimit": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": null,
- "value": null,
- "type": null,
- "invert": null
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "requestBuffer": {
- "limit": "string"
}, - "responseOverride": [
- {
- "match": {
- "statusCodes": [
- {
- "type": "Value",
- "value": 0,
- "range": {
- "start": 0,
- "end": 0
}
}
]
}, - "response": {
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}
}
], - "timeout": {
- "tcp": {
- "connectTimeout": "string"
}, - "http": {
- "requestTimeout": "string",
- "connectionIdleTimeout": "string",
- "maxConnectionDuration": "string",
- "maxStreamDuration": "string"
}
}
}, - "extensionPolicy": {
- "lua": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}, - "wasm": {
- "name": "string",
- "rootID": "string",
- "code": {
- "type": "HTTP",
- "http": {
- "url": "string",
- "sha256": "string"
}, - "image": {
- "url": "string",
- "sha256": "string",
- "pullSecret": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}, - "config": "string"
}, - "extProc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 1
}, - "processingMode": {
- "request": {
- "body": "None"
}, - "response": {
- "body": "None"
}
}, - "failOpen": false
}
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "settings": {
- "clientConnection": {
- "tcpKeepalive": {
- "probes": 3,
- "idleTime": "60s",
- "interval": "10s"
}, - "proxyProtocol": {
- "enabled": true
}, - "connectionLimit": {
- "maxConnections": 0,
- "closeDelay": "string",
- "maxConnectionDuration": "string",
- "maxRequestsPerConnection": 0
}, - "bufferLimit": "string"
}, - "clientIPDetection": {
- "xForwardedFor": {
- "numTrustedHops": 1
}, - "customHeader": {
- "name": "string",
- "failClosed": false
}
}, - "timeout": {
- "http": {
- "requestReceivedTimeout": "string",
- "idleTimeout": "string"
}
}, - "http3": {
- "enabled": true
}, - "tls": {
- "minVersion": "TLS1.0",
- "maxVersion": "TLS1.0",
- "ciphers": [
- "string"
], - "ecdhCurves": [
- "string"
], - "signatureAlgorithms": [
- "string"
]
}, - "mtls": {
- "enabled": true,
- "optional": true,
- "caCerts": [
- {
- "id": "string",
- "name": "string",
- "secretName": "string",
- "secretKey": "string"
}
], - "sanWhitelist": [
- {
- "type": "DNS",
- "value": "string"
}
], - "hashWhitelist": [
- "string"
]
}
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "warnings": [
- "string"
]
}Points the domain's Gateway listener at a usage=server managed certificate
and re-applies it. Requires Owner, Project Admin, or domain-manage permission
(the same access level as domain settings).
| projectId required | string <uuid> |
| domainId required | string <uuid> |
| certificateId required | string <uuid> |
{- "certificateId": "93038071-4553-48f6-8780-c7262cd9be88"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "domainTemplateId": "8f5df8fe-3460-4807-8240-1ccc797bedbb",
- "name": "string",
- "hostname": "string",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsMode": "tls_only",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "tlsPolicy": "terminate",
- "namespace": "string",
- "k8sGatewayName": "string",
- "k8sGatewayClassName": "string",
- "status": "pending",
- "statusMessage": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "routeCount": 0,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Clears the domain's managed certificate and re-applies its Gateway listener, which reverts to any legacy BYO TLS secret configured on the domain. Requires Owner, Project Admin, or domain-manage permission.
| projectId required | string <uuid> |
| domainId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "domainTemplateId": "8f5df8fe-3460-4807-8240-1ccc797bedbb",
- "name": "string",
- "hostname": "string",
- "httpPort": 0,
- "httpsPort": 0,
- "tlsMode": "tls_only",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "tlsPolicy": "terminate",
- "namespace": "string",
- "k8sGatewayName": "string",
- "k8sGatewayClassName": "string",
- "status": "pending",
- "statusMessage": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "routeCount": 0,
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| caPem required | string CA certificate PEM content |
| name required | string Display name for the CA |
{- "caPem": "string",
- "name": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "settings": {
- "clientConnection": {
- "tcpKeepalive": {
- "probes": 3,
- "idleTime": "60s",
- "interval": "10s"
}, - "proxyProtocol": {
- "enabled": true
}, - "connectionLimit": {
- "maxConnections": 0,
- "closeDelay": "string",
- "maxConnectionDuration": "string",
- "maxRequestsPerConnection": 0
}, - "bufferLimit": "string"
}, - "clientIPDetection": {
- "xForwardedFor": {
- "numTrustedHops": 1
}, - "customHeader": {
- "name": "string",
- "failClosed": false
}
}, - "timeout": {
- "http": {
- "requestReceivedTimeout": "string",
- "idleTimeout": "string"
}
}, - "http3": {
- "enabled": true
}, - "tls": {
- "minVersion": "TLS1.0",
- "maxVersion": "TLS1.0",
- "ciphers": [
- "string"
], - "ecdhCurves": [
- "string"
], - "signatureAlgorithms": [
- "string"
]
}, - "mtls": {
- "enabled": true,
- "optional": true,
- "caCerts": [
- {
- "id": "string",
- "name": "string",
- "secretName": "string",
- "secretKey": "string"
}
], - "sanWhitelist": [
- {
- "type": "DNS",
- "value": "string"
}
], - "hashWhitelist": [
- "string"
]
}
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| caId required | string |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "settings": {
- "clientConnection": {
- "tcpKeepalive": {
- "probes": 3,
- "idleTime": "60s",
- "interval": "10s"
}, - "proxyProtocol": {
- "enabled": true
}, - "connectionLimit": {
- "maxConnections": 0,
- "closeDelay": "string",
- "maxConnectionDuration": "string",
- "maxRequestsPerConnection": 0
}, - "bufferLimit": "string"
}, - "clientIPDetection": {
- "xForwardedFor": {
- "numTrustedHops": 1
}, - "customHeader": {
- "name": "string",
- "failClosed": false
}
}, - "timeout": {
- "http": {
- "requestReceivedTimeout": "string",
- "idleTimeout": "string"
}
}, - "http3": {
- "enabled": true
}, - "tls": {
- "minVersion": "TLS1.0",
- "maxVersion": "TLS1.0",
- "ciphers": [
- "string"
], - "ecdhCurves": [
- "string"
], - "signatureAlgorithms": [
- "string"
]
}, - "mtls": {
- "enabled": true,
- "optional": true,
- "caCerts": [
- {
- "id": "string",
- "name": "string",
- "secretName": "string",
- "secretKey": "string"
}
], - "sanWhitelist": [
- {
- "type": "DNS",
- "value": "string"
}
], - "hashWhitelist": [
- "string"
]
}
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
{- "gatewayYaml": "string",
- "clientTrafficPolicyYaml": "string",
- "backendTrafficPolicyYaml": "string",
- "envoyExtensionPolicyYaml": "string"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
object (ClientConnectionConfig) Client connection settings | |
object (DomainTimeoutConfig) Domain-level timeout configuration | |
object (HTTP3Config) HTTP/3 configuration | |
object (TLSSettingsConfig) TLS settings configuration | |
object (ClientIPDetectionConfig) Client IP detection configuration for extracting client IP from HTTP headers | |
object (DomainMTLSConfig) Domain-level mTLS configuration | |
object (BackendTrafficPolicyConfig) | |
object (EnvoyExtensionPolicyConfig) Lua, Wasm, and ext_proc extension configuration stored for a route | |
| description | string |
| includeAIReview | boolean When true, triggers AI review of the proposed changes |
{- "clientConnection": {
- "tcpKeepalive": {
- "probes": 3,
- "idleTime": "60s",
- "interval": "10s"
}, - "proxyProtocol": {
- "enabled": true
}, - "connectionLimit": {
- "maxConnections": 0,
- "closeDelay": "string",
- "maxConnectionDuration": "string",
- "maxRequestsPerConnection": 0
}, - "bufferLimit": "string"
}, - "timeout": {
- "http": {
- "requestReceivedTimeout": "string",
- "idleTimeout": "string"
}
}, - "http3": {
- "enabled": true
}, - "tls": {
- "minVersion": "TLS1.0",
- "maxVersion": "TLS1.0",
- "ciphers": [
- "string"
], - "ecdhCurves": [
- "string"
], - "signatureAlgorithms": [
- "string"
]
}, - "clientIPDetection": {
- "xForwardedFor": {
- "numTrustedHops": 1
}, - "customHeader": {
- "name": "string",
- "failClosed": false
}
}, - "mtls": {
- "enabled": true,
- "optional": true,
- "caCerts": [
- {
- "id": "string",
- "name": "string",
- "secretName": "string",
- "secretKey": "string"
}
], - "sanWhitelist": [
- {
- "type": "DNS",
- "value": "string"
}
], - "hashWhitelist": [
- "string"
]
}, - "backendTrafficPolicy": {
- "compression": [
- {
- "type": "Gzip",
- "gzip": { },
- "brotli": { },
- "zstd": { }
}
], - "retry": {
- "numRetries": 0,
- "retryOn": {
- "httpStatusCodes": [
- 100
], - "triggers": [
- "5xx"
]
}, - "perRetryPolicy": {
- "backOff": {
- "baseInterval": "string",
- "maxInterval": "string"
}, - "timeout": "string"
}
}, - "loadBalancer": {
- "type": "RoundRobin",
- "consistentHash": {
- "type": "SourceIP",
- "header": {
- "name": "string"
}, - "cookie": {
- "name": "string",
- "ttl": "string",
- "attributes": {
- "property1": "string",
- "property2": "string"
}
}
}
}, - "circuitBreaker": {
- "maxConnections": 0,
- "maxPendingRequests": 0,
- "maxParallelRequests": 0,
- "maxParallelRetries": 0,
- "maxRequestsPerConnection": 0
}, - "healthCheck": {
- "active": {
- "timeout": "string",
- "interval": "string",
- "unhealthyThreshold": 0,
- "healthyThreshold": 0,
- "type": "HTTP",
- "http": {
- "path": "string",
- "method": "GET",
- "expectedStatuses": [
- 0
]
}, - "tcp": {
- "send": {
- "type": "Text",
- "text": "string"
}, - "receive": {
- "type": "Text",
- "text": "string"
}
}, - "grpc": {
- "service": "string"
}
}, - "passive": {
- "consecutiveGatewayErrors": 0,
- "consecutive5xxErrors": 0,
- "interval": "string",
- "baseEjectionTime": "string"
}, - "panicThreshold": 0
}, - "faultInjection": {
- "delay": {
- "fixedDelay": "string",
- "percentage": 0
}, - "abort": {
- "httpStatus": 100,
- "grpcStatus": 0,
- "percentage": 0
}
}, - "rateLimit": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": null,
- "value": null,
- "type": null,
- "invert": null
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "requestBuffer": {
- "limit": "string"
}, - "responseOverride": [
- {
- "match": {
- "statusCodes": [
- {
- "type": "Value",
- "value": 0,
- "range": {
- "start": 0,
- "end": 0
}
}
]
}, - "response": {
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}
}
], - "timeout": {
- "tcp": {
- "connectTimeout": "string"
}, - "http": {
- "requestTimeout": "string",
- "connectionIdleTimeout": "string",
- "maxConnectionDuration": "string",
- "maxStreamDuration": "string"
}
}
}, - "extensionPolicy": {
- "lua": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}, - "wasm": {
- "name": "string",
- "rootID": "string",
- "code": {
- "type": "HTTP",
- "http": {
- "url": "string",
- "sha256": "string"
}, - "image": {
- "url": "string",
- "sha256": "string",
- "pullSecret": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}, - "config": "string"
}, - "extProc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 1
}, - "processingMode": {
- "request": {
- "body": "None"
}, - "response": {
- "body": "None"
}
}, - "failOpen": false
}
}, - "description": "string",
- "includeAIReview": true
}{- "currentGatewayYaml": "string",
- "currentClientTrafficPolicyYaml": "string",
- "proposedClientTrafficPolicyYaml": "string",
- "currentBackendTrafficPolicyYaml": "string",
- "proposedBackendTrafficPolicyYaml": "string",
- "currentEnvoyExtensionPolicyYaml": "string",
- "proposedEnvoyExtensionPolicyYaml": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}
}| projectId required | string <uuid> |
| name required | string |
| hostname required | string |
| domainTemplateId required | string <uuid> |
| tlsSecretName | string |
| tlsSecretNamespace | string Kubernetes namespace containing the TLS secret. Must be managed by the project unless it is the default FastGateway namespace. |
| namespace | string Kubernetes namespace to deploy the domain's gateway resources into. Defaults to the default FastGateway namespace; any other value must be registered for this project. |
object (Labels) Arbitrary key/value labels (Kubernetes-style) attached to a resource. | |
| description | string |
| includeAIReview | boolean When true, triggers AI review of the proposed domain creation |
{- "name": "string",
- "hostname": "string",
- "domainTemplateId": "8f5df8fe-3460-4807-8240-1ccc797bedbb",
- "tlsSecretName": "string",
- "tlsSecretNamespace": "string",
- "namespace": "string",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "description": "string",
- "includeAIReview": true
}{- "proposedGatewayYaml": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}
}| projectId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "namespace": "string",
- "capabilities": [
- "deploy_gateway"
], - "referenceGrantCreated": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]| projectId required | string <uuid> |
| namespace required | string |
| capabilities required | Array of strings (NamespaceCapability) non-empty Items Enum: "deploy_gateway" "backend_service" "tls_secret" |
{- "namespace": "string",
- "capabilities": [
- "deploy_gateway"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "namespace": "string",
- "capabilities": [
- "deploy_gateway"
], - "referenceGrantCreated": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| namespaceId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "namespace": "string",
- "capabilities": [
- "deploy_gateway"
], - "referenceGrantCreated": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| namespaceId required | string <uuid> |
| capabilities required | Array of strings (NamespaceCapability) non-empty Items Enum: "deploy_gateway" "backend_service" "tls_secret" |
{- "capabilities": [
- "deploy_gateway"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "namespace": "string",
- "capabilities": [
- "deploy_gateway"
], - "referenceGrantCreated": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| namespaceId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "namespace": "string",
- "capabilities": [
- "deploy_gateway"
], - "referenceGrantCreated": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Parses an uploaded OpenAPI 3.0/3.1 spec and returns a list of candidate routes (not yet created) for the caller to review and submit individually via createRoute. The request body is capped at 5MB.
| projectId required | string <uuid> |
| domainId required | string <uuid> |
| spec required | string Raw OpenAPI 3.0/3.1 spec content (JSON or YAML) |
required | object (DefaultBackend) Backend applied to every route parsed from the spec. Exactly one of (service+namespace) or address must be provided. |
{- "spec": "string",
- "defaultBackend": {
- "service": "string",
- "namespace": "string",
- "address": "string",
- "port": 0
}
}{- "routes": [
- {
- "name": "string",
- "description": "string",
- "protocol": "http",
- "securityMode": "general",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "tag": "string"
}
], - "warnings": [
- {
- "level": "info",
- "source": "string",
- "message": "string"
}
], - "renames": [
- {
- "original": "string",
- "final": "string",
- "reason": "duplicate"
}
], - "specInfo": {
- "title": "string",
- "version": "string",
- "format": "openapi-3.0"
}
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
| teamId | string <uuid> Filter by team |
| status | string Enum: "pending_create" "pending_update" "pending_delete" "approved" "pending_deploy" "active" "rejected" Filter by a single status value (unlike listProjectRoutes, this does not accept a comma-separated list) |
| search | string Free-text search term |
| searchField | string Enum: "all" "name" "path" "owner" Field to restrict the search term to (defaults to searching all fields) |
| labels | string Label filter expression (e.g. "key=value,key2=value2") matched against the route's labels |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| name required | string |
| description | string |
| protocol | string Default: "http" Enum: "http" "grpc" |
| teamId required | string <uuid> |
required | object (RouteConfig) |
| securityMode | string (SecurityMode) Enum: "general" "client" Security configuration mode. 'general' configures security directly on the route. 'client' uses client attachments. |
object (SecurityPolicyInput) | |
object (BackendTrafficPolicyInput) | |
object (EnvoyExtensionPolicyInput) Envoy extension policy input for Lua, Wasm, and ext_proc extensions | |
object (WafPolicyConfig) WAF (Web Application Firewall) configuration using coraza-proxy-wasm | |
| changeDescription | string Optional description of the changes for approval |
object (AIReviewResult) | |
object (Labels) Arbitrary key/value labels (Kubernetes-style) attached to a resource. |
{- "name": "string",
- "description": "string",
- "protocol": "http",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "securityPolicy": {
- "cors": {
- "allowOrigins": [
- "string"
], - "allowMethods": [
- "string"
], - "allowHeaders": [
- "string"
], - "exposeHeaders": [
- "string"
], - "maxAge": 0,
- "allowCredentials": true
}, - "authorization": {
- "allowedCIDRs": [
- "string"
], - "headers": [
- {
- "name": "string",
- "values": [
- "string"
]
}
], - "methods": [
- "string"
]
}, - "apiKeyAuth": {
- "secretName": "string",
- "headerName": "string"
}, - "jwt": {
- "issuer": "string",
- "jwksUrl": "string",
- "audiences": [
- "string"
], - "claimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
]
}, - "oidc": {
- "issuer": "string",
- "clientId": "string",
- "clientSecretName": "string",
- "redirectURL": "string",
- "logoutPath": "string",
- "scopes": [
- "string"
], - "cookieDomain": "string"
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}
}, - "backendTrafficPolicy": {
- "compression": [
- {
- "type": "Gzip",
- "gzip": { },
- "brotli": { },
- "zstd": { }
}
], - "retry": {
- "numRetries": 0,
- "retryOn": {
- "httpStatusCodes": [
- 100
], - "triggers": [
- "5xx"
]
}, - "perRetryPolicy": {
- "backOff": {
- "baseInterval": "string",
- "maxInterval": "string"
}, - "timeout": "string"
}
}, - "loadBalancer": {
- "type": "RoundRobin",
- "consistentHash": {
- "type": "SourceIP",
- "header": {
- "name": "string"
}, - "cookie": {
- "name": "string",
- "ttl": "string",
- "attributes": {
- "property1": "string",
- "property2": "string"
}
}
}
}, - "circuitBreaker": {
- "maxConnections": 0,
- "maxPendingRequests": 0,
- "maxParallelRequests": 0,
- "maxParallelRetries": 0,
- "maxRequestsPerConnection": 0
}, - "healthCheck": {
- "active": {
- "timeout": "string",
- "interval": "string",
- "unhealthyThreshold": 0,
- "healthyThreshold": 0,
- "type": "HTTP",
- "http": {
- "path": "string",
- "method": "GET",
- "expectedStatuses": [
- 0
]
}, - "tcp": {
- "send": {
- "type": "Text",
- "text": "string"
}, - "receive": {
- "type": "Text",
- "text": "string"
}
}, - "grpc": {
- "service": "string"
}
}, - "passive": {
- "consecutiveGatewayErrors": 0,
- "consecutive5xxErrors": 0,
- "interval": "string",
- "baseEjectionTime": "string"
}, - "panicThreshold": 0
}, - "faultInjection": {
- "delay": {
- "fixedDelay": "string",
- "percentage": 0
}, - "abort": {
- "httpStatus": 100,
- "grpcStatus": 0,
- "percentage": 0
}
}, - "rateLimit": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": null,
- "value": null,
- "type": null,
- "invert": null
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "requestBuffer": {
- "limit": "string"
}, - "responseOverride": [
- {
- "match": {
- "statusCodes": [
- {
- "type": "Value",
- "value": 0,
- "range": {
- "start": 0,
- "end": 0
}
}
]
}, - "response": {
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}
}
], - "timeout": {
- "tcp": {
- "connectTimeout": "string"
}, - "http": {
- "requestTimeout": "string",
- "connectionIdleTimeout": "string",
- "maxConnectionDuration": "string",
- "maxStreamDuration": "string"
}
}
}, - "extensionPolicy": {
- "lua": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}, - "wasm": {
- "name": "string",
- "rootID": "string",
- "code": {
- "type": "HTTP",
- "http": {
- "url": "string",
- "sha256": "string"
}, - "image": {
- "url": "string",
- "sha256": "string",
- "pullSecret": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}, - "config": "string"
}, - "extProc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 1
}, - "processingMode": {
- "request": {
- "body": "None"
}, - "response": {
- "body": "None"
}
}, - "failOpen": false
}
}, - "wafPolicy": {
- "mode": "block",
- "rulesets": [
- "string"
], - "anomalyThreshold": 1,
- "paranoiaLevel": 1,
- "disabledRuleIDs": [
- 0
], - "customDirectives": [
- "string"
]
}, - "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "labels": {
- "property1": "string",
- "property2": "string"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "warnings": [
- "string"
]
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "securityPolicy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "config": {
- "cors": {
- "allowOrigins": [
- "string"
], - "allowMethods": [
- "string"
], - "allowHeaders": [
- "string"
], - "exposeHeaders": [
- "string"
], - "maxAge": 0,
- "allowCredentials": true
}, - "authorization": {
- "defaultAction": "Deny",
- "rules": [
- {
- "action": "Allow",
- "principal": {
- "clientCIDRs": [
- "string"
], - "jwt": {
- "provider": "string",
- "claims": [
- {
- "name": null,
- "values": [ ],
- "valueType": null
}
]
}
}
}
]
}, - "apiKeyAuth": {
- "credentialRefs": [
- {
- "name": "string"
}
], - "extractFrom": {
- "headers": [
- "string"
]
}
}, - "basicAuth": {
- "secretRef": {
- "name": "string",
- "namespace": "string"
}
}, - "jwt": {
- "providers": [
- {
- "name": "string",
- "issuer": "string",
- "audiences": [
- "string"
], - "remoteJWKS": {
- "uri": "string"
}, - "claimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
]
}
]
}, - "oidc": {
- "provider": {
- "issuer": "string",
- "authorizationURL": "string",
- "tokenURL": "string"
}, - "clientId": "string",
- "clientSecret": "string",
- "redirectURL": "string",
- "logoutPath": "string",
- "scopes": [
- "string"
], - "cookieDomain": "string"
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "backendTrafficPolicy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "config": {
- "compression": [
- {
- "type": "Gzip",
- "gzip": { },
- "brotli": { },
- "zstd": { }
}
], - "retry": {
- "numRetries": 0,
- "retryOn": {
- "httpStatusCodes": [
- 100
], - "triggers": [
- "5xx"
]
}, - "perRetryPolicy": {
- "backOff": {
- "baseInterval": "string",
- "maxInterval": "string"
}, - "timeout": "string"
}
}, - "loadBalancer": {
- "type": "RoundRobin",
- "consistentHash": {
- "type": "SourceIP",
- "header": {
- "name": "string"
}, - "cookie": {
- "name": "string",
- "ttl": "string",
- "attributes": {
- "property1": "string",
- "property2": "string"
}
}
}
}, - "circuitBreaker": {
- "maxConnections": 0,
- "maxPendingRequests": 0,
- "maxParallelRequests": 0,
- "maxParallelRetries": 0,
- "maxRequestsPerConnection": 0
}, - "healthCheck": {
- "active": {
- "timeout": "string",
- "interval": "string",
- "unhealthyThreshold": 0,
- "healthyThreshold": 0,
- "type": "HTTP",
- "http": {
- "path": "string",
- "method": "GET",
- "expectedStatuses": [
- 0
]
}, - "tcp": {
- "send": {
- "type": "Text",
- "text": "string"
}, - "receive": {
- "type": "Text",
- "text": "string"
}
}, - "grpc": {
- "service": "string"
}
}, - "passive": {
- "consecutiveGatewayErrors": 0,
- "consecutive5xxErrors": 0,
- "interval": "string",
- "baseEjectionTime": "string"
}, - "panicThreshold": 0
}, - "faultInjection": {
- "delay": {
- "fixedDelay": "string",
- "percentage": 0
}, - "abort": {
- "httpStatus": 100,
- "grpcStatus": 0,
- "percentage": 0
}
}, - "rateLimit": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- null
], - "sourceCIDR": {
- "value": null,
- "type": null
}, - "path": {
- "value": null,
- "type": null
}, - "methods": [
- null
]
}
]
}
]
}
}, - "requestBuffer": {
- "limit": "string"
}, - "responseOverride": [
- {
- "match": {
- "statusCodes": [
- {
- "type": "Value",
- "value": 0,
- "range": {
- "start": 0,
- "end": 0
}
}
]
}, - "response": {
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}
}
], - "timeout": {
- "tcp": {
- "connectTimeout": "string"
}, - "http": {
- "requestTimeout": "string",
- "connectionIdleTimeout": "string",
- "maxConnectionDuration": "string",
- "maxStreamDuration": "string"
}
}
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "extensionPolicy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "config": {
- "lua": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}, - "wasm": {
- "name": "string",
- "rootID": "string",
- "code": {
- "type": "HTTP",
- "http": {
- "url": "string",
- "sha256": "string"
}, - "image": {
- "url": "string",
- "sha256": "string",
- "pullSecret": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}, - "config": "string"
}, - "extProc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 1
}, - "processingMode": {
- "request": {
- "body": "None"
}, - "response": {
- "body": "None"
}
}, - "failOpen": false
}
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "wafPolicy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "config": {
- "mode": "block",
- "rulesets": [
- "string"
], - "anomalyThreshold": 1,
- "paranoiaLevel": 1,
- "disabledRuleIDs": [
- 0
], - "customDirectives": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
| description | string |
object (RouteConfig) | |
object (SecurityPolicyInput) | |
object (BackendTrafficPolicyInput) | |
object (EnvoyExtensionPolicyInput) Envoy extension policy input for Lua, Wasm, and ext_proc extensions | |
object (WafPolicyConfig) WAF (Web Application Firewall) configuration using coraza-proxy-wasm | |
| changeDescription | string Optional description of the changes for approval |
object (AIReviewResult) | |
object (Labels) Arbitrary key/value labels (Kubernetes-style) attached to a resource. |
{- "description": "string",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityPolicy": {
- "cors": {
- "allowOrigins": [
- "string"
], - "allowMethods": [
- "string"
], - "allowHeaders": [
- "string"
], - "exposeHeaders": [
- "string"
], - "maxAge": 0,
- "allowCredentials": true
}, - "authorization": {
- "allowedCIDRs": [
- "string"
], - "headers": [
- {
- "name": "string",
- "values": [
- "string"
]
}
], - "methods": [
- "string"
]
}, - "apiKeyAuth": {
- "secretName": "string",
- "headerName": "string"
}, - "jwt": {
- "issuer": "string",
- "jwksUrl": "string",
- "audiences": [
- "string"
], - "claimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
]
}, - "oidc": {
- "issuer": "string",
- "clientId": "string",
- "clientSecretName": "string",
- "redirectURL": "string",
- "logoutPath": "string",
- "scopes": [
- "string"
], - "cookieDomain": "string"
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}
}, - "backendTrafficPolicy": {
- "compression": [
- {
- "type": "Gzip",
- "gzip": { },
- "brotli": { },
- "zstd": { }
}
], - "retry": {
- "numRetries": 0,
- "retryOn": {
- "httpStatusCodes": [
- 100
], - "triggers": [
- "5xx"
]
}, - "perRetryPolicy": {
- "backOff": {
- "baseInterval": "string",
- "maxInterval": "string"
}, - "timeout": "string"
}
}, - "loadBalancer": {
- "type": "RoundRobin",
- "consistentHash": {
- "type": "SourceIP",
- "header": {
- "name": "string"
}, - "cookie": {
- "name": "string",
- "ttl": "string",
- "attributes": {
- "property1": "string",
- "property2": "string"
}
}
}
}, - "circuitBreaker": {
- "maxConnections": 0,
- "maxPendingRequests": 0,
- "maxParallelRequests": 0,
- "maxParallelRetries": 0,
- "maxRequestsPerConnection": 0
}, - "healthCheck": {
- "active": {
- "timeout": "string",
- "interval": "string",
- "unhealthyThreshold": 0,
- "healthyThreshold": 0,
- "type": "HTTP",
- "http": {
- "path": "string",
- "method": "GET",
- "expectedStatuses": [
- 0
]
}, - "tcp": {
- "send": {
- "type": "Text",
- "text": "string"
}, - "receive": {
- "type": "Text",
- "text": "string"
}
}, - "grpc": {
- "service": "string"
}
}, - "passive": {
- "consecutiveGatewayErrors": 0,
- "consecutive5xxErrors": 0,
- "interval": "string",
- "baseEjectionTime": "string"
}, - "panicThreshold": 0
}, - "faultInjection": {
- "delay": {
- "fixedDelay": "string",
- "percentage": 0
}, - "abort": {
- "httpStatus": 100,
- "grpcStatus": 0,
- "percentage": 0
}
}, - "rateLimit": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": null,
- "value": null,
- "type": null,
- "invert": null
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "requestBuffer": {
- "limit": "string"
}, - "responseOverride": [
- {
- "match": {
- "statusCodes": [
- {
- "type": "Value",
- "value": 0,
- "range": {
- "start": 0,
- "end": 0
}
}
]
}, - "response": {
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}
}
], - "timeout": {
- "tcp": {
- "connectTimeout": "string"
}, - "http": {
- "requestTimeout": "string",
- "connectionIdleTimeout": "string",
- "maxConnectionDuration": "string",
- "maxStreamDuration": "string"
}
}
}, - "extensionPolicy": {
- "lua": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}, - "wasm": {
- "name": "string",
- "rootID": "string",
- "code": {
- "type": "HTTP",
- "http": {
- "url": "string",
- "sha256": "string"
}, - "image": {
- "url": "string",
- "sha256": "string",
- "pullSecret": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}, - "config": "string"
}, - "extProc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 1
}, - "processingMode": {
- "request": {
- "body": "None"
}, - "response": {
- "body": "None"
}
}, - "failOpen": false
}
}, - "wafPolicy": {
- "mode": "block",
- "rulesets": [
- "string"
], - "anomalyThreshold": 1,
- "paranoiaLevel": 1,
- "disabledRuleIDs": [
- 0
], - "customDirectives": [
- "string"
]
}, - "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "labels": {
- "property1": "string",
- "property2": "string"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "warnings": [
- "string"
]
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
{- "httpRouteYaml": "string",
- "securityPolicyYaml": "string",
- "backendTrafficPolicyYaml": "string",
- "envoyExtensionPolicyYaml": "string",
- "backendYaml": "string",
- "httpRouteFilterYaml": "string",
- "configMapYaml": "string",
- "apiKeyClientResources": [
- {
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "clientName": "string",
- "httpRouteYaml": "string",
- "securityPolicyYaml": "string",
- "backendTrafficPolicyYaml": "string",
- "envoyExtensionPolicyYaml": "string"
}
]
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| name required | string |
| description | string |
| protocol | string Default: "http" Enum: "http" "grpc" |
| teamId required | string <uuid> |
required | object (RouteConfig) |
| securityMode | string (SecurityMode) Enum: "general" "client" Security configuration mode. 'general' configures security directly on the route. 'client' uses client attachments. |
object (SecurityPolicyInput) | |
object (BackendTrafficPolicyInput) | |
object (EnvoyExtensionPolicyInput) Envoy extension policy input for Lua, Wasm, and ext_proc extensions | |
object (WafPolicyConfig) WAF (Web Application Firewall) configuration using coraza-proxy-wasm | |
| changeDescription | string Optional description of the changes for approval |
object (AIReviewResult) | |
object (Labels) Arbitrary key/value labels (Kubernetes-style) attached to a resource. |
{- "name": "string",
- "description": "string",
- "protocol": "http",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "securityPolicy": {
- "cors": {
- "allowOrigins": [
- "string"
], - "allowMethods": [
- "string"
], - "allowHeaders": [
- "string"
], - "exposeHeaders": [
- "string"
], - "maxAge": 0,
- "allowCredentials": true
}, - "authorization": {
- "allowedCIDRs": [
- "string"
], - "headers": [
- {
- "name": "string",
- "values": [
- "string"
]
}
], - "methods": [
- "string"
]
}, - "apiKeyAuth": {
- "secretName": "string",
- "headerName": "string"
}, - "jwt": {
- "issuer": "string",
- "jwksUrl": "string",
- "audiences": [
- "string"
], - "claimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
]
}, - "oidc": {
- "issuer": "string",
- "clientId": "string",
- "clientSecretName": "string",
- "redirectURL": "string",
- "logoutPath": "string",
- "scopes": [
- "string"
], - "cookieDomain": "string"
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}
}, - "backendTrafficPolicy": {
- "compression": [
- {
- "type": "Gzip",
- "gzip": { },
- "brotli": { },
- "zstd": { }
}
], - "retry": {
- "numRetries": 0,
- "retryOn": {
- "httpStatusCodes": [
- 100
], - "triggers": [
- "5xx"
]
}, - "perRetryPolicy": {
- "backOff": {
- "baseInterval": "string",
- "maxInterval": "string"
}, - "timeout": "string"
}
}, - "loadBalancer": {
- "type": "RoundRobin",
- "consistentHash": {
- "type": "SourceIP",
- "header": {
- "name": "string"
}, - "cookie": {
- "name": "string",
- "ttl": "string",
- "attributes": {
- "property1": "string",
- "property2": "string"
}
}
}
}, - "circuitBreaker": {
- "maxConnections": 0,
- "maxPendingRequests": 0,
- "maxParallelRequests": 0,
- "maxParallelRetries": 0,
- "maxRequestsPerConnection": 0
}, - "healthCheck": {
- "active": {
- "timeout": "string",
- "interval": "string",
- "unhealthyThreshold": 0,
- "healthyThreshold": 0,
- "type": "HTTP",
- "http": {
- "path": "string",
- "method": "GET",
- "expectedStatuses": [
- 0
]
}, - "tcp": {
- "send": {
- "type": "Text",
- "text": "string"
}, - "receive": {
- "type": "Text",
- "text": "string"
}
}, - "grpc": {
- "service": "string"
}
}, - "passive": {
- "consecutiveGatewayErrors": 0,
- "consecutive5xxErrors": 0,
- "interval": "string",
- "baseEjectionTime": "string"
}, - "panicThreshold": 0
}, - "faultInjection": {
- "delay": {
- "fixedDelay": "string",
- "percentage": 0
}, - "abort": {
- "httpStatus": 100,
- "grpcStatus": 0,
- "percentage": 0
}
}, - "rateLimit": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": null,
- "value": null,
- "type": null,
- "invert": null
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "requestBuffer": {
- "limit": "string"
}, - "responseOverride": [
- {
- "match": {
- "statusCodes": [
- {
- "type": "Value",
- "value": 0,
- "range": {
- "start": 0,
- "end": 0
}
}
]
}, - "response": {
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}
}
], - "timeout": {
- "tcp": {
- "connectTimeout": "string"
}, - "http": {
- "requestTimeout": "string",
- "connectionIdleTimeout": "string",
- "maxConnectionDuration": "string",
- "maxStreamDuration": "string"
}
}
}, - "extensionPolicy": {
- "lua": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}, - "wasm": {
- "name": "string",
- "rootID": "string",
- "code": {
- "type": "HTTP",
- "http": {
- "url": "string",
- "sha256": "string"
}, - "image": {
- "url": "string",
- "sha256": "string",
- "pullSecret": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}, - "config": "string"
}, - "extProc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 1
}, - "processingMode": {
- "request": {
- "body": "None"
}, - "response": {
- "body": "None"
}
}, - "failOpen": false
}
}, - "wafPolicy": {
- "mode": "block",
- "rulesets": [
- "string"
], - "anomalyThreshold": 1,
- "paranoiaLevel": 1,
- "disabledRuleIDs": [
- 0
], - "customDirectives": [
- "string"
]
}, - "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "labels": {
- "property1": "string",
- "property2": "string"
}
}{- "proposedYaml": "string",
- "proposedSecurityPolicyYaml": "string",
- "proposedBackendTrafficPolicyYaml": "string",
- "proposedBackendYaml": "string",
- "proposedEnvoyExtensionPolicyYaml": "string",
- "proposedHttpRouteFilterYaml": "string",
- "proposedConfigMapYaml": "string"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
required | object (RouteMatch) |
| excludeRouteId | string <uuid> Route ID to exclude from conflict checking (e.g., when checking conflicts while editing an existing route) |
{- "match": {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}, - "excludeRouteId": "660dfe75-b242-456c-b1e6-54da5bec2537"
}{- "conflicts": [
- {
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "routeName": "string"
}
]
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
| description | string |
object (RouteConfig) | |
object (SecurityPolicyInput) | |
object (BackendTrafficPolicyInput) | |
object (EnvoyExtensionPolicyInput) Envoy extension policy input for Lua, Wasm, and ext_proc extensions | |
object (WafPolicyConfig) WAF (Web Application Firewall) configuration using coraza-proxy-wasm | |
| changeDescription | string Optional description of the changes for approval |
object (AIReviewResult) | |
object (Labels) Arbitrary key/value labels (Kubernetes-style) attached to a resource. |
{- "description": "string",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityPolicy": {
- "cors": {
- "allowOrigins": [
- "string"
], - "allowMethods": [
- "string"
], - "allowHeaders": [
- "string"
], - "exposeHeaders": [
- "string"
], - "maxAge": 0,
- "allowCredentials": true
}, - "authorization": {
- "allowedCIDRs": [
- "string"
], - "headers": [
- {
- "name": "string",
- "values": [
- "string"
]
}
], - "methods": [
- "string"
]
}, - "apiKeyAuth": {
- "secretName": "string",
- "headerName": "string"
}, - "jwt": {
- "issuer": "string",
- "jwksUrl": "string",
- "audiences": [
- "string"
], - "claimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
]
}, - "oidc": {
- "issuer": "string",
- "clientId": "string",
- "clientSecretName": "string",
- "redirectURL": "string",
- "logoutPath": "string",
- "scopes": [
- "string"
], - "cookieDomain": "string"
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}
}, - "backendTrafficPolicy": {
- "compression": [
- {
- "type": "Gzip",
- "gzip": { },
- "brotli": { },
- "zstd": { }
}
], - "retry": {
- "numRetries": 0,
- "retryOn": {
- "httpStatusCodes": [
- 100
], - "triggers": [
- "5xx"
]
}, - "perRetryPolicy": {
- "backOff": {
- "baseInterval": "string",
- "maxInterval": "string"
}, - "timeout": "string"
}
}, - "loadBalancer": {
- "type": "RoundRobin",
- "consistentHash": {
- "type": "SourceIP",
- "header": {
- "name": "string"
}, - "cookie": {
- "name": "string",
- "ttl": "string",
- "attributes": {
- "property1": "string",
- "property2": "string"
}
}
}
}, - "circuitBreaker": {
- "maxConnections": 0,
- "maxPendingRequests": 0,
- "maxParallelRequests": 0,
- "maxParallelRetries": 0,
- "maxRequestsPerConnection": 0
}, - "healthCheck": {
- "active": {
- "timeout": "string",
- "interval": "string",
- "unhealthyThreshold": 0,
- "healthyThreshold": 0,
- "type": "HTTP",
- "http": {
- "path": "string",
- "method": "GET",
- "expectedStatuses": [
- 0
]
}, - "tcp": {
- "send": {
- "type": "Text",
- "text": "string"
}, - "receive": {
- "type": "Text",
- "text": "string"
}
}, - "grpc": {
- "service": "string"
}
}, - "passive": {
- "consecutiveGatewayErrors": 0,
- "consecutive5xxErrors": 0,
- "interval": "string",
- "baseEjectionTime": "string"
}, - "panicThreshold": 0
}, - "faultInjection": {
- "delay": {
- "fixedDelay": "string",
- "percentage": 0
}, - "abort": {
- "httpStatus": 100,
- "grpcStatus": 0,
- "percentage": 0
}
}, - "rateLimit": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": null,
- "value": null,
- "type": null,
- "invert": null
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "requestBuffer": {
- "limit": "string"
}, - "responseOverride": [
- {
- "match": {
- "statusCodes": [
- {
- "type": "Value",
- "value": 0,
- "range": {
- "start": 0,
- "end": 0
}
}
]
}, - "response": {
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}
}
], - "timeout": {
- "tcp": {
- "connectTimeout": "string"
}, - "http": {
- "requestTimeout": "string",
- "connectionIdleTimeout": "string",
- "maxConnectionDuration": "string",
- "maxStreamDuration": "string"
}
}
}, - "extensionPolicy": {
- "lua": {
- "type": "Inline",
- "inline": "string",
- "valueRef": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}, - "wasm": {
- "name": "string",
- "rootID": "string",
- "code": {
- "type": "HTTP",
- "http": {
- "url": "string",
- "sha256": "string"
}, - "image": {
- "url": "string",
- "sha256": "string",
- "pullSecret": {
- "group": "string",
- "kind": "ConfigMap",
- "name": "string",
- "namespace": "string"
}
}
}, - "config": "string"
}, - "extProc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 1
}, - "processingMode": {
- "request": {
- "body": "None"
}, - "response": {
- "body": "None"
}
}, - "failOpen": false
}
}, - "wafPolicy": {
- "mode": "block",
- "rulesets": [
- "string"
], - "anomalyThreshold": 1,
- "paranoiaLevel": 1,
- "disabledRuleIDs": [
- 0
], - "customDirectives": [
- "string"
]
}, - "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "labels": {
- "property1": "string",
- "property2": "string"
}
}{- "currentYaml": "string",
- "proposedYaml": "string",
- "currentSecurityPolicyYaml": "string",
- "proposedSecurityPolicyYaml": "string",
- "currentBackendTrafficPolicyYaml": "string",
- "proposedBackendTrafficPolicyYaml": "string",
- "currentBackendYaml": "string",
- "proposedBackendYaml": "string",
- "currentEnvoyExtensionPolicyYaml": "string",
- "proposedEnvoyExtensionPolicyYaml": "string",
- "currentHttpRouteFilterYaml": "string",
- "proposedHttpRouteFilterYaml": "string",
- "currentConfigMapYaml": "string",
- "proposedConfigMapYaml": "string"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
{- "currentYaml": "string",
- "currentSecurityPolicyYaml": "string",
- "currentBackendTrafficPolicyYaml": "string",
- "currentBackendYaml": "string",
- "currentEnvoyExtensionPolicyYaml": "string",
- "currentHttpRouteFilterYaml": "string",
- "currentConfigMapYaml": "string"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "version": 0,
- "configSnapshot": { },
- "routeDescription": "string",
- "protocol": "http",
- "securityMode": "general",
- "changeDescription": "string",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "deployedBy": "fcab9d2b-0287-4cf1-ac53-a503d873370d",
- "deployer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "total": 0,
- "page": 0,
- "limit": 0
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
| version required | integer |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "version": 0,
- "configSnapshot": { },
- "routeDescription": "string",
- "protocol": "http",
- "securityMode": "general",
- "changeDescription": "string",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "deployedBy": "fcab9d2b-0287-4cf1-ac53-a503d873370d",
- "deployer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
| version required | integer |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}Lists routes in a project, optionally filtered by backend service and
namespace. When backend_service and backend_namespace are both set,
only routes whose config.backends[] (and optionally config.mirrors[]
when include_mirrors=true) contain a Kubernetes backend with that
service+namespace are returned. Useful for answering "where is this
service used?".
| projectId required | string <uuid> |
| backend_service | string Match routes whose backends contain a Kubernetes backend with this service name. Must be paired with backend_namespace. |
| backend_namespace | string Match routes whose backends contain a Kubernetes backend in this namespace. Must be paired with backend_service. |
| include_mirrors | boolean Default: false When true, also match against config.mirrors[]. |
| status | string Comma-separated list of statuses (pending_create, pending_update, pending_delete, approved, pending_deploy, active, rejected). |
| team_id | string <uuid> |
| domain_id | string <uuid> |
| page | integer >= 1 Default: 1 |
| limit | integer <= 200 Default: 50 |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}Owner sees all clients. Others see clients belonging to their teams.
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
| teamId | string <uuid> Filter by team |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}| name required | string |
| description | string |
| teamId required | string <uuid> |
| contactName | string |
| contactEmail | string |
| clientIdHeaderName | string Header name for client ID routing (default "x-client-id") |
{- "name": "string",
- "description": "string",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "contactName": "string",
- "contactEmail": "string",
- "clientIdHeaderName": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| clientId required | string <uuid> |
| name | string |
| description | string |
| contactName | string |
| contactEmail | string |
| clientIdHeaderName | string Header name for client ID routing (default "x-client-id") |
{- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "clientIdHeaderName": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| clientId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "enableIpAllowlist": true,
- "enableApiKey": true,
- "enableJwt": true,
- "enableBasicAuth": true,
- "enableMtls": true,
- "enableHeaderAuth": true,
- "rateLimitConfig": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": null,
- "value": null,
- "type": null,
- "invert": null
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}, - "status": "pending_attach",
- "client": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "route": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]| clientId required | string <uuid> |
| routeId required | string <uuid> |
| projectId required | string <uuid> |
| enableIpAllowlist | boolean Default: false Require client IP to be in allowlist |
| enableApiKey | boolean Default: false Require client to provide valid API key |
| enableJwt | boolean Default: false Require client to provide valid JWT token |
| enableBasicAuth | boolean Default: false |
| enableMtls | boolean Default: false |
| enableHeaderAuth | boolean Default: false Require client to satisfy header-based authorization rules |
object (RateLimitConfig) Rate limit configuration for controlling request volume | |
object (ExtAuthConfig) |
{- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "enableIpAllowlist": false,
- "enableApiKey": false,
- "enableJwt": false,
- "enableBasicAuth": false,
- "enableMtls": false,
- "enableHeaderAuth": false,
- "rateLimitConfig": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": "string",
- "value": "string",
- "type": "Exact",
- "invert": false
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "enableIpAllowlist": true,
- "enableApiKey": true,
- "enableJwt": true,
- "enableBasicAuth": true,
- "enableMtls": true,
- "enableHeaderAuth": true,
- "rateLimitConfig": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": "string",
- "value": "string",
- "type": "Exact",
- "invert": false
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}, - "status": "pending_attach",
- "client": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "route": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "enableIpAllowlist": true,
- "enableApiKey": true,
- "enableJwt": true,
- "enableBasicAuth": true,
- "enableMtls": true,
- "enableHeaderAuth": true,
- "rateLimitConfig": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": null,
- "value": null,
- "type": null,
- "invert": null
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}, - "status": "pending_attach",
- "client": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "route": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
| clientId required | string <uuid> |
| enableIpAllowlist | boolean Default: false Require client IP to be in allowlist |
| enableApiKey | boolean Default: false Require client to provide valid API key |
| enableJwt | boolean Default: false Require client to provide valid JWT token |
| enableBasicAuth | boolean Default: false |
| enableMtls | boolean Default: false |
| enableHeaderAuth | boolean Default: false Require client to satisfy header-based authorization rules |
object (RateLimitConfig) Rate limit configuration for controlling request volume | |
object (ExtAuthConfig) |
{- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "enableIpAllowlist": false,
- "enableApiKey": false,
- "enableJwt": false,
- "enableBasicAuth": false,
- "enableMtls": false,
- "enableHeaderAuth": false,
- "rateLimitConfig": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": "string",
- "value": "string",
- "type": "Exact",
- "invert": false
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "enableIpAllowlist": true,
- "enableApiKey": true,
- "enableJwt": true,
- "enableBasicAuth": true,
- "enableMtls": true,
- "enableHeaderAuth": true,
- "rateLimitConfig": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": "string",
- "value": "string",
- "type": "Exact",
- "invert": false
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}, - "status": "pending_attach",
- "client": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "route": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
| attachmentId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "enableIpAllowlist": true,
- "enableApiKey": true,
- "enableJwt": true,
- "enableBasicAuth": true,
- "enableMtls": true,
- "enableHeaderAuth": true,
- "rateLimitConfig": {
- "global": {
- "rules": [
- {
- "limit": {
- "requests": 1,
- "unit": "Second"
}, - "clientSelectors": [
- {
- "headers": [
- {
- "name": "string",
- "value": "string",
- "type": "Exact",
- "invert": false
}
], - "sourceCIDR": {
- "value": "string",
- "type": "Exact"
}, - "path": {
- "value": "string",
- "type": "Exact"
}, - "methods": [
- "string"
]
}
]
}
]
}
}, - "extAuth": {
- "type": "http",
- "http": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}, - "path": "string",
- "headersToBackend": [
- "string"
]
}, - "grpc": {
- "backendRef": {
- "name": "string",
- "namespace": "string",
- "port": 0
}
}, - "failOpen": true,
- "headersToExtAuth": [
- "string"
], - "headersToDownstreamOnDeny": [
- "string"
], - "headersToDownstreamOnAllow": [
- "string"
], - "headersToUpstreamOnAllow": [
- "string"
], - "withRequestBody": {
- "maxBytes": 0
}
}, - "status": "pending_attach",
- "client": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "route": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "domainId": "8a0b02c3-fdd8-452e-bc6e-ef07a335ec7e",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "name": "string",
- "description": "string",
- "protocol": "http",
- "status": "pending_create",
- "config": {
- "routeType": "backend",
- "matches": [
- {
- "path": {
- "type": "Exact",
- "value": "string"
}, - "headers": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "method": "GET",
- "queryParams": [
- {
- "name": "string",
- "type": "Exact",
- "value": "string"
}
], - "grpcService": {
- "type": "Exact",
- "value": "string"
}, - "grpcMethod": {
- "type": "Exact",
- "value": "string"
}
}
], - "backends": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0,
- "weight": 100,
- "fallback": false,
- "addressType": "fqdn",
- "address": "string",
- "tls": {
- "clientCertificateRef": {
- "name": "string",
- "namespace": "string"
}, - "caCertificateRefs": [
- {
- "kind": "Secret",
- "name": "string",
- "namespace": "string"
}
]
}
}
], - "mirrors": [
- {
- "type": "kubernetes",
- "service": "string",
- "namespace": "string",
- "port": 0
}
], - "redirect": {
- "scheme": "http",
- "hostname": "string",
- "port": 0,
- "statusCode": 301,
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "directResponse": {
- "statusCode": 100,
- "contentType": "string",
- "body": {
- "type": "Inline",
- "inline": "string"
}
}, - "requestHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "responseHeaderModifier": {
- "set": [
- {
- "name": "string",
- "value": "string"
}
], - "add": [
- {
- "name": "string",
- "value": "string"
}
], - "remove": [
- "string"
]
}, - "urlRewrite": {
- "hostname": "string",
- "path": {
- "type": "ReplacePrefixMatch",
- "replacePrefixMatch": "string",
- "replaceFullPath": "string"
}
}, - "defaultTrafficPolicy": "allow_all",
- "defaultAllowedCIDRs": [
- "string"
]
}, - "securityMode": "general",
- "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "clientCount": 0,
- "securityStatus": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "labels": {
- "property1": "string",
- "property2": "string"
}
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "pendingApproval": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Returns the merged IP allowlist from all active client attachments with IP allowlisting enabled.
| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
[- {
- "cidr": "string",
- "clientId": "string",
- "clientName": "string",
- "description": "string"
}
]| projectId required | string <uuid> |
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
| status | string Default: "pending" Enum: "pending" "approved" "rejected" |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
| stageId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
| stageId required | string <uuid> |
| comment required | string non-empty |
{- "comment": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
| status | string Enum: "pending" "approved" "rejected" "cancelled" |
| entityType | string Enum: "route" "client_attachment" |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
{- "action": "create",
- "currentYaml": "string",
- "proposedYaml": "string",
- "currentSecurityPolicyYaml": "string",
- "proposedSecurityPolicyYaml": "string",
- "currentBackendTrafficPolicyYaml": "string",
- "proposedBackendTrafficPolicyYaml": "string",
- "currentBackendYaml": "string",
- "proposedBackendYaml": "string",
- "currentEnvoyExtensionPolicyYaml": "string",
- "proposedEnvoyExtensionPolicyYaml": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
| stageId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
| stageId required | string <uuid> |
| comment required | string non-empty |
{- "comment": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "body": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}
], - "total": 0
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
| body required | string <= 10000 characters |
{- "body": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "body": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
{- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}| projectId required | string <uuid> |
| approvalId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "action": "create",
- "configSnapshot": { },
- "previousConfig": { },
- "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
- "submitter": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "stages": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6",
- "order": 0,
- "requiredPermission": "string",
- "requiredTeamId": "e2a76a99-702a-4a2a-b0ea-b7695f342c9e",
- "requiredTeamName": "string",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "status": "pending",
- "comment": "string",
- "minApprovers": 0,
- "reviews": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "stageId": "4ac83d66-64fa-48da-9505-57df43404af7",
- "reviewerId": "6426b718-0cec-4a62-ba39-47b50ade3870",
- "reviewer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "decision": "approved",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "reviewedAt": "2019-08-24T14:15:22Z"
}
], - "entityName": "string",
- "domainName": "string",
- "changeDescription": "string",
- "aiReview": {
- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| range | string Default: "1h" Enum: "15m" "1h" "6h" "24h" "7d" Lookback window for the query |
{- "timeRange": {
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "step": "string"
}, - "totalRequests": 0,
- "errorRatePercent": 0,
- "rps": {
- "2xx": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "3xx": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "4xx": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "5xx": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
]
}, - "latency": {
- "p50": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "p95": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "p99": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
]
}, - "topRoutesByRps": [
- {
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "routeName": "string",
- "value": 0
}
], - "topRoutesByErrorRate": [
- {
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "routeName": "string",
- "value": 0
}
]
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| routeId required | string <uuid> |
| range | string Default: "1h" Enum: "15m" "1h" "6h" "24h" "7d" Lookback window for the query |
{- "timeRange": {
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "step": "string"
}, - "totalRequests": 0,
- "errorRatePercent": 0,
- "rps": {
- "2xx": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "3xx": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "4xx": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "5xx": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
]
}, - "latency": {
- "p50": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "p95": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "p99": [
- {
- "time": "2019-08-24T14:15:22Z",
- "value": 0
}
]
}
}Returns the raw DB-stored values alongside the effective values (DB override if set, else env var/config default).
{- "baseUrl": "string",
- "jwtExpiry": "string",
- "refreshTokenExpiry": "string",
- "logLevel": "debug",
- "effective": {
- "baseUrl": "string",
- "jwtExpiry": "string",
- "refreshTokenExpiry": "string",
- "logLevel": "debug"
}
}All fields are optional, but any field omitted from the request body is cleared to empty (falling back to its effective default) — this is a full replace, not a partial merge. jwtExpiry/refreshTokenExpiry must parse as Go duration strings (e.g. 24h, 1h30m); logLevel must be one of debug/info/warn/error.
| baseUrl | string |
| jwtExpiry | string Go duration string (e.g. 24h, 1h30m) |
| refreshTokenExpiry | string Go duration string (e.g. 168h, 720h) |
| logLevel | string Enum: "debug" "info" "warn" "error" |
{- "baseUrl": "string",
- "jwtExpiry": "string",
- "refreshTokenExpiry": "string",
- "logLevel": "debug"
}{- "baseUrl": "string",
- "jwtExpiry": "string",
- "refreshTokenExpiry": "string",
- "logLevel": "debug",
- "effective": {
- "baseUrl": "string",
- "jwtExpiry": "string",
- "refreshTokenExpiry": "string",
- "logLevel": "debug"
}
}Returns the domain's gateway status, routes, backends, and (in client security mode) attached clients and per-attachment enforcement flags.
| projectId required | string <uuid> |
| domainId required | string <uuid> |
{- "domain": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "hostname": "string",
- "securityMode": "general",
- "templateName": "string"
}, - "gateway": {
- "status": "deployed",
- "listenerPort": 0,
- "listenerProtocol": "string",
- "tls": {
- "secretName": "string",
- "secretNamespace": "string"
}, - "gatewayClass": "string"
}, - "routes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "protocol": "string",
- "matcherSummary": "string",
- "method": "string",
- "status": "deployed",
- "routeLevelSecurity": {
- "ipAllowlist": true,
- "mtls": true,
- "apiKey": true,
- "jwt": true,
- "basicAuth": true,
- "headerAuth": true,
- "rateLimit": true,
- "extAuth": true,
- "oidc": true,
- "waf": true
}, - "backendIds": [
- "string"
], - "backendRoles": [
- {
- "backendId": "string",
- "role": "primary",
- "weight": 0
}
]
}
], - "backends": [
- {
- "id": "string",
- "type": "string",
- "service": "string",
- "namespace": "string",
- "address": "string",
- "addressType": "string",
- "port": 0,
- "hitCount": 0
}
], - "clients": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "teamName": "string",
- "capabilities": {
- "apiKey": true,
- "jwt": true,
- "mtls": true,
- "ipAllowlistSize": 0
}
}
], - "attachments": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "routeId": "fef0741a-9185-417e-be48-b4fe23a36919",
- "status": "deployed",
- "enforced": {
- "ipAllowlist": true,
- "mtls": true,
- "apiKey": true,
- "jwt": true,
- "basicAuth": true,
- "headerAuth": true,
- "rateLimit": true,
- "extAuth": true,
- "oidc": true,
- "waf": true
}, - "hasRateLimit": true,
- "hasExtAuth": true
}
]
}Aggregates per-domain summary cards, per-client per-domain rollups, and IP-allowlist reachability rows across every domain in the project.
| projectId required | string <uuid> |
{- "domains": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "hostname": "string",
- "securityMode": "general",
- "templateName": "string",
- "gatewayStatus": "deployed",
- "counts": {
- "routes": 0,
- "clientsAttached": 0,
- "routesWithIpAllowlist": 0,
- "routesWithMtls": 0
}
}
], - "clients": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "teamName": "string",
- "capabilities": {
- "apiKey": true,
- "jwt": true,
- "mtls": true,
- "ipAllowlistSize": 0
}, - "perDomain": {
- "property1": {
- "routeCount": 0,
- "aggregateStatus": "deployed"
}, - "property2": {
- "routeCount": 0,
- "aggregateStatus": "deployed"
}
}
}
], - "ips": [
- {
- "cidr": "string",
- "source": "route",
- "sourceRef": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "reach": {
- "routeIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "domainIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}, - "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Requires audit.view permission, Owner, or Project Admin role.
| projectId required | string <uuid> |
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
| resourceType | string Enum: "domain" "domain_template" "route" "team" "user" "project_namespace" "approval" |
| action | string Enum: "create" "update" "delete" "approve" "reject" "deploy" "approve_stage" "reject_stage" "cancel_approval" |
| userId | string <uuid> |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "username": "string",
- "action": "string",
- "resourceType": "string",
- "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6",
- "resourceName": "string",
- "details": { },
- "ipAddress": "string",
- "userAgent": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}Exports all matching audit logs as a CSV file. Supports the same filters as the list endpoint but returns all results without pagination. Requires audit.view permission, Owner, or Project Admin role.
| projectId required | string <uuid> |
| resourceType | string Enum: "domain" "domain_template" "route" "team" "user" "project_namespace" "approval" |
| action | string Enum: "create" "update" "delete" "approve" "reject" "deploy" "approve_stage" "reject_stage" "cancel_approval" |
| userId | string <uuid> |
{- "code": "string",
- "message": "string"
}Permanently deletes audit logs older than the specified number of days. This action cannot be undone. Requires Owner or Project Admin role.
| projectId required | string <uuid> |
| days required | integer >= 1 Delete audit logs older than this many days |
{- "days": 90
}{- "deleted": 0,
- "message": "Deleted 42 audit logs older than 90 days"
}| clientId required | string <uuid> |
| enabled | boolean |
| caName | string CA certificate name |
| caPem | string CA certificate PEM content |
Array of objects (MTLSSANEntry) | |
| hashes | Array of strings |
{- "enabled": true,
- "caName": "string",
- "caPem": "string",
- "sans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "hashes": [
- "string"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Attaches a managed, usage=client certificate (issued via POST /projects/{projectId}/certificates) to this client's mTLS configuration. Writes only the client row -- the CA Secret and ClientTrafficPolicy it implies materialize at the next domain deploy, exactly like PUT .../mtls. Requires the caller to be a member of the client's team, and the certificate to be usage=client, status=ready, in a project the client's team has access to, and not already attached elsewhere.
| clientId required | string <uuid> |
| certificateId required | string <uuid> A managed, usage=client certificate (see POST /projects/{projectId}/certificates) in a project the client's team has access to. |
{- "certificateId": "93038071-4553-48f6-8780-c7262cd9be88"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Clears the client's managed certificate and its derived mTLS fields, reverting the client to no mTLS. A previously-configured BYO mTLS configuration is not restored automatically -- re-add it via PUT .../mtls if wanted.
| clientId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Lists managed client-usage certificates that are ready, in a project the client's team has a role in, and not already attached to any client -- scoping the attach picker to what this client could actually attach, rather than every certificate the caller can see. Responses carry certificate metadata only, never key material.
| clientId required | string <uuid> |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "issuerId": "d481fa31-74f9-4e8d-98ce-a395773acfa0",
- "usage": "server",
- "dnsNames": [
- "string"
], - "status": "pending",
- "statusMessage": "string",
- "fingerprint": "string",
- "notAfter": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "keyMode": "managed",
- "subject": "string",
- "uriSans": [
- "string"
], - "exportAvailable": true
}
]
}Interactive AI chat with context about routes and domains. Supports conversation history. Returns Server-Sent Events (SSE) stream. Enterprise-only feature.
| message required | string <= 10000 characters User message to the AI assistant |
object (AIChatContext) | |
Array of objects (AIChatMessage) <= 50 items Previous conversation messages |
{- "message": "string",
- "context": {
- "type": "route",
- "route": { },
- "domain": { }
}, - "history": [
- {
- "role": "user",
- "content": "string"
}
]
}{- "code": "string",
- "message": "string"
}| projectId required | string <uuid> |
| domainId required | string <uuid> |
| mode required | string Enum: "natural_language" "manifest_import" |
| input required | string User prompt or YAML manifest |
| formatHint | string Enum: "ingress" "istio" "kong" Source manifest dialect hint, used when mode is manifest_import |
{- "mode": "natural_language",
- "input": "string",
- "formatHint": "ingress"
}{- "code": "string",
- "message": "string"
}Sends current and/or proposed YAML configurations to AI for structured review. Returns summary, risks, security notes, suggestions, and config highlights. Enterprise-only feature.
| projectId required | string <uuid> |
| domainId required | string <uuid> |
| action required | string Enum: "create" "update" "delete" Type of route change being reviewed |
| description | string Optional human description of the changes |
object (AIYamlSet) Set of YAML strings for different resource types | |
object (AIYamlSet) Set of YAML strings for different resource types |
{- "action": "create",
- "description": "string",
- "proposedYaml": {
- "httpRoute": "string",
- "securityPolicy": "string",
- "backendTrafficPolicy": "string",
- "envoyExtensionPolicy": "string",
- "backend": "string"
}, - "currentYaml": {
- "httpRoute": "string",
- "securityPolicy": "string",
- "backendTrafficPolicy": "string",
- "envoyExtensionPolicy": "string",
- "backend": "string"
}
}{- "summary": "string",
- "risks": [
- {
- "severity": "warning",
- "message": "string"
}
], - "securityNotes": [
- {
- "severity": "warning",
- "message": "string"
}
], - "suggestions": [
- "string"
], - "configHighlights": [
- "string"
]
}| projectId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "action": "string",
- "stages": [
- {
- "order": 0,
- "required_permission": "string",
- "team_scope": "any",
- "min_approvers": 0
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]Creates a custom approval policy for a project. Policies define the approval stages required for specific entity types (route, client_attachment) and actions.
| projectId required | string <uuid> |
| entityType required | string Enum: "route" "client_attachment" Type of entity this policy applies to |
| action | string Specific action this policy applies to (optional) |
required | Array of objects (PolicyStageInput) Approval stages to configure |
{- "entityType": "route",
- "action": "string",
- "stages": [
- {
- "order": 0,
- "requiredPermission": "string",
- "teamScope": "any",
- "minApprovers": 0
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "action": "string",
- "stages": [
- {
- "order": 0,
- "required_permission": "string",
- "team_scope": "any",
- "min_approvers": 0
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| policyId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "action": "string",
- "stages": [
- {
- "order": 0,
- "required_permission": "string",
- "team_scope": "any",
- "min_approvers": 0
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| policyId required | string <uuid> |
| entityType required | string Enum: "route" "client_attachment" Type of entity this policy applies to |
| action | string Specific action this policy applies to (optional) |
required | Array of objects (PolicyStageInput) Approval stages to configure |
{- "entityType": "route",
- "action": "string",
- "stages": [
- {
- "order": 0,
- "requiredPermission": "string",
- "teamScope": "any",
- "minApprovers": 0
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "entityType": "route",
- "action": "string",
- "stages": [
- {
- "order": 0,
- "required_permission": "string",
- "team_scope": "any",
- "min_approvers": 0
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| clientId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "name": "string",
- "values": [
- "string"
], - "description": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]Adds a header authorization rule to the client. The header name and values are used to match incoming requests for authorization. Routes with this client attached will move to pending_deploy status.
| clientId required | string <uuid> |
| name required | string Header name (e.g., "x-user-id") |
| values required | Array of strings Allowed values for this header |
| description | string |
{- "name": "string",
- "values": [
- "string"
], - "description": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "name": "string",
- "values": [
- "string"
], - "description": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}Removes a header authorization rule from the client. Routes with this client attached will move to pending_deploy status.
| clientId required | string <uuid> |
| headerId required | string <uuid> |
{- "code": "string",
- "message": "string"
}Sets the allowed HTTP methods for the client. These methods are used in authorization rules when the client is attached to routes. Valid methods: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS. Pass an empty array to clear all method restrictions. Routes with this client attached will move to pending_deploy status.
| clientId required | string <uuid> |
| methods required | Array of strings Items Enum: "GET" "POST" "PUT" "DELETE" "PATCH" "HEAD" "OPTIONS" Allowed HTTP methods for this client |
{- "methods": [
- "GET"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
- "name": "string",
- "description": "string",
- "contactName": "string",
- "contactEmail": "string",
- "ipAddressCount": 0,
- "headerCount": 0,
- "attachmentCount": 0,
- "apiKeyEnabled": true,
- "apiKeyPrefix": "string",
- "apiKeyHeaderName": "string",
- "apiKeyCreatedAt": "2019-08-24T14:15:22Z",
- "apiKeyCreatedBy": "6c6b69b2-3a82-447c-bb3b-021672b61a37",
- "clientIdHeaderName": "string",
- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5",
- "jwtCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "mtlsEnabled": true,
- "mtlsCaName": "string",
- "mtlsCaSecret": "string",
- "mtlsCaSecretKey": "string",
- "mtlsSans": [
- {
- "type": "DNS",
- "value": "string"
}
], - "mtlsHashes": [
- "string"
], - "mtlsCreatedAt": "2019-08-24T14:15:22Z",
- "mtlsCreatedBy": "61155729-cc3f-4ef6-afd2-3810176240d0",
- "mtlsCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "managedCertificateId": "7fd97265-059c-4695-8f7b-acfe4bd852da",
- "allowedMethods": [
- "GET"
], - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "memberCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "apiKeyCreator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Processes the callback from the OIDC identity provider and redirects to frontend with tokens
| code | string Authorization code from IdP |
| state | string CSRF state token |
| error | string Error from IdP (if any) |
| error_description | string Error description from IdP |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "enabled": true,
- "providerName": "string",
- "issuerUrl": "string",
- "clientId": "string",
- "scopes": [
- "string"
], - "allowedDomains": [
- "string"
], - "allowedEmails": [
- "user@example.com"
], - "autoRegister": true,
- "forceSSO": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| providerName required | string Identity provider name (e.g., google, okta) |
| issuerUrl required | string OIDC issuer URL |
| clientId required | string OAuth2 client ID |
| clientSecret required | string OAuth2 client secret |
| scopes | Array of strings OAuth2 scopes (default - openid, email, profile) |
| allowedDomains | Array of strings Restrict SSO to these email domains |
| allowedEmails | Array of strings <email> [ items <email > ] Restrict SSO to these specific email addresses |
| autoRegister | boolean Auto-create users on first SSO login |
| forceSSO | boolean Force SSO for non-owner users |
{- "providerName": "string",
- "issuerUrl": "string",
- "clientId": "string",
- "clientSecret": "string",
- "scopes": [
- "string"
], - "allowedDomains": [
- "string"
], - "allowedEmails": [
- "user@example.com"
], - "autoRegister": true,
- "forceSSO": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "enabled": true,
- "providerName": "string",
- "issuerUrl": "string",
- "clientId": "string",
- "scopes": [
- "string"
], - "allowedDomains": [
- "string"
], - "allowedEmails": [
- "user@example.com"
], - "autoRegister": true,
- "forceSSO": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Platform-global. Never includes credential material.
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "providerType": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Credentials are encrypted at rest and never returned in any response.
| name required | string |
| providerType required | string DNS provider identifier (e.g. cloudflare, route53). |
required | object Provider-specific plaintext credential values (e.g. |
{- "name": "string",
- "providerType": "string",
- "credentials": {
- "property1": "string",
- "property2": "string"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "providerType": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Metadata only, never includes credential material.
| dnsCredentialId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "providerType": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Update the name and/or rotate the credential values. Omitting credentials leaves the existing encrypted values untouched.
| dnsCredentialId required | string <uuid> |
| name | string |
object Provider-specific plaintext credential values to rotate. Encrypted at rest; never returned in any response. |
{- "name": "string",
- "credentials": {
- "property1": "string",
- "property2": "string"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "providerType": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Platform-global certificate issuer and issuer-project grant management (owner only)
Platform-global. Never includes key material.
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "self_signed_ca",
- "status": "pending",
- "statusMessage": "string",
- "config": {
- "commonName": "string",
- "keyAlgorithm": "string",
- "keySize": 0,
- "durationDays": 0,
- "caSecretName": "string",
- "server": "string",
- "email": "string",
- "eabKeyId": "string",
- "dnsCredentialId": "e9f8639e-b43a-4064-8d5f-9c5cfadbca10",
- "issuerName": "string",
- "accountSecretName": "string",
- "solverSecretName": "string",
- "eabSecretName": "string"
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Body discriminated by type (self_signed_ca or acme). Creates the corresponding cert-manager CRDs in the control cluster.
| type required | string Enum: "self_signed_ca" "acme" |
| name required | string |
| commonName | string Required when type is self_signed_ca. |
| keyAlgorithm | string Defaults to RSA when type is self_signed_ca. |
| keySize | integer Defaults to 4096 when type is self_signed_ca. |
| durationDays | integer Defaults to 3650 when type is self_signed_ca. |
| server | string ACME server URL. Required when type is acme. |
string Required when type is acme. | |
| eabKeyId | string ACME External Account Binding key ID, if the ACME server requires EAB (e.g. ZeroSSL). |
| eabHmacKey | string ACME External Account Binding HMAC key, plaintext in the request only -- stored as a cert-manager Secret, never persisted in this row or returned. |
| dnsCredentialId | string <uuid> DNS provider credential used for the ACME DNS-01 solver. Required when type is acme. |
{- "type": "self_signed_ca",
- "name": "string",
- "commonName": "string",
- "keyAlgorithm": "string",
- "keySize": 0,
- "durationDays": 0,
- "server": "string",
- "email": "string",
- "eabKeyId": "string",
- "eabHmacKey": "string",
- "dnsCredentialId": "e9f8639e-b43a-4064-8d5f-9c5cfadbca10"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "self_signed_ca",
- "status": "pending",
- "statusMessage": "string",
- "config": {
- "commonName": "string",
- "keyAlgorithm": "string",
- "keySize": 0,
- "durationDays": 0,
- "caSecretName": "string",
- "server": "string",
- "email": "string",
- "eabKeyId": "string",
- "dnsCredentialId": "e9f8639e-b43a-4064-8d5f-9c5cfadbca10",
- "issuerName": "string",
- "accountSecretName": "string",
- "solverSecretName": "string",
- "eabSecretName": "string"
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| issuerId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "self_signed_ca",
- "status": "pending",
- "statusMessage": "string",
- "config": {
- "commonName": "string",
- "keyAlgorithm": "string",
- "keySize": 0,
- "durationDays": 0,
- "caSecretName": "string",
- "server": "string",
- "email": "string",
- "eabKeyId": "string",
- "dnsCredentialId": "e9f8639e-b43a-4064-8d5f-9c5cfadbca10",
- "issuerName": "string",
- "accountSecretName": "string",
- "solverSecretName": "string",
- "eabSecretName": "string"
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}cert-manager readiness of the underlying Issuer (Ready condition + message).
| issuerId required | string <uuid> |
{- "status": "pending",
- "statusMessage": "string"
}| issuerId required | string <uuid> |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "issuerId": "d481fa31-74f9-4e8d-98ce-a395773acfa0",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}| issuerId required | string <uuid> |
| projectId required | string <uuid> |
{- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8"
}{- "code": "string",
- "message": "string"
}409 if a certificate in that project still uses the issuer.
| issuerId required | string <uuid> |
| projectId required | string <uuid> |
{- "code": "string",
- "message": "string"
}Owner-only fleet view of managed certificates across ALL projects, enriched with each certificate's resolved issuer name/type, Phase 3a distribution sync state, and referencing domains. Filterable by projectId to narrow to a single project.
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
| status | string Enum: "pending" "issuing" "ready" "error" Filter by certificate status. |
| usage | string Enum: "server" "client" Filter by certificate usage. |
| issuerId | string <uuid> Filter by issuer. |
| projectId | string <uuid> Filter to a single project. |
| expiresBefore | string <date-time> Filter to certificates expiring before this RFC3339 timestamp. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "issuerId": "d481fa31-74f9-4e8d-98ce-a395773acfa0",
- "usage": "server",
- "dnsNames": [
- "string"
], - "status": "pending",
- "statusMessage": "string",
- "fingerprint": "string",
- "notAfter": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "keyMode": "managed",
- "subject": "string",
- "uriSans": [
- "string"
], - "exportAvailable": true,
- "issuerName": "string",
- "issuerType": "string",
- "distribution": {
- "status": "pending",
- "lastPushedFingerprint": "string",
- "message": "string",
- "lastSyncedAt": "2019-08-24T14:15:22Z"
}, - "domains": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "hostname": "string"
}
]
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}Each item is enriched with its resolved issuer name/type, Phase 3a distribution sync state, and the domains referencing it.
| projectId required | string <uuid> |
| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
| status | string Enum: "pending" "issuing" "ready" "error" Filter by certificate status. |
| issuerId | string <uuid> Filter by issuer. |
| usage | string Enum: "server" "client" Filter by certificate usage. |
| expiresBefore | string <date-time> Filter to certificates expiring before this RFC3339 timestamp. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "issuerId": "d481fa31-74f9-4e8d-98ce-a395773acfa0",
- "usage": "server",
- "dnsNames": [
- "string"
], - "status": "pending",
- "statusMessage": "string",
- "fingerprint": "string",
- "notAfter": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "keyMode": "managed",
- "subject": "string",
- "uriSans": [
- "string"
], - "exportAvailable": true,
- "issuerName": "string",
- "issuerType": "string",
- "distribution": {
- "status": "pending",
- "lastPushedFingerprint": "string",
- "message": "string",
- "lastSyncedAt": "2019-08-24T14:15:22Z"
}, - "domains": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "hostname": "string"
}
]
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}Issues a certificate from an issuer granted to this project. Opens an approval when the project has approvals enabled (returns 202 with the pending certificate + approvalId); otherwise issues immediately (201, approvalId null).
| projectId required | string <uuid> |
| name required | string |
| issuerId required | string <uuid> |
| usage required | string Enum: "server" "client" |
| dnsNames | Array of strings Required when usage is server. |
| subject | string Required when usage is client. |
| keyAlgorithm | string Defaults to RSA. |
| keySize | integer Defaults to 2048. |
| durationDays | integer Defaults to 90. |
| keyMode | string Enum: "managed" "csr" Defaults to managed (cert-manager generates and holds the leaf private key). Set to csr to have cert-manager only sign a caller-supplied CSR, in which case csr is required and the private key never exists server-side (so export is not applicable to the resulting certificate). |
| uriSans | Array of strings URI Subject Alternative Names, applicable to client-usage certificates. |
| csr | string Caller-supplied PEM-encoded certificate signing request. Required when keyMode is csr; ignored otherwise. |
{- "name": "string",
- "issuerId": "d481fa31-74f9-4e8d-98ce-a395773acfa0",
- "usage": "server",
- "dnsNames": [
- "string"
], - "subject": "string",
- "keyAlgorithm": "string",
- "keySize": 0,
- "durationDays": 0,
- "keyMode": "managed",
- "uriSans": [
- "string"
], - "csr": "string"
}{- "certificate": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "issuerId": "d481fa31-74f9-4e8d-98ce-a395773acfa0",
- "usage": "server",
- "dnsNames": [
- "string"
], - "status": "pending",
- "statusMessage": "string",
- "fingerprint": "string",
- "notAfter": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "keyMode": "managed",
- "subject": "string",
- "uriSans": [
- "string"
], - "exportAvailable": true
}, - "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6"
}Populates a certificate-create form's issuer picker. Never includes key material.
| projectId required | string <uuid> |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "self_signed_ca",
- "status": "pending",
- "statusMessage": "string",
- "config": {
- "commonName": "string",
- "keyAlgorithm": "string",
- "keySize": 0,
- "durationDays": 0,
- "caSecretName": "string",
- "server": "string",
- "email": "string",
- "eabKeyId": "string",
- "dnsCredentialId": "e9f8639e-b43a-4064-8d5f-9c5cfadbca10",
- "issuerName": "string",
- "accountSecretName": "string",
- "solverSecretName": "string",
- "eabSecretName": "string"
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| projectId required | string <uuid> |
| certificateId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "issuerId": "d481fa31-74f9-4e8d-98ce-a395773acfa0",
- "usage": "server",
- "dnsNames": [
- "string"
], - "status": "pending",
- "statusMessage": "string",
- "fingerprint": "string",
- "notAfter": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "keyMode": "managed",
- "subject": "string",
- "uriSans": [
- "string"
], - "exportAvailable": true
}Removes the leaf Certificate CRD (and its Secret) from the control cluster.
| projectId required | string <uuid> |
| certificateId required | string <uuid> |
{- "code": "string",
- "message": "string"
}Live cert-manager readiness of the underlying Certificate resource (Ready condition + message).
| projectId required | string <uuid> |
| certificateId required | string <uuid> |
{- "status": "pending",
- "message": "string",
- "notAfter": "2019-08-24T14:15:22Z"
}Phase 3a distribution state -- how far the certdist controller has gotten pushing this certificate's Secret into the project's tenant cluster. Returns a pending placeholder (not a 404) when the controller has not pushed it yet.
| projectId required | string <uuid> |
| certificateId required | string <uuid> |
{- "status": "pending",
- "lastPushedFingerprint": "string",
- "message": "string",
- "lastSyncedAt": "2019-08-24T14:15:22Z"
}Flips the distribution row back to pending so the certdist controller re-pushes the certificate's Secret on its next tick. NOTIFY is not wired up, so this is a ticker-driven nudge rather than an immediate push.
| projectId required | string <uuid> |
| certificateId required | string <uuid> |
{- "code": "string",
- "message": "string"
}Opens an approval to export a managed-key certificate's private key material. Once approved -- immediately, if the project has approvals disabled -- the requesting user gets a short-lived, single-use grant redeemable via GET .../export/download. Only applicable to managed-key certificates (keyMode: managed): a csr-key-mode certificate's private key never existed server-side (only its CSR was handed to cert-manager), so there is nothing to export and this returns 409.
| projectId required | string <uuid> |
| certificateId required | string <uuid> |
{- "approvalId": "23bbe807-dea1-4601-b208-07fd1aaad2b6"
}Streams the certificate's leaf certificate, private key, and issuer CA chain
as a single concatenated application/x-pem-file attachment. This is the
ONLY endpoint in the API that ever returns private key material, and only
when the calling user holds an approved, unconsumed, unexpired export grant
for this certificate (see POST .../export) -- the grant is consumed
atomically on this call, so it can be downloaded exactly once.
| projectId required | string <uuid> |
| certificateId required | string <uuid> |
{- "code": "string",
- "message": "string"
}| page | integer >= 1 Default: 1 |
| limit | integer [ 1 .. 100 ] Default: 20 |
| unread | string Value: "true" Filter to unread notifications only |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "type": "string",
- "title": "string",
- "link": "string",
- "isRead": true,
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}| projectId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]| projectId required | string <uuid> |
| name required | string |
| description | string |
| permissions required | Array of strings (Permission) Items Enum: "route.view" "route.create" "route.edit" "route.delete" "route.deploy" "route.approve" "client.view" "client.create" "client.edit" "client.delete" "client.manage_ip" "client.manage_apikey" "client.manage_jwt" "client.attach" "client.detach" "client.approve" "domain.view" "domain.create" "domain.edit" "domain.delete" "project.settings" "project.teams" "project.approval_policy" "audit.view" |
{- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| presetId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| projectId required | string <uuid> |
| presetId required | string <uuid> |
| name | string |
| description | string |
| permissions | Array of strings (Permission) Items Enum: "route.view" "route.create" "route.edit" "route.delete" "route.deploy" "route.approve" "client.view" "client.create" "client.edit" "client.delete" "client.manage_ip" "client.manage_apikey" "client.manage_jwt" "client.attach" "client.detach" "client.approve" "domain.view" "domain.create" "domain.edit" "domain.delete" "project.settings" "project.teams" "project.approval_policy" "audit.view" |
{- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "name": "string",
- "description": "string",
- "permissions": [
- "route.view"
], - "isBuiltin": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| clientId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "cidr": "string",
- "description": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]| clientId required | string <uuid> |
| cidr required | string IP address or CIDR range |
| description | string |
{- "cidr": "string",
- "description": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
- "cidr": "string",
- "description": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "username": "string",
- "email": "user@example.com",
- "role": "owner",
- "isActive": true,
- "authProvider": "string",
- "providerSubject": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "createdAt": "2019-08-24T14:15:22Z"
}Generates a new API key for the client. If the client already has an API key, it will be replaced with a new one. The plaintext key is returned only once in the response and cannot be retrieved again.
| clientId required | string <uuid> |
| headerName | string Default: "x-api-key" Header name to send the API key in requests (default "x-api-key") |
{- "headerName": "x-api-key"
}{- "apiKey": "fg_live_aB3cD4eF5gH6iJ7kL8mN9oP0qR1sT2u",
- "prefix": "fg_live_aB3c",
- "headerName": "x-api-key",
- "createdAt": "2019-08-24T14:15:22Z"
}Revokes the client's API key. Routes with this client attached using API key authentication will move to pending_deploy status.
| clientId required | string <uuid> |
{- "code": "string",
- "message": "string"
}Configures JWT authentication for the client. Requires a valid issuer URL and JWKS URL. Optionally accepts audience values, required claims, and claim-to-header mappings.
| clientId required | string <uuid> |
| issuer required | string JWT issuer URL |
| jwksUrl required | string URL to fetch JWKS for JWT validation |
| audiences | Array of strings Expected JWT audience values |
Array of objects (JWTRequiredClaim) Required JWT claims for authorization | |
Array of objects (JWTClaimToHeader) JWT claims to map to HTTP headers |
{- "audiences": [
- "string"
], - "requiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "claimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
]
}{- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5"
}Updates the JWT authentication configuration for the client. The client must already have JWT configured. Routes with this client attached using JWT authentication will move to pending_deploy status.
| clientId required | string <uuid> |
| issuer required | string JWT issuer URL |
| jwksUrl required | string URL to fetch JWKS for JWT validation |
| audiences | Array of strings Expected JWT audience values |
Array of objects (JWTRequiredClaim) Required JWT claims for authorization | |
Array of objects (JWTClaimToHeader) JWT claims to map to HTTP headers |
{- "audiences": [
- "string"
], - "requiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "claimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
]
}{- "jwtEnabled": true,
- "jwtIssuer": "string",
- "jwtJwksUrl": "string",
- "jwtAudiences": [
- "string"
], - "jwtRequiredClaims": [
- {
- "name": "string",
- "values": [
- "string"
], - "valueType": "Exact"
}
], - "jwtClaimToHeaders": [
- {
- "claim": "string",
- "header": "string"
}
], - "jwtCreatedAt": "2019-08-24T14:15:22Z",
- "jwtCreatedBy": "5f8b5dae-c6ae-408f-95ea-415c23d264b5"
}Removes JWT authentication from the client. Routes with this client attached using JWT authentication will move to pending_deploy status.
| clientId required | string <uuid> |
{- "code": "string",
- "message": "string"
}