Skip to main content

API Domain

The API domain manages the full lifecycle of APIs within the Control Plane — from registration through exposure to subscription. It acts as an abstraction layer above the Gateway domain, handling the business logic of who can access which APIs and under what conditions.

Custom Resources

Api

Api is the Schema for the apis API

Group: api.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

ApiSpec

Appears in: Api

ApiSpec defines the desired state of Api

FieldTypeDefaultValidation
basePathstringRequired
categorystringRequired
oauth2Scopesstring[]Optional
versionstringRequired
xVendorbooleanRequired

ApiStatus

Appears in: Api

ApiStatus defines the observed state of Api

FieldTypeDefaultValidation
activebooleanRequired
conditionsCondition[]Optional

Condition

Appears in: ApiStatus, ApiCategoryStatus, ApiExposureStatus, ApiSubscriptionStatus, RemoteApiSubscriptionStatus

FieldTypeDefaultValidation
lastTransitionTimestringRequired, Format: date-time
messagestringRequired, maxLength: 32768
observedGenerationintegerOptional, Format: int64, minimum: 0
reasonstringRequired, minLength: 1, maxLength: 1024, pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
statusstringRequired, Enum: True \| False \| Unknown
typestringRequired, maxLength: 316, pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

ApiCategory

ApiCategory is the Schema for the apicategories API

Group: api.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

ApiCategorySpec

Appears in: ApiCategory

spec defines the desired state of ApiCategory

FieldTypeDefaultValidation
activebooleanOptional
allowTeamsAllowTeamsOptional
descriptionstringOptional, maxLength: 256
labelValuestringRequired, minLength: 1, maxLength: 20
lintingLintingOptional
mustHaveGroupPrefixbooleantrueOptional

AllowTeams

Appears in: ApiCategorySpec

FieldTypeDefaultValidation
categoriesstring[]Optional
namesstring[]Optional

Linting

Appears in: ApiCategorySpec

FieldTypeDefaultValidation
enabledbooleanOptional
rulesetstringOptional

ApiCategoryStatus

Appears in: ApiCategory

status defines the observed state of ApiCategory

FieldTypeDefaultValidation
conditionsCondition[]Optional

ApiExposure

ApiExposure is the Schema for the apiexposures API

Group: api.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

ApiExposureSpec

Appears in: ApiExposure

ApiExposureSpec defines the desired state of ApiExposure

FieldTypeDefaultValidation
apiBasePathstringRequired
approvalApprovalRequired
securitySecurityOptional
trafficTrafficRequired
transformationTransformationOptional
upstreamsUpstream[]Required
visibilitystringRequired, Enum: World \| Zone \| Enterprise
zoneZoneRequired

Approval

Appears in: ApiExposureSpec

FieldTypeDefaultValidation
strategystringAutoRequired, Enum: Auto \| Simple \| FourEyes
trustedTeamsstring[]Optional, minItems: 0, maxItems: 10

Security

Appears in: ApiExposureSpec

Security defines the security configuration for the Rover Security is optional, but if provided, exactly one of m2m or h2m must be set

FieldTypeDefaultValidation
m2mM2MOptional

M2M

Appears in: Security

M2M defines machine-to-machine authentication configuration

FieldTypeDefaultValidation
basicBasicOptional
externalIDPExternalIDPOptional
scopesstring[]Optional, maxItems: 10

Basic

Appears in: M2M, ExternalIDP, ApiSubscriptionM2M

Basic defines basic authentication configuration

FieldTypeDefaultValidation
passwordstringRequired, minLength: 1
usernamestringRequired, minLength: 1

ExternalIDP

Appears in: M2M

ExternalIDP defines external identity provider configuration

FieldTypeDefaultValidation
basicBasicOptional
clientClientOptional
grantTypestringOptional, Enum: client_credentials \| authorization_code \| password
tokenEndpointstringRequired, Format: uri
tokenRequeststringOptional, Enum: body \| header

Client

Appears in: ExternalIDP, ApiSubscriptionM2M

Client defines client credentials for the OAuth2 token request

FieldTypeDefaultValidation
clientIdstringRequired, minLength: 1
clientKeystringOptional
clientSecretstringOptional

Traffic

Appears in: ApiExposureSpec

FieldTypeDefaultValidation
circuitBreakerCircuitBreakerOptional
failoverFailoverOptional
rateLimitRateLimitOptional

CircuitBreaker

Appears in: Traffic

CircuitBreaker defines the Kong circuit breaker configuration

FieldTypeDefaultValidation
enabledbooleanOptional

Failover

Appears in: Traffic, ApiSubscriptionTraffic

Failover defines the failover configuration for the API exposure.

FieldTypeDefaultValidation
zoneZone[]Required

Zone

Appears in: Failover, ApiExposureSpec, ApiExposureStatus, Requestor, ApiSubscriptionSpec, ApiSubscriptionStatus, RemoteApiSubscriptionStatus

Zone is the zone to which the traffic should be failed over in case of an error.

FieldTypeDefaultValidation
namestringRequired
namespacestringRequired
uidstringOptional

RateLimit

Appears in: Traffic

RateLimit defines request rate limiting for this API

FieldTypeDefaultValidation
providerProviderOptional
subscriberRateLimitSubscriberRateLimitOptional

Provider

Appears in: RateLimit

Provider defines request rate limiting for this API

FieldTypeDefaultValidation
limitsLimitsRequired
optionsRateLimitOptionsOptional

Limits

Appears in: Provider, Default, Overrides

Limits defines the actual rate limit values for different time windows

FieldTypeDefaultValidation
hourintegerOptional, minimum: 0
minuteintegerOptional, minimum: 0
secondintegerOptional, minimum: 0

RateLimitOptions

Appears in: Provider

RateLimitOptions defines additional configuration options for rate limiting

FieldTypeDefaultValidation
faultTolerantbooleantrueOptional
hideClientHeadersbooleanfalseOptional

SubscriberRateLimit

Appears in: RateLimit

SubscriberRateLimit defines request rate limiting for this API per subscriber

FieldTypeDefaultValidation
defaultDefaultOptional
overridesOverrides[]Optional, maxItems: 10

Default

Appears in: SubscriberRateLimit

Default defines the rate limit applied to all consumers not specifically overridden

FieldTypeDefaultValidation
limitsLimitsRequired

Overrides

Appears in: SubscriberRateLimit

Overrides defines consumer-specific rate limits, keyed by consumer identifier

FieldTypeDefaultValidation
limitsLimitsRequired
subscriberstringRequired, minLength: 1

Transformation

Appears in: ApiExposureSpec

Transformation defines request/response transformations for an API This is shared object for both subscriptions and exposures

FieldTypeDefaultValidation
requestRequestOptional

Request

Appears in: Transformation

Request defines transformations applied to incoming API requests

FieldTypeDefaultValidation
headersHeadersOptional

Headers

Appears in: Request

Headers defines HTTP header modifications for requests

FieldTypeDefaultValidation
addstring[]Optional, minItems: 1, maxItems: 5
removestring[]Optional, minItems: 1, maxItems: 5

Upstream

Appears in: ApiExposureSpec

FieldTypeDefaultValidation
urlstringRequired
weightintegerOptional

ApiExposureStatus

Appears in: ApiExposure

ApiExposureStatus defines the observed state of ApiExposure

FieldTypeDefaultValidation
activebooleanRequired
conditionsCondition[]Optional
failoverRouteZoneOptional
routeZoneOptional

ApiSubscription

ApiSubscription is the Schema for the apisubscriptions API

Group: api.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

ApiSubscriptionSpec

Appears in: ApiSubscription

ApiSubscriptionSpec defines the desired state of ApiSubscription

FieldTypeDefaultValidation
apiBasePathstringRequired
organizationstringOptional
requestorRequestorRequired
securitySubscriberSecurityOptional
trafficApiSubscriptionTrafficRequired
zoneZoneRequired

Requestor

Appears in: ApiSubscriptionSpec

FieldTypeDefaultValidation
applicationZoneRequired

SubscriberSecurity

Appears in: ApiSubscriptionSpec, RemoteApiSubscriptionSpec

SubscriberSecurity defines the security configuration for the Rover SubscriberSecurity is optional, but if provided, exactly one of m2m or h2m must be set

FieldTypeDefaultValidation
m2mApiSubscriptionM2MOptional

ApiSubscriptionM2M

Appears in: SubscriberSecurity

M2M defines machine-to-machine authentication configuration

FieldTypeDefaultValidation
basicBasicOptional
clientClientOptional
scopesstring[]Optional, maxItems: 10

ApiSubscriptionTraffic

Appears in: ApiSubscriptionSpec

FieldTypeDefaultValidation
failoverFailoverOptional

ApiSubscriptionStatus

Appears in: ApiSubscription

ApiSubscriptionStatus defines the observed state of ApiSubscription

FieldTypeDefaultValidation
approvalZoneOptional
approvalRequestZoneOptional
conditionsCondition[]Optional
consumeRouteZoneOptional
failoverConsumeRoutesZone[]Optional
failoverRoutesZone[]Optional
remoteApiSubscriptionZoneOptional
routeZoneOptional

RemoteApiSubscription

RemoteApiSubscription is the Schema for the remoteapisubscriptions API

Group: api.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

RemoteApiSubscriptionSpec

Appears in: RemoteApiSubscription

RemoteApiSubscriptionSpec defines the desired state of RemoteApiSubscription

FieldTypeDefaultValidation
apiBasePathstringRequired
requesterRequesterRequired
securitySubscriberSecurityOptional
sourceOrganizationstringOptional
targetOrganizationstringRequired

Requester

Appears in: RemoteApiSubscriptionSpec

Requester is the entity that is requesting the subscription

FieldTypeDefaultValidation
applicationstringRequired
teamTeamRequired

Team

Appears in: Requester

Team is the team that is requesting the subscription

FieldTypeDefaultValidation
emailstringRequired
namestringRequired

RemoteApiSubscriptionStatus

Appears in: RemoteApiSubscription

RemoteApiSubscriptionStatus defines the observed state of RemoteApiSubscription

FieldTypeDefaultValidation
apiSubscriptionZoneOptional
applicationZoneOptional
approvalRemoteApiSubscriptionApprovalOptional
approvalRequestRemoteApiSubscriptionApprovalOptional
conditionsCondition[]Optional
gatewayUrlstringRequired
routeZoneOptional

RemoteApiSubscriptionApproval

Appears in: RemoteApiSubscriptionStatus

FieldTypeDefaultValidation
approvalStatestringRequired
messagestringRequired

Reconciliation Flow

Rover file applied

├──▶ Api created (registered)
├──▶ ApiExposure created (gateway route configured)

└──▶ ApiSubscription created (by subscribing team)

├──▶ Approval created (if strategy ≠ auto)
├──▶ Approval granted
└──▶ Gateway ConsumeRoute created (access granted)

Domain Interactions

  • Rover domain — Creates Api, ApiExposure, and ApiSubscription resources.
  • Gateway domain — The API operator creates Route and ConsumeRoute resources on the gateway.
  • Approval domain — Subscriptions trigger approval workflows.
  • File Manager — OpenAPI specifications are stored and retrieved for API metadata.