Skip to content

Latest commit

 

History

History
10164 lines (9013 loc) · 237 KB

reference.md

File metadata and controls

10164 lines (9013 loc) · 237 KB

Gravitee Kubernetes Operator API Reference

Versions

Version Description
gravitee.io/v1alpha1 This version is compatible with gravitee APIM version 3.x and 4.x but v4 API features are not supported.

gravitee.io/v1alpha1

Resources

ManagementContext
ApiDefinition ApiDefinition is the Schema for the apidefinitions API.
ApiV4Definition ApiV4Definition is the Schema for the v4 apidefinitions API.
ApiResource
Application
Subscription
SharedPolicyGroup SharedPolicyGroup
Group

ManagementContext

gravitee.io/v1alpha1

Name Type Description Required
spec object ManagementContext represents the configuration for a specific environment
false
status object ManagementContextStatus defines the observed state of an API Context.
false

ManagementContext.spec

Go to parent definition

ManagementContext represents the configuration for a specific environment

Name Type Description Required
auth object Auth defines the authentication method used to connect to the API Management. Can be either basic authentication credentials, a bearer token or a reference to a kubernetes secret holding one of these two configurations. This is optional when this context targets Gravitee Cloud.
false
baseUrl string The URL of a management API instance. This is optional when this context targets Gravitee Cloud otherwise it is required.
false
cloud object Cloud when set (token or secretRef) this context will target Gravitee Cloud. BaseUrl will be defaulted from token data if not set, Auth is defaulted to use the token (bearerToken), OrgID is extracted from the token, EnvID is defaulted when the token contains exactly one environment.
false
environmentId string An existing environment id targeted by the context within the organization. This is optional when this context targets Gravitee Cloud and your cloud token contains only one environment ID, otherwise it is required.
false
organizationId string An existing organization id targeted by the context on the management API instance. This is optional when this context targets Gravitee Cloud otherwise it is required.
false
path string Allows to override the context path that will be appended to the baseURL. This can be used when reverse proxying APIM with URL rewrite
false

ManagementContext.spec.auth

Go to parent definition

Auth defines the authentication method used to connect to the API Management. Can be either basic authentication credentials, a bearer token or a reference to a kubernetes secret holding one of these two configurations. This is optional when this context targets Gravitee Cloud.

Name Type Description Required
bearerToken string The bearer token used to authenticate against the API Management instance (must be generated from an admin account)
false
credentials object The Basic credentials used to authenticate against the API Management instance.
false
secretRef object A secret reference holding either a "bearerToken" key for bearer token authentication or "username" and "password" keys for basic authentication
false

ManagementContext.spec.auth.credentials

Go to parent definition

The Basic credentials used to authenticate against the API Management instance.

Name Type Description Required
password string
false
username string
false

ManagementContext.spec.auth.secretRef

Go to parent definition

A secret reference holding either a "bearerToken" key for bearer token authentication or "username" and "password" keys for basic authentication

Name Type Description Required
name string
true
kind string
false
namespace string
false

ManagementContext.spec.cloud

Go to parent definition

Cloud when set (token or secretRef) this context will target Gravitee Cloud. BaseUrl will be defaulted from token data if not set, Auth is defaulted to use the token (bearerToken), OrgID is extracted from the token, EnvID is defaulted when the token contains exactly one environment.

Name Type Description Required
secretRef object SecretRef secret reference holding the Gravitee cloud token in the "cloudToken" key
false
token string Token plain text Gravitee cloud token (JWT)
false

ManagementContext.spec.cloud.secretRef

Go to parent definition

SecretRef secret reference holding the Gravitee cloud token in the "cloudToken" key

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiDefinition

gravitee.io/v1alpha1

ApiDefinition is the Schema for the apidefinitions API.

Name Type Description Required
spec object The API definition is the main resource handled by the Kubernetes Operator Most of the configuration properties defined here are already documented in the APIM Console API Reference. See https://docs.gravitee.io/apim/3.x/apim_installguide_rest_apis_documentation.html
false
status object ApiDefinitionStatus defines the observed state of API Definition.
false

ApiDefinition.spec

Go to parent definition

The API definition is the main resource handled by the Kubernetes Operator Most of the configuration properties defined here are already documented in the APIM Console API Reference. See https://docs.gravitee.io/apim/3.x/apim_installguide_rest_apis_documentation.html

Name Type Description Required
description string API description
true
name string API name
true
version string API version
true
categories []string The list of categories the API belongs to. Categories are reflected in APIM portal so that consumers can easily find the APIs they need.

Default: []
false
contextRef object
false
crossId string When promoting an API from one environment to the other, this ID identifies the API across those different environments. Setting this ID also allows to take control over an existing API on an APIM instance (by setting the same value as defined in APIM). If empty, a UUID will be generated based on the namespace and name of the resource.
false
definition_context object The definition context is used to inform a management API instance that this API definition is managed using a kubernetes operator
false
deployedAt integer Shows the time that the API is deployed

Format: int64
false
execution_mode enum Execution mode that eventually runs the API in the gateway

Enum: v3, v4-emulation-engine
Default: v4-emulation-engine
false
flow_mode enum The flow mode of the API. The value is either `DEFAULT` or `BEST_MATCH`.

Enum: DEFAULT, BEST_MATCH
Default: DEFAULT
false
flows []object The flow of the API

Default: []
false
gravitee string The definition version of the API. For v1alpha1 resources, this field should always set to `2.0.0`.

Default: 2.0.0
false
groupRefs []object List of group references associated with the API This groups are references to Group custom resources created on the cluster.

Default: []
false
groups []string List of groups associated with the API. This groups are id or name references to existing groups in APIM.

Default: []
false
id string The API ID. If empty, this field will take the value of the `metadata.uid` field of the resource.
false
labels []string List of labels of the API

Default: []
false
lifecycle_state enum API life cycle state can be one of the values CREATED, PUBLISHED, UNPUBLISHED, DEPRECATED, ARCHIVED

Enum: CREATED, PUBLISHED, UNPUBLISHED, DEPRECATED, ARCHIVED
Default: CREATED
false
local boolean local defines if the api is local or not.

If true, the Operator will create the ConfigMaps for the Gateway and pushes the API to the Management API but without setting the update flag in the datastore.

If false, the Operator will not create the ConfigMaps for the Gateway. Instead, it pushes the API to the Management API and forces it to update the event in the datastore. This will cause Gateways to fetch the APIs from the datastore

Default: false

false
members []object List of members associated with the API
false
metadata []object List of API metadata entries

Default: []
false
notifyMembers boolean If true, new members added to the API spec will be notified when the API is synced with APIM.

Default: true
false
pages map[string]object A map of pages objects.

Keys uniquely identify pages and are used to keep them in sync with APIM when using a management context.

Renaming a key is the equivalent of deleting the page and recreating it holding a new ID in APIM.

false
path_mappings []string API Path mapping
false
plans []object API plans

Default: []
false
properties []object List of Properties for the API

Default: []
false
proxy object The proxy of the API that specifies its VirtualHosts and Groups.
false
resources []object Resources can be either inlined or reference the namespace and name of an existing API resource definition.

Default: []
false
response_templates map[string]map[string]object A list of Response Templates for the API
false
services object Contains different services for the API (EndpointDiscovery, HealthCheck ...)
false
state enum The state of API (setting the value to STOPPED will make the API un-reachable from the gateway)

Enum: STARTED, STOPPED
Default: STARTED
false
tags []string List of Tags of the API
false
visibility enum Should the API be publicly available from the portal or not ?

Enum: PUBLIC, PRIVATE
Default: PRIVATE
false

ApiDefinition.spec.contextRef

Go to parent definition

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiDefinition.spec.definition_context

Go to parent definition

The definition context is used to inform a management API instance that this API definition is managed using a kubernetes operator

Name Type Description Required
mode string

Default: fully_managed
false
origin string

Default: kubernetes
false
syncFrom string

Default: kubernetes
false

ApiDefinition.spec.flows[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this flow is enabled or disabled

Default: true
true
condition string Flow condition
false
consumers []object List of the consumers of this Flow

Default: []
false
id string Flow ID
false
methods []enum A list of methods for this flow (GET;POST;PUT;PATCH;DELETE;OPTIONS;HEAD;CONNECT;TRACE;OTHER)

Enum: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, CONNECT, TRACE, OTHER
Default: []
false
name string Flow name
false
path-operator object List of path operators
false
post []object Flow post step

Default: []
false
pre []object Flow pre step

Default: []
false

ApiDefinition.spec.flows[index].consumers[index]

Go to parent definition

Name Type Description Required
consumerId string Consumer ID
false
consumerType integer Consumer type (possible values TAG)
false

ApiDefinition.spec.flows[index].path-operator

Go to parent definition

List of path operators

Name Type Description Required
operator enum Operator (possible values STARTS_WITH or EQUALS)

Enum: STARTS_WITH, EQUALS
Default: STARTS_WITH
false
path string Operator path
false

ApiDefinition.spec.flows[index].post[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
name string FlowStep name
false
policy string FlowStep policy
false

ApiDefinition.spec.flows[index].pre[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
name string FlowStep name
false
policy string FlowStep policy
false

ApiDefinition.spec.groupRefs[index]

Go to parent definition

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiDefinition.spec.members[index]

Go to parent definition

Name Type Description Required
source string Member source
true
sourceId string Member source ID
true
role string The API role associated with this Member

Default: USER
false

ApiDefinition.spec.metadata[index]

Go to parent definition

Name Type Description Required
format enum Metadata Format

Enum: STRING, NUMERIC, BOOLEAN, DATE, MAIL, URL
true
key string Metadata Key
true
name string Metadata Name
true
defaultValue string Metadata Default value
false
value string Metadata Value
false

ApiDefinition.spec.pages[key]

Go to parent definition

Name Type Description Required
type enum The type of the documentation page or folder.

Enum: MARKDOWN, SWAGGER, ASYNCAPI, ASCIIDOC, FOLDER, SYSTEM_FOLDER, ROOT
true
accessControls []object If the page is private, defines a set of user groups with access

Default: []
false
api string The API of the page. If empty, will be set automatically to the generated ID of the API.
false
configuration map[string]string Custom page configuration (e.g. page rendering can be changed to use Redoc instead of Swagger ui)
false
content string The content of the page, if any.
false
crossId string CrossID is designed to identified a page across environments. If not set, this ID will be generated in a predictable manner based on the map key associated to this entry in the API.
false
excludedAccessControls boolean if true, the references defined in the accessControls list will be denied access instead of being granted
false
homepage boolean If true, this page will be displayed as the homepage of your API documentation.

Default: false
false
id string The ID of the page. This field is mostly required when you are applying an API exported from APIM to make the operator take control over it. If not set, this ID will be generated in a predictable manner based on the map key associated to this entry in the API.
false
name string This is the display name of the page in APIM and on the portal. This field can be edited safely if you want to rename a page.
false
order integer The order used to display the page in APIM and on the portal.

Format: int64
false
parent string If your page contains a folder, setting this field to the map key associated to the folder entry will be reflected into APIM by making the page a child of this folder.
false
parentId string The parent ID of the page. This field is mostly required when you are applying an API exported from APIM to make the operator take control over it. Use `Parent` in any other case.
false
published boolean If true, the page will be accessible from the portal (default is false)

Default: false
false
source object Source allow you to fetch pages from various external sources, overriding page content each time the source is fetched.
false
visibility enum The visibility of the page.

Enum: PUBLIC, PRIVATE
Default: PUBLIC
false

ApiDefinition.spec.pages[key].accessControls[index]

Go to parent definition

Name Type Description Required
referenceId string The ID denied or granted by the access control (currently only group names are supported)
false
referenceType enum The type of reference denied or granted by the access control Currently only GROUP is supported

Enum: GROUP
false

ApiDefinition.spec.pages[key].source

Go to parent definition

Source allow you to fetch pages from various external sources, overriding page content each time the source is fetched.

Name Type Description Required
configuration object
true
type string
true

ApiDefinition.spec.plans[index]

Go to parent definition

Name Type Description Required
description string Plan Description
true
name string Plan name
true
security string Plan Security
true
api string Specify the API associated with this plan
false
characteristics []string List of plan characteristics
false
comment_required boolean Indicate of comment is required for this plan or not
false
crossId string The plan Cross ID. This field is used to identify plans defined for an API that has been promoted between different environments.
false
excluded_groups []string List of excluded groups for this plan

Default: []
false
flows []object List of different flows for this Plan

Default: []
false
id string Plan ID
false
order integer Plan order
false
paths map[string][]object A map of different paths (alongside their Rules) for this Plan
false
securityDefinition string Plan Security definition
false
selection_rule string Plan selection rule
false
status enum The plan status

Enum: PUBLISHED, DEPRECATED, STAGING
Default: PUBLISHED
false
tags []string List of plan tags

Default: []
false
type enum Plan type

Enum: API, CATALOG
Default: API
false
validation enum Plan validation strategy

Enum: AUTO, MANUAL
Default: AUTO
false

ApiDefinition.spec.plans[index].flows[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this flow is enabled or disabled

Default: true
true
condition string Flow condition
false
consumers []object List of the consumers of this Flow

Default: []
false
id string Flow ID
false
methods []enum A list of methods for this flow (GET;POST;PUT;PATCH;DELETE;OPTIONS;HEAD;CONNECT;TRACE;OTHER)

Enum: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, CONNECT, TRACE, OTHER
Default: []
false
name string Flow name
false
path-operator object List of path operators
false
post []object Flow post step

Default: []
false
pre []object Flow pre step

Default: []
false

ApiDefinition.spec.plans[index].flows[index].consumers[index]

Go to parent definition

Name Type Description Required
consumerId string Consumer ID
false
consumerType integer Consumer type (possible values TAG)
false

ApiDefinition.spec.plans[index].flows[index].path-operator

Go to parent definition

List of path operators

Name Type Description Required
operator enum Operator (possible values STARTS_WITH or EQUALS)

Enum: STARTS_WITH, EQUALS
Default: STARTS_WITH
false
path string Operator path
false

ApiDefinition.spec.plans[index].flows[index].post[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
name string FlowStep name
false
policy string FlowStep policy
false

ApiDefinition.spec.plans[index].flows[index].pre[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
name string FlowStep name
false
policy string FlowStep policy
false

ApiDefinition.spec.plans[index].paths[key][index]

Go to parent definition

Name Type Description Required
description string Rule description
false
enabled boolean Indicate if the Rule is enabled or not
false
methods []enum List of http methods for this Rule (GET;POST;PUT;PATCH;DELETE;OPTIONS;HEAD;CONNECT;TRACE;OTHER)

Enum: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, CONNECT, TRACE, OTHER
false
policy object Rule policy
false

ApiDefinition.spec.plans[index].paths[key][index].policy

Go to parent definition

Rule policy

Name Type Description Required
configuration object Policy configuration is a map of arbitrary key-values
false
name string Policy name
false

ApiDefinition.spec.properties[index]

Go to parent definition

Name Type Description Required
dynamic boolean Property is dynamic or not?
false
encrypted boolean Property Encrypted or not?
false
key string Property Key
false
value string Property Value
false

ApiDefinition.spec.proxy

Go to parent definition

The proxy of the API that specifies its VirtualHosts and Groups.

Name Type Description Required
cors object Proxy Cors
false
failover object Proxy Failover
false
groups []object List of endpoint groups of the proxy

Default: []
false
logging object Logging
false
preserve_host boolean Preserve Host
false
strip_context_path boolean Strip Context Path
false
virtual_hosts []object list of Virtual hosts fot the proxy
false

ApiDefinition.spec.proxy.cors

Go to parent definition

Proxy Cors

Name Type Description Required
allowCredentials boolean Access Control - Allow credentials or not
true
enabled boolean Indicate if the cors enabled or not
true
maxAge integer Access Control - Max age
true
allowHeaders []string Access Control - List of allowed headers

Default: []
false
allowMethods []string Access Control - List of allowed methods

Default: []
false
allowOrigin []string Access Control - List of Allowed origins

Default: []
false
exposeHeaders []string Access Control - List of Exposed Headers

Default: []
false
runPolicies boolean Run policies or not

Default: false
false

ApiDefinition.spec.proxy.failover

Go to parent definition

Proxy Failover

Name Type Description Required
cases []string List of Failover cases
false
maxAttempts integer Maximum number of attempts
false
retryTimeout integer Retry timeout

Format: int64
false

ApiDefinition.spec.proxy.groups[index]

Go to parent definition

Name Type Description Required
endpoints []object List of Endpoints belonging to this group
false
headers map[string]string List of headers needed for this EndpointGroup
false
http object Custom HTTP SSL client options used for this EndpointGroup
false
load_balancing object The LoadBalancer Type
false
name string EndpointGroup name
false
proxy object Configure the HTTP Proxy settings for this EndpointGroup if needed
false
services object Specify different Endpoint Services
false
ssl object Custom HTTP SSL client options used for this EndpointGroup
false

ApiDefinition.spec.proxy.groups[index].endpoints[index]

Go to parent definition

Name Type Description Required
backup boolean Indicate that this ia a back-end endpoint
false
headers []object List of headers for this endpoint

Default: []
false
healthcheck object Specify EndpointHealthCheck service settings
false
http object Custom HTTP client options used for this endpoint
false
inherit boolean Is endpoint inherited or not
false
name string Name of the endpoint
false
proxy object Configure the HTTP Proxy settings to reach target if needed
false
ssl object Custom HTTP SSL client options used for this endpoint
false
target string The end target of this endpoint (backend)
false
tenants []string The endpoint tenants

Default: []
false
type string The type of endpoint (HttpEndpointType or GrpcEndpointType)
false
weight integer Endpoint weight used for load-balancing
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].headers[index]

Go to parent definition

Name Type Description Required
name string The HTTP header name
false
value string The HTTP header value
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].healthcheck

Go to parent definition

Specify EndpointHealthCheck service settings

Name Type Description Required
enabled boolean Is service enabled or not?

Default: false
false
inherit boolean

Default: false
false
name string Service name
false
schedule string
false
steps []object List of health check steps

Default: []
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].healthcheck.steps[index]

Go to parent definition

Name Type Description Required
name string Health Check Step Name
false
request object Health Check Step Request
false
response object Health Check Step Response
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].healthcheck.steps[index].request

Go to parent definition

Health Check Step Request

Name Type Description Required
fromRoot boolean If true, the health check request will be issued without prepending the context path of the API.
true
body string Health Check Request Body
false
headers []object List of HTTP headers to include in the health check request

Default: []
false
method enum The HTTP method to use when issuing the health check request

Enum: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, CONNECT, TRACE, OTHER
false
path string The path of the endpoint handling the health check request
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].healthcheck.steps[index].request.headers[index]

Go to parent definition

Name Type Description Required
name string The HTTP header name
false
value string The HTTP header value
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].healthcheck.steps[index].response

Go to parent definition

Health Check Step Response

Name Type Description Required
assertions []string
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].http

Go to parent definition

Custom HTTP client options used for this endpoint

Name Type Description Required
followRedirects boolean Should HTTP redirects be followed or not ?

Default: false
true
pipelining boolean Should HTTP/1.1 pipelining be used for the connection or not ?

Default: false
true
useCompression boolean Should compression be used or not ?

Default: false
true
clearTextUpgrade boolean Should HTTP/2 clear text upgrade be used or not ?

Default: true
false
connectTimeout integer Connection timeout of the http connection

Format: int64
false
idleTimeout integer Idle Timeout for the http connection

Format: int64
false
keepAlive boolean

Default: true
false
keepAliveTimeout integer Should keep alive be used for the HTTP connection ?

Format: int64
Default: 30000
false
maxConcurrentConnections integer HTTP max concurrent connections
false
propagateClientAcceptEncoding boolean Propagate Client Accept-Encoding header

Default: false
false
readTimeout integer Read timeout

Format: int64
false
version enum HTTP Protocol Version (Possible values Http1 or Http2)

Enum: HTTP_1_1, HTTP_2
Default: HTTP_1_1
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].proxy

Go to parent definition

Configure the HTTP Proxy settings to reach target if needed

Name Type Description Required
enabled boolean Specifies that the HTTP connection will be established through a proxy

Default: false
false
host string Proxy host name
false
password string The HTTP proxy password (if the proxy requires authentication)
false
port integer The HTTP proxy port
false
type string The HTTP proxy type (possible values Http, Socks4, Socks5)
false
useSystemProxy boolean If true, the proxy defined at the system level will be used

Default: false
false
username string The HTTP proxy username (if the proxy requires authentication)
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].ssl

Go to parent definition

Custom HTTP SSL client options used for this endpoint

Name Type Description Required
hostnameVerifier boolean Verify Hostname when establishing connection

Default: true
true
trustAll boolean Whether to trust all issuers or not

Default: false
true
keyStore object KeyStore type (possible values PEM, PKCS12, JKS)
false
trustStore object TrustStore type (possible values PEM, PKCS12, JKS)
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].ssl.keyStore

Go to parent definition

KeyStore type (possible values PEM, PKCS12, JKS)

Name Type Description Required
certContent string KeyStore cert content (Only applicable for PEM KeyStore)
false
certPath string KeyStore cert path (Only applicable for PEM KeyStore)
false
content string The base64 encoded trustStore content, if not relying on a path to a file
false
keyContent string The base64 encoded trustStore content, if not relying on a path to a file (Only applicable for PEM KeyStore)
false
keyPath string KeyStore key path (Only applicable for PEM KeyStore)
false
password string
false
path string KeyStore path
false
type enum The KeyStore type to use (possible values are PEM, PKCS12, JKS)

Enum: PEM, PKCS12, JKS
false

ApiDefinition.spec.proxy.groups[index].endpoints[index].ssl.trustStore

Go to parent definition

TrustStore type (possible values PEM, PKCS12, JKS)

Name Type Description Required
content string The base64 encoded trustStore content, if not relying on a path to a file
false
password string TrustStore password (Not applicable for PEM TrustStore)
false
path string
false
type enum The TrustStore type to use (possible values are PEM, PKCS12, JKS)

Enum: PEM, PKCS12, JKS
false

ApiDefinition.spec.proxy.groups[index].http

Go to parent definition

Custom HTTP SSL client options used for this EndpointGroup

Name Type Description Required
followRedirects boolean Should HTTP redirects be followed or not ?

Default: false
true
pipelining boolean Should HTTP/1.1 pipelining be used for the connection or not ?

Default: false
true
useCompression boolean Should compression be used or not ?

Default: false
true
clearTextUpgrade boolean Should HTTP/2 clear text upgrade be used or not ?

Default: true
false
connectTimeout integer Connection timeout of the http connection

Format: int64
false
idleTimeout integer Idle Timeout for the http connection

Format: int64
false
keepAlive boolean

Default: true
false
keepAliveTimeout integer Should keep alive be used for the HTTP connection ?

Format: int64
Default: 30000
false
maxConcurrentConnections integer HTTP max concurrent connections
false
propagateClientAcceptEncoding boolean Propagate Client Accept-Encoding header

Default: false
false
readTimeout integer Read timeout

Format: int64
false
version enum HTTP Protocol Version (Possible values Http1 or Http2)

Enum: HTTP_1_1, HTTP_2
Default: HTTP_1_1
false

ApiDefinition.spec.proxy.groups[index].load_balancing

Go to parent definition

The LoadBalancer Type

Name Type Description Required
type string Type of the LoadBalancer (RoundRobin, Random, WeightedRoundRobin, WeightedRandom)
false

ApiDefinition.spec.proxy.groups[index].proxy

Go to parent definition

Configure the HTTP Proxy settings for this EndpointGroup if needed

Name Type Description Required
enabled boolean Specifies that the HTTP connection will be established through a proxy

Default: false
false
host string Proxy host name
false
password string The HTTP proxy password (if the proxy requires authentication)
false
port integer The HTTP proxy port
false
type string The HTTP proxy type (possible values Http, Socks4, Socks5)
false
useSystemProxy boolean If true, the proxy defined at the system level will be used

Default: false
false
username string The HTTP proxy username (if the proxy requires authentication)
false

ApiDefinition.spec.proxy.groups[index].services

Go to parent definition

Specify different Endpoint Services

Name Type Description Required
discovery object Endpoint Discovery Service
false
dynamic-property object Dynamic Property Service
false
health-check object Health Check Service
false

ApiDefinition.spec.proxy.groups[index].services.discovery

Go to parent definition

Endpoint Discovery Service

Name Type Description Required
configuration object Configuration, arbitrary map of key-values
false
enabled boolean Is service enabled or not?

Default: false
false
name string Service name
false
provider string Provider name
false
secondary boolean Is it secondary or not?
false
tenants []string List of tenants

Default: []
false

ApiDefinition.spec.proxy.groups[index].services.dynamic-property

Go to parent definition

Dynamic Property Service

Name Type Description Required
configuration object Configuration, arbitrary map of key-values
false
enabled boolean Is service enabled or not?

Default: false
false
name string Service name
false
provider enum

Enum: HTTP
false
schedule string
false

ApiDefinition.spec.proxy.groups[index].services.health-check

Go to parent definition

Health Check Service

Name Type Description Required
enabled boolean Is service enabled or not?

Default: false
false
name string Service name
false
schedule string
false
steps []object List of health check steps

Default: []
false

ApiDefinition.spec.proxy.groups[index].services.health-check.steps[index]

Go to parent definition

Name Type Description Required
name string Health Check Step Name
false
request object Health Check Step Request
false
response object Health Check Step Response
false

ApiDefinition.spec.proxy.groups[index].services.health-check.steps[index].request

Go to parent definition

Health Check Step Request

Name Type Description Required
fromRoot boolean If true, the health check request will be issued without prepending the context path of the API.
true
body string Health Check Request Body
false
headers []object List of HTTP headers to include in the health check request

Default: []
false
method enum The HTTP method to use when issuing the health check request

Enum: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, CONNECT, TRACE, OTHER
false
path string The path of the endpoint handling the health check request
false

ApiDefinition.spec.proxy.groups[index].services.health-check.steps[index].request.headers[index]

Go to parent definition

Name Type Description Required
name string The HTTP header name
false
value string The HTTP header value
false

ApiDefinition.spec.proxy.groups[index].services.health-check.steps[index].response

Go to parent definition

Health Check Step Response

Name Type Description Required
assertions []string
false

ApiDefinition.spec.proxy.groups[index].ssl

Go to parent definition

Custom HTTP SSL client options used for this EndpointGroup

Name Type Description Required
hostnameVerifier boolean Verify Hostname when establishing connection

Default: true
true
trustAll boolean Whether to trust all issuers or not

Default: false
true
keyStore object KeyStore type (possible values PEM, PKCS12, JKS)
false
trustStore object TrustStore type (possible values PEM, PKCS12, JKS)
false

ApiDefinition.spec.proxy.groups[index].ssl.keyStore

Go to parent definition

KeyStore type (possible values PEM, PKCS12, JKS)

Name Type Description Required
certContent string KeyStore cert content (Only applicable for PEM KeyStore)
false
certPath string KeyStore cert path (Only applicable for PEM KeyStore)
false
content string The base64 encoded trustStore content, if not relying on a path to a file
false
keyContent string The base64 encoded trustStore content, if not relying on a path to a file (Only applicable for PEM KeyStore)
false
keyPath string KeyStore key path (Only applicable for PEM KeyStore)
false
password string
false
path string KeyStore path
false
type enum The KeyStore type to use (possible values are PEM, PKCS12, JKS)

Enum: PEM, PKCS12, JKS
false

ApiDefinition.spec.proxy.groups[index].ssl.trustStore

Go to parent definition

TrustStore type (possible values PEM, PKCS12, JKS)

Name Type Description Required
content string The base64 encoded trustStore content, if not relying on a path to a file
false
password string TrustStore password (Not applicable for PEM TrustStore)
false
path string
false
type enum The TrustStore type to use (possible values are PEM, PKCS12, JKS)

Enum: PEM, PKCS12, JKS
false

ApiDefinition.spec.proxy.logging

Go to parent definition

Logging

Name Type Description Required
condition string The logging condition (supports EL expressions)
false
content enum Which part of the request/response should be logged ?

Enum: NONE, HEADERS, PAYLOADS, HEADERS_PAYLOADS
false
mode enum The logging mode. CLIENT identifies the inbound request issued to the gateway, while PROXY identifies the request issued to the upstream service.

Enum: NONE, CLIENT, PROXY, CLIENT_PROXY
false
scope enum The logging scope (which phase of the request roundtrip should be included in each log entry.

Enum: NONE, REQUEST, RESPONSE, REQUEST_RESPONSE
false

ApiDefinition.spec.proxy.virtual_hosts[index]

Go to parent definition

Name Type Description Required
host string Host name
false
override_entrypoint boolean Indicate if Entrypoint should be overridden or not
false
path string Path
false

ApiDefinition.spec.resources[index]

Go to parent definition

Name Type Description Required
configuration object Resource Configuration, arbitrary map of key-values
false
enabled boolean Is resource enabled or not?

Default: true
false
name string Resource Name
false
ref object Reference to a resource
false
type string Resource Type
false

ApiDefinition.spec.resources[index].ref

Go to parent definition

Reference to a resource

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiDefinition.spec.response_templates[key][key]

Go to parent definition

Name Type Description Required
body string
false
headers map[string]string
false
status integer
false

ApiDefinition.spec.services

Go to parent definition

Contains different services for the API (EndpointDiscovery, HealthCheck ...)

Name Type Description Required
discovery object Endpoint Discovery Service
false
dynamic-property object Dynamic Property Service
false
health-check object Health Check Service
false

ApiDefinition.spec.services.discovery

Go to parent definition

Endpoint Discovery Service

Name Type Description Required
configuration object Configuration, arbitrary map of key-values
false
enabled boolean Is service enabled or not?

Default: false
false
name string Service name
false
provider string Provider name
false
secondary boolean Is it secondary or not?
false
tenants []string List of tenants

Default: []
false

ApiDefinition.spec.services.dynamic-property

Go to parent definition

Dynamic Property Service

Name Type Description Required
configuration object Configuration, arbitrary map of key-values
false
enabled boolean Is service enabled or not?

Default: false
false
name string Service name
false
provider enum

Enum: HTTP
false
schedule string
false

ApiDefinition.spec.services.health-check

Go to parent definition

Health Check Service

Name Type Description Required
enabled boolean Is service enabled or not?

Default: false
false
name string Service name
false
schedule string
false
steps []object List of health check steps

Default: []
false

ApiDefinition.spec.services.health-check.steps[index]

Go to parent definition

Name Type Description Required
name string Health Check Step Name
false
request object Health Check Step Request
false
response object Health Check Step Response
false

ApiDefinition.spec.services.health-check.steps[index].request

Go to parent definition

Health Check Step Request

Name Type Description Required
fromRoot boolean If true, the health check request will be issued without prepending the context path of the API.
true
body string Health Check Request Body
false
headers []object List of HTTP headers to include in the health check request

Default: []
false
method enum The HTTP method to use when issuing the health check request

Enum: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, CONNECT, TRACE, OTHER
false
path string The path of the endpoint handling the health check request
false

ApiDefinition.spec.services.health-check.steps[index].request.headers[index]

Go to parent definition

Name Type Description Required
name string The HTTP header name
false
value string The HTTP header value
false

ApiDefinition.spec.services.health-check.steps[index].response

Go to parent definition

Health Check Step Response

Name Type Description Required
assertions []string
false

ApiDefinition.status

Go to parent definition

ApiDefinitionStatus defines the observed state of API Definition.

Name Type Description Required
crossId string The Cross ID is used to identify an API that has been promoted from one environment to another.
false
environmentId string The environment ID, if a management context has been defined to sync with an APIM instance
false
errors object When API has been created regardless of errors, this field is used to persist the error message encountered during admission
false
id string The ID of the API definition in the Gravitee API Management instance (if an API context has been configured).
false
organizationId string The organization ID, if a management context has been defined to sync with an APIM instance
false
plans map[string]string This field is used to store the list of plans that have been created for the API definition if a management context has been defined to sync the API with an APIM instance
false
processingStatus string The processing status of the API definition.
false
state enum The state of the API. Can be either STARTED or STOPPED.

Enum: STARTED, STOPPED
false
subscriptions integer The number of subscriptions that reference the API
false

ApiDefinition.status.errors

Go to parent definition

When API has been created regardless of errors, this field is used to persist the error message encountered during admission

Name Type Description Required
severe []string severe errors do not pass admission and will block reconcile hence, this field should always be during the admission phase and is very unlikely to be persisted in the status
false
warning []string warning errors do not block object reconciliation, most of the time because the value is ignored or defaulted when the API gets synced with APIM
false

ApiV4Definition

gravitee.io/v1alpha1

ApiV4Definition is the Schema for the v4 apidefinitions API.

Name Type Description Required
spec object ApiV4DefinitionSpec defines the desired state of ApiDefinition.
false
status object ApiV4DefinitionStatus defines the observed state of API Definition.
false

ApiV4Definition.spec

Go to parent definition

ApiV4DefinitionSpec defines the desired state of ApiDefinition.

Name Type Description Required
endpointGroups []object List of Endpoint groups
true
listeners []object List of listeners for this API
true
name string API name
true
type enum Api Type (proxy or message)

Enum: PROXY, MESSAGE, NATIVE
true
version string API version
true
analytics object API Analytics (Not applicable for Native API)
false
categories []string The list of categories the API belongs to. Categories are reflected in APIM portal so that consumers can easily find the APIs they need.

Default: []
false
contextRef object
false
crossId string When promoting an API from one environment to the other, this ID identifies the API across those different environments. Setting this ID also allows to take control over an existing API on an APIM instance (by setting the same value as defined in APIM). If empty, a UUID will be generated based on the namespace and name of the resource.
false
definitionContext object The API Definition context is used to identify the Kubernetes origin of the API, and define whether the API definition should be synchronized from an API instance or from a config map created in the cluster (which is the default)
false
definitionVersion enum The definition version of the API.

Enum: V4
Default: V4
false
description string API description
false
failover object API Failover
false
flowExecution object API Flow Execution (Not applicable for Native API)
false
flows []object List of flows for the API

Default: []
false
groupRefs []object List of group references associated with the API This groups are references to Group custom resources created on the cluster.

Default: []
false
groups []string List of groups associated with the API. This groups are id or name references to existing groups in APIM.

Default: []
false
id string The API ID. If empty, this field will take the value of the `metadata.uid` field of the resource.
false
labels []string List of labels of the API

Default: []
false
lifecycleState enum API life cycle state can be one of the values PUBLISHED, UNPUBLISHED

Enum: PUBLISHED, UNPUBLISHED
Default: UNPUBLISHED
false
members []object List of members associated with the API
false
metadata []object List of API metadata entries

Default: []
false
notifyMembers boolean If true, new members added to the API spec will be notified when the API is synced with APIM.

Default: true
false
pages map[string]object A map of pages objects.

Keys uniquely identify pages and are used to keep them in sync with APIM when using a management context.

Renaming a key is the equivalent of deleting the page and recreating it holding a new ID in APIM.

false
plans map[string]object A map of plan identifiers to plan Keys uniquely identify plans and are used to keep them in sync when using a management context.
false
properties []object List of Properties for the API

Default: []
false
resources []object Resources can be either inlined or reference the namespace and name of an existing API resource definition.

Default: []
false
responseTemplates map[string]map[string]object A list of Response Templates for the API (Not applicable for Native API)
false
services object API Services (Not applicable for Native API)
false
state enum The state of API (setting the value to STOPPED will make the API un-reachable from the gateway)

Enum: STARTED, STOPPED
Default: STARTED
false
tags []string List of Tags of the API
false
visibility enum Should the API be publicly available from the portal or not ?

Enum: PUBLIC, PRIVATE
Default: PRIVATE
false

ApiV4Definition.spec.endpointGroups[index]

Go to parent definition

Name Type Description Required
name string Endpoint group name
true
endpoints []object List of endpoint for the group

Default: []
false
headers map[string]string Endpoint group headers, arbitrary map of key-values
false
http object Endpoint group http client options
false
loadBalancer object Endpoint group load balancer
false
services object Endpoint group services
false
sharedConfiguration object Endpoint group shared configuration, arbitrary map of key-values
false
ssl object Endpoint group http client SSL options
false
type string Endpoint group type
false

ApiV4Definition.spec.endpointGroups[index].endpoints[index]

Go to parent definition

Name Type Description Required
inheritConfiguration boolean Should endpoint group configuration be inherited or not ?
true
secondary boolean Endpoint is secondary or not?
true
configuration object Endpoint Configuration, arbitrary map of key-values
false
name string The endpoint name (this value should be unique across endpoints)
false
services object Endpoint Services
false
sharedConfigurationOverride object Endpoint Configuration Override, arbitrary map of key-values
false
tenants []string List of endpoint tenants

Default: []
false
type string Endpoint Type
false
weight integer Endpoint Weight
false

ApiV4Definition.spec.endpointGroups[index].endpoints[index].services

Go to parent definition

Endpoint Services

Name Type Description Required
healthCheck object Health check service
false

ApiV4Definition.spec.endpointGroups[index].endpoints[index].services.healthCheck

Go to parent definition

Health check service

Name Type Description Required
enabled boolean Is the service enabled or not ?
true
overrideConfiguration boolean Service Override Configuration or not?
true
configuration object Service Configuration, a map of arbitrary key-values
false
type string Service Type
false

ApiV4Definition.spec.endpointGroups[index].http

Go to parent definition

Endpoint group http client options

Name Type Description Required
followRedirects boolean Should HTTP redirects be followed or not ?

Default: false
true
pipelining boolean Should HTTP/1.1 pipelining be used for the connection or not ?

Default: false
true
useCompression boolean Should compression be used or not ?

Default: false
true
clearTextUpgrade boolean Should HTTP/2 clear text upgrade be used or not ?

Default: true
false
connectTimeout integer Connection timeout of the http connection

Format: int64
false
idleTimeout integer Idle Timeout for the http connection

Format: int64
false
keepAlive boolean

Default: true
false
keepAliveTimeout integer Should keep alive be used for the HTTP connection ?

Format: int64
Default: 30000
false
maxConcurrentConnections integer HTTP max concurrent connections
false
propagateClientAcceptEncoding boolean Propagate Client Accept-Encoding header

Default: false
false
readTimeout integer Read timeout

Format: int64
false
version enum HTTP Protocol Version (Possible values Http1 or Http2)

Enum: HTTP_1_1, HTTP_2
Default: HTTP_1_1
false

ApiV4Definition.spec.endpointGroups[index].loadBalancer

Go to parent definition

Endpoint group load balancer

Name Type Description Required
type enum

Enum: ROUND_ROBIN, RANDOM, WEIGHTED_ROUND_ROBIN, WEIGHTED_RANDOM
Default: ROUND_ROBIN
true

ApiV4Definition.spec.endpointGroups[index].services

Go to parent definition

Endpoint group services

Name Type Description Required
discovery object Endpoint group discovery service
false
healthCheck object Endpoint group health check service
false

ApiV4Definition.spec.endpointGroups[index].services.discovery

Go to parent definition

Endpoint group discovery service

Name Type Description Required
enabled boolean Is the service enabled or not ?
true
overrideConfiguration boolean Service Override Configuration or not?
true
configuration object Service Configuration, a map of arbitrary key-values
false
type string Service Type
false

ApiV4Definition.spec.endpointGroups[index].services.healthCheck

Go to parent definition

Endpoint group health check service

Name Type Description Required
enabled boolean Is the service enabled or not ?
true
overrideConfiguration boolean Service Override Configuration or not?
true
configuration object Service Configuration, a map of arbitrary key-values
false
type string Service Type
false

ApiV4Definition.spec.endpointGroups[index].ssl

Go to parent definition

Endpoint group http client SSL options

Name Type Description Required
hostnameVerifier boolean Verify Hostname when establishing connection

Default: true
true
trustAll boolean Whether to trust all issuers or not

Default: false
true
keyStore object KeyStore type (possible values PEM, PKCS12, JKS)
false
trustStore object TrustStore type (possible values PEM, PKCS12, JKS)
false

ApiV4Definition.spec.endpointGroups[index].ssl.keyStore

Go to parent definition

KeyStore type (possible values PEM, PKCS12, JKS)

Name Type Description Required
certContent string KeyStore cert content (Only applicable for PEM KeyStore)
false
certPath string KeyStore cert path (Only applicable for PEM KeyStore)
false
content string The base64 encoded trustStore content, if not relying on a path to a file
false
keyContent string The base64 encoded trustStore content, if not relying on a path to a file (Only applicable for PEM KeyStore)
false
keyPath string KeyStore key path (Only applicable for PEM KeyStore)
false
password string
false
path string KeyStore path
false
type enum The KeyStore type to use (possible values are PEM, PKCS12, JKS)

Enum: PEM, PKCS12, JKS
false

ApiV4Definition.spec.endpointGroups[index].ssl.trustStore

Go to parent definition

TrustStore type (possible values PEM, PKCS12, JKS)

Name Type Description Required
content string The base64 encoded trustStore content, if not relying on a path to a file
false
password string TrustStore password (Not applicable for PEM TrustStore)
false
path string
false
type enum The TrustStore type to use (possible values are PEM, PKCS12, JKS)

Enum: PEM, PKCS12, JKS
false

ApiV4Definition.spec.analytics

Go to parent definition

API Analytics (Not applicable for Native API)

Name Type Description Required
enabled boolean Analytics Enabled or not?

Default: true
true
logging object Analytics Logging
false
sampling object Analytics Sampling
false
tracing object Analytics Tracing
false

ApiV4Definition.spec.analytics.logging

Go to parent definition

Analytics Logging

Name Type Description Required
condition string The logging condition. This field is evaluated for HTTP requests and supports EL expressions.
false
content object Defines which component of the request should be included in the log payload.
false
messageCondition string The logging message condition. This field is evaluated for messages and supports EL expressions.
false
mode object The logging mode defines which "hop" of the request roundtrip should be included in the log payload. This can be either the inbound request to the gateway, the request issued by the gateway to the upstream service, or both.
false
phase object Defines which phase of the request roundtrip should be included in the log payload. This can be either the request phase, the response phase, or both.
false

ApiV4Definition.spec.analytics.logging.content

Go to parent definition

Defines which component of the request should be included in the log payload.

Name Type Description Required
headers boolean Should HTTP headers be logged or not ?
true
messageHeaders boolean Should message headers be logged or not ?
true
messageMetadata boolean Should message metadata be logged or not ?
true
messagePayload boolean Should message payloads be logged or not ?
true
payload boolean Should HTTP payloads be logged or not ?
true

ApiV4Definition.spec.analytics.logging.mode

Go to parent definition

The logging mode defines which "hop" of the request roundtrip should be included in the log payload. This can be either the inbound request to the gateway, the request issued by the gateway to the upstream service, or both.

Name Type Description Required
endpoint boolean If true, the request to the upstream service will be included in the log payload
true
entrypoint boolean If true, the inbound request to the gateway will be included in the log payload
true

ApiV4Definition.spec.analytics.logging.phase

Go to parent definition

Defines which phase of the request roundtrip should be included in the log payload. This can be either the request phase, the response phase, or both.

Name Type Description Required
request boolean Should the request phase of the request roundtrip be included in the log payload or not ?
true
response boolean Should the response phase of the request roundtrip be included in the log payload or not ?
true

ApiV4Definition.spec.analytics.sampling

Go to parent definition

Analytics Sampling

Name Type Description Required
type string The sampling type to use
true
value string Sampling Value
true

ApiV4Definition.spec.analytics.tracing

Go to parent definition

Analytics Tracing

Name Type Description Required
enabled boolean Specify if Tracing is Enabled or not
false
verbose boolean Specify if Tracing is Verbose or not
false

ApiV4Definition.spec.contextRef

Go to parent definition

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.definitionContext

Go to parent definition

The API Definition context is used to identify the Kubernetes origin of the API, and define whether the API definition should be synchronized from an API instance or from a config map created in the cluster (which is the default)

Name Type Description Required
origin enum The definition context origin where the API definition is managed. The value is always `KUBERNETES` for an API managed by the operator.

Enum: KUBERNETES
Default: KUBERNETES
false
syncFrom enum The syncFrom field defines where the gateways should source the API definition from. If the value is `MANAGEMENT`, the API definition will be sourced from an APIM instance. This means that the API definition *must* hold a context reference in that case. Setting the value to `MANAGEMENT` allows to make an API definition available on gateways deployed across multiple clusters / regions. If the value is `KUBERNETES`, the API definition will be sourced from a config map. This means that only gateways deployed in the same cluster will be able to sync the API definition.

Enum: KUBERNETES, MANAGEMENT
Default: MANAGEMENT
false

ApiV4Definition.spec.failover

Go to parent definition

API Failover

Name Type Description Required
enabled boolean API Failover is enabled?

Default: false
false
maxFailures integer API Failover max failures

Default: 5
false
maxRetries integer API Failover max retires

Default: 2
false
openStateDuration integer API Failover open state duration

Format: int64
Default: 10000
false
perSubscription boolean API Failover per subscription

Default: true
false
slowCallDuration integer API Failover slow call duration

Format: int64
Default: 2000
false

ApiV4Definition.spec.flowExecution

Go to parent definition

API Flow Execution (Not applicable for Native API)

Name Type Description Required
matchRequired boolean Is match required or not ? If set to true, a 404 status response will be returned if no matching flow was found.
true
mode string The flow mode to use
false

ApiV4Definition.spec.flows[index]

Go to parent definition

Name Type Description Required
enabled boolean Is flow enabled or not?

Default: true
true
connect []object List of Connect flow steps (Only available for Native APIs)
false
id string The ID of the flow this field is mainly used for compatibility with APIM exports and can be safely ignored.
false
interact []object List of Publish flow steps (Only available for Native APIs)
false
name string Flow name
false
publish []object List of Publish flow steps
false
request []object List of Request flow steps (NOT available for Native APIs)
false
response []object List of Response flow steps (NOT available for Native APIs)
false
selectors []object List of Flow selectors
false
subscribe []object List of Subscribe flow steps
false
tags []string List of tags
false

ApiV4Definition.spec.flows[index].connect[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.flows[index].connect[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.flows[index].interact[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.flows[index].interact[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.flows[index].publish[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.flows[index].publish[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.flows[index].request[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.flows[index].request[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.flows[index].response[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.flows[index].response[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.flows[index].subscribe[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.flows[index].subscribe[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.groupRefs[index]

Go to parent definition

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.members[index]

Go to parent definition

Name Type Description Required
source string Member source
true
sourceId string Member source ID
true
role string The API role associated with this Member

Default: USER
false

ApiV4Definition.spec.metadata[index]

Go to parent definition

Name Type Description Required
format enum Metadata Format

Enum: STRING, NUMERIC, BOOLEAN, DATE, MAIL, URL
true
key string Metadata Key
true
name string Metadata Name
true
defaultValue string Metadata Default value
false
value string Metadata Value
false

ApiV4Definition.spec.pages[key]

Go to parent definition

Name Type Description Required
type enum The type of the documentation page or folder.

Enum: MARKDOWN, SWAGGER, ASYNCAPI, ASCIIDOC, FOLDER, SYSTEM_FOLDER, ROOT
true
api string The API of the page. If empty, will be set automatically to the generated ID of the API.
false
configuration map[string]string Custom page configuration (e.g. page rendering can be changed to use Redoc instead of Swagger ui)
false
content string The content of the page, if any.
false
crossId string CrossID is designed to identified a page across environments. If not set, this ID will be generated in a predictable manner based on the map key associated to this entry in the API.
false
homepage boolean If true, this page will be displayed as the homepage of your API documentation.

Default: false
false
id string The ID of the page. This field is mostly required when you are applying an API exported from APIM to make the operator take control over it. If not set, this ID will be generated in a predictable manner based on the map key associated to this entry in the API.
false
name string This is the display name of the page in APIM and on the portal. This field can be edited safely if you want to rename a page.
false
order integer The order used to display the page in APIM and on the portal.

Format: int64
false
parent string If your page contains a folder, setting this field to the map key associated to the folder entry will be reflected into APIM by making the page a child of this folder.
false
parentId string The parent ID of the page. This field is mostly required when you are applying an API exported from APIM to make the operator take control over it. Use `Parent` in any other case.
false
published boolean If true, the page will be accessible from the portal (default is false)

Default: false
false
source object Source allow you to fetch pages from various external sources, overriding page content each time the source is fetched.
false
visibility enum The visibility of the page.

Enum: PUBLIC, PRIVATE
Default: PUBLIC
false

ApiV4Definition.spec.pages[key].source

Go to parent definition

Source allow you to fetch pages from various external sources, overriding page content each time the source is fetched.

Name Type Description Required
configuration object
true
type string
true

ApiV4Definition.spec.plans[key]

Go to parent definition

Name Type Description Required
name string Plan display name, this will be the name displayed in the UI if a management context is used to sync the API with APIM
true
characteristics []string List of plan characteristics
false
comment_required boolean Indicate of comment is required for this plan or not
false
crossId string The plan Cross ID. This field is used to identify plans defined for an API that has been promoted between different environments.
false
definitionVersion string Plan definition version

Default: V4
false
description string Plan Description
false
excludedGroups []string

Default: []
false
flows []object List of plan flows

Default: []
false
generalConditions string The general conditions defined to use this plan
false
id string Plan ID
false
mode string The plan mode

Default: STANDARD
false
order integer Plan order
false
security object Plan security
false
selectionRule string Plan selection rule
false
status enum The plan status

Enum: PUBLISHED, DEPRECATED, STAGING
Default: PUBLISHED
false
tags []string List of plan tags

Default: []
false
type enum Plan type

Enum: API, CATALOG
Default: API
false
validation enum Plan validation strategy

Enum: AUTO, MANUAL
Default: AUTO
false

ApiV4Definition.spec.plans[key].flows[index]

Go to parent definition

Name Type Description Required
enabled boolean Is flow enabled or not?

Default: true
true
connect []object List of Connect flow steps (Only available for Native APIs)
false
id string The ID of the flow this field is mainly used for compatibility with APIM exports and can be safely ignored.
false
interact []object List of Publish flow steps (Only available for Native APIs)
false
name string Flow name
false
publish []object List of Publish flow steps
false
request []object List of Request flow steps (NOT available for Native APIs)
false
response []object List of Response flow steps (NOT available for Native APIs)
false
selectors []object List of Flow selectors
false
subscribe []object List of Subscribe flow steps
false
tags []string List of tags
false

ApiV4Definition.spec.plans[key].flows[index].connect[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.plans[key].flows[index].connect[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.plans[key].flows[index].interact[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.plans[key].flows[index].interact[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.plans[key].flows[index].publish[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.plans[key].flows[index].publish[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.plans[key].flows[index].request[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.plans[key].flows[index].request[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.plans[key].flows[index].response[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.plans[key].flows[index].response[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.plans[key].flows[index].subscribe[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
messageCondition string The message condition (supports EL expressions)
false
name string FlowStep name
false
policy string FlowStep policy
false
sharedPolicyGroupRef object Reference to an existing Shared Policy Group
false

ApiV4Definition.spec.plans[key].flows[index].subscribe[index].sharedPolicyGroupRef

Go to parent definition

Reference to an existing Shared Policy Group

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.plans[key].security

Go to parent definition

Plan security

Name Type Description Required
type string Plan Security type
true
configuration object Plan security configuration, a map of arbitrary key-values
false

ApiV4Definition.spec.properties[index]

Go to parent definition

Name Type Description Required
dynamic boolean Property is dynamic or not?
false
encrypted boolean Property Encrypted or not?
false
key string Property Key
false
value string Property Value
false

ApiV4Definition.spec.resources[index]

Go to parent definition

Name Type Description Required
configuration object Resource Configuration, arbitrary map of key-values
false
enabled boolean Is resource enabled or not?

Default: true
false
name string Resource Name
false
ref object Reference to a resource
false
type string Resource Type
false

ApiV4Definition.spec.resources[index].ref

Go to parent definition

Reference to a resource

Name Type Description Required
name string
true
kind string
false
namespace string
false

ApiV4Definition.spec.responseTemplates[key][key]

Go to parent definition

Name Type Description Required
body string
false
headers map[string]string
false
status integer
false

ApiV4Definition.spec.services

Go to parent definition

API Services (Not applicable for Native API)

Name Type Description Required
dynamicProperty object API dynamic property service
false

ApiV4Definition.spec.services.dynamicProperty

Go to parent definition

API dynamic property service

Name Type Description Required
enabled boolean Is the service enabled or not ?
true
overrideConfiguration boolean Service Override Configuration or not?
true
configuration object Service Configuration, a map of arbitrary key-values
false
type string Service Type
false

ApiV4Definition.status

Go to parent definition

ApiV4DefinitionStatus defines the observed state of API Definition.

Name Type Description Required
crossId string The Cross ID is used to identify an API that has been promoted from one environment to another.
false
environmentId string The environment ID, if a management context has been defined to sync with an APIM instance
false
errors object When API has been created regardless of errors, this field is used to persist the error message encountered during admission
false
id string The ID of the API definition in the Gravitee API Management instance (if an API context has been configured).
false
organizationId string The organization ID, if a management context has been defined to sync with an APIM instance
false
plans map[string]string This field is used to store the list of plans that have been created for the API definition if a management context has been defined to sync the API with an APIM instance
false
processingStatus string The processing status of the API definition.
false
state enum The state of the API. Can be either STARTED or STOPPED.

Enum: STARTED, STOPPED
false
subscriptions integer The number of subscriptions that reference the API
false

ApiV4Definition.status.errors

Go to parent definition

When API has been created regardless of errors, this field is used to persist the error message encountered during admission

Name Type Description Required
severe []string severe errors do not pass admission and will block reconcile hence, this field should always be during the admission phase and is very unlikely to be persisted in the status
false
warning []string warning errors do not block object reconciliation, most of the time because the value is ignored or defaulted when the API gets synced with APIM
false

ApiResource

gravitee.io/v1alpha1

Name Type Description Required
spec object ApiResourceSpec defines the desired state of ApiResource.
false
status object
false

ApiResource.spec

Go to parent definition

ApiResourceSpec defines the desired state of ApiResource.

Name Type Description Required
configuration object Resource Configuration, arbitrary map of key-values
false
enabled boolean Is resource enabled or not?

Default: true
false
name string Resource Name
false
type string Resource Type
false

Application

gravitee.io/v1alpha1

Name Type Description Required
spec object Application is the main resource handled by the Kubernetes Operator
false
status object ApplicationStatus defines the observed state of Application.
false

Application.spec

Go to parent definition

Application is the main resource handled by the Kubernetes Operator

Name Type Description Required
contextRef object
true
description string Application Description
true
name string Application name
true
settings object Application settings
true
background string The base64 encoded background to use for this application when displaying it on the portal
false
domain string Application domain
false
groups []string Application groups
false
id string io.gravitee.definition.model.Application Application ID
false
members []object Application members
false
metadata []object Application metadata
false
notifyMembers boolean Notify members when they are added to the application
false
picture string The base64 encoded picture to use for this application when displaying it on the portal (if not relying on an URL)
false
pictureUrl string A URL pointing to the picture to use when displaying the application on the portal
false

Application.spec.contextRef

Go to parent definition

Name Type Description Required
name string
true
kind string
false
namespace string
false

Application.spec.settings

Go to parent definition

Application settings

Name Type Description Required
app object
false
oauth object
false
tls object TLS settings are used to configure client side TLS in order to be able to subscribe to a MTLS plan.
false

Application.spec.settings.app

Go to parent definition

Name Type Description Required
type string Application Type
true
clientId string ClientID is the client id of the application
false

Application.spec.settings.oauth

Go to parent definition

Name Type Description Required
applicationType enum Oauth client application type

Enum: BACKEND_TO_BACKEND, NATIVE, BROWSER, WEB
true
grantTypes []enum List of Oauth client grant types

Enum: authorization_code, client_credentials, refresh_token, password, implicit
true
redirectUris []string List of Oauth client redirect uris
false

Application.spec.settings.tls

Go to parent definition

TLS settings are used to configure client side TLS in order to be able to subscribe to a MTLS plan.

Name Type Description Required
clientCertificate string This client certificate is mandatory to subscribe to a TLS plan.
true

Application.spec.members[index]

Go to parent definition

Name Type Description Required
source string Member source
true
sourceId string Member source ID
true
role string The API role associated with this Member

Default: USER
false

Application.spec.metadata[index]

Go to parent definition

Name Type Description Required
name string Metadata Name
true
defaultValue string Metadata DefaultValue
false
format enum Metadata Format

Enum: STRING, NUMERIC, BOOLEAN, DATE, MAIL, URL
false
hidden boolean Metadata is hidden or not?
false
value string Metadata Value
false

Application.status

Go to parent definition

ApplicationStatus defines the observed state of Application.

Name Type Description Required
environmentId string The environment ID, if a management context has been defined to sync with an APIM instance
false
errors object When application has been created regardless of errors, this field is used to persist the error message encountered during admission
false
id string The ID of the Application, if a management context has been defined to sync with an APIM instance
false
organizationId string The organization ID, if a management context has been defined to sync with an APIM instance
false
processingStatus string The processing status of the Application. The value is `Completed` if the sync with APIM succeeded, Failed otherwise.
false
subscriptions integer The number of subscriptions that reference the application
false

Application.status.errors

Go to parent definition

When application has been created regardless of errors, this field is used to persist the error message encountered during admission

Name Type Description Required
severe []string severe errors do not pass admission and will block reconcile hence, this field should always be during the admission phase and is very unlikely to be persisted in the status
false
warning []string warning errors do not block object reconciliation, most of the time because the value is ignored or defaulted when the API gets synced with APIM
false

Subscription

gravitee.io/v1alpha1

Name Type Description Required
spec object
false
status object
false

Subscription.spec

Go to parent definition

Name Type Description Required
api object
true
application object
true
plan string
true
endingAt string

Format: date-time
false

Subscription.spec.api

Go to parent definition

Name Type Description Required
name string
true
kind string
false
namespace string
false

Subscription.spec.application

Go to parent definition

Name Type Description Required
name string
true
kind string
false
namespace string
false

Subscription.status

Go to parent definition

Name Type Description Required
endingAt string The expiry date for the subscription (no date means no expiry)
false
id string Subscription ID
false
processingStatus string This value is `Completed` if the sync with APIM succeeded, Failed otherwise.
false
startedAt string When the subscription was started and made available
false

SharedPolicyGroup

gravitee.io/v1alpha1

SharedPolicyGroup

Name Type Description Required
spec object SharedPolicyGroupSpec
false
status object SharedPolicyGroupSpecStatus defines the observed state of an API Context.
false

SharedPolicyGroup.spec

Go to parent definition

SharedPolicyGroupSpec

Name Type Description Required
apiType enum Specify the SharedPolicyGroup ApiType

Enum: MESSAGE, PROXY, NATIVE
true
contextRef object
true
name string SharedPolicyGroup name
true
phase enum SharedPolicyGroup phase (REQUEST;RESPONSE;INTERACT;CONNECT;PUBLISH;SUBSCRIBE)

Enum: REQUEST, RESPONSE, INTERACT, CONNECT, PUBLISH, SUBSCRIBE
true
crossId string CrossID to export SharedPolicyGroup into different environments
false
description string SharedPolicyGroup description
false
prerequisiteMessage string SharedPolicyGroup prerequisite Message
false
steps []object SharedPolicyGroup Steps
false

SharedPolicyGroup.spec.contextRef

Go to parent definition

Name Type Description Required
name string
true
kind string
false
namespace string
false

SharedPolicyGroup.spec.steps[index]

Go to parent definition

Name Type Description Required
enabled boolean Indicate if this FlowStep is enabled or not

Default: true
true
condition string FlowStep condition
false
configuration object FlowStep configuration is a map of arbitrary key-values
false
description string FlowStep description
false
name string FlowStep name
false
policy string FlowStep policy
false

SharedPolicyGroup.status

Go to parent definition

SharedPolicyGroupSpecStatus defines the observed state of an API Context.

Name Type Description Required
crossId string The Cross ID is used to identify an SharedPolicyGroup that has been promoted from one environment to another.
false
environmentId string The environment ID, if a management context has been defined to sync with an APIM instance
false
errors object When SharedPolicyGroup has been created regardless of errors, this field is used to persist the error message encountered during admission
false
id string The ID is used to identify an SharedPolicyGroup which is unique in any environment.
false
organizationId string The organization ID, if a management context has been defined to sync with an APIM instance
false
processingStatus string The processing status of the SharedPolicyGroup. The value is `Completed` if the sync with APIM succeeded, Failed otherwise.
false

SharedPolicyGroup.status.errors

Go to parent definition

When SharedPolicyGroup has been created regardless of errors, this field is used to persist the error message encountered during admission

Name Type Description Required
severe []string severe errors do not pass admission and will block reconcile hence, this field should always be during the admission phase and is very unlikely to be persisted in the status
false
warning []string warning errors do not block object reconciliation, most of the time because the value is ignored or defaulted when the API gets synced with APIM
false

Group

gravitee.io/v1alpha1

Name Type Description Required
spec object
false
status object
false

Group.spec

Go to parent definition

Name Type Description Required
members []object
true
name string
true
contextRef object
false
id string
false
notifyMembers boolean If true, new members added to the API spec will be notified when the API is synced with APIM.

Default: true
false

Group.spec.members[index]

Go to parent definition

Name Type Description Required
source string Member source
true
sourceId string Member source ID
true
roles map[string]string

Default: map[]
false

Group.spec.contextRef

Go to parent definition

Name Type Description Required
name string
true
kind string
false
namespace string
false

Group.status

Go to parent definition

Name Type Description Required
members integer The number of members added to this group
true
environmentId string The environment ID defined in the management context
false
errors object When group has been created regardless of errors, this field is used to persist the error message encountered during admission
false
id string The ID of the Group in the Gravitee API Management instance
false
organizationId string The organization ID defined in the management context
false
processingStatus string The processing status of the Group.
false

Group.status.errors

Go to parent definition

When group has been created regardless of errors, this field is used to persist the error message encountered during admission

Name Type Description Required
severe []string severe errors do not pass admission and will block reconcile hence, this field should always be during the admission phase and is very unlikely to be persisted in the status
false
warning []string warning errors do not block object reconciliation, most of the time because the value is ignored or defaulted when the API gets synced with APIM
false