NAV Navigation
cURL

Event Endpoint Management Admin API v1.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

The Admin API provides programmatic access to your Event Endpoint Management deployment and features from other systems.

Authentication

Access control is provided through HTTP bearer authentication by using access tokens. To use the API, create an access token in the Event Endpoint Management UI.

Default

createCluster

Code samples

# You can also use wget
curl -X POST /{organization}/clusters \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

POST /{organization}/clusters

Create a new Cluster.

Body parameter

{
"type": "object",
"required": [
"name",
"bootstrapServers"
],
"properties": {
"bootstrapServers": {
"description": "Bootstrap servers for this cluster",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Kafka server host name.",
"type": "string"
},
"port": {
"description": "Kafka server port.",
"type": "integer"
},
"ssl": {
"description": "Connect over SSL.",
"type": "boolean",
"default": false
},
"certificates": {
"description": "Certificates or CAs to trust when connecting to the server via SSL.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "object",
"description": "X509 certificate presented by an endpoint",
"required": [
"pem"
],
"properties": {
"pem": {
"description": "Certificate in PEM format",
"type": "string"
},
"subject": {
"description": "Subject name of the certificate",
"type": "string"
},
"sans": {
"description": "A list of subject alternative names of the certificate",
"type": "array",
"items": {
"type": "string"
}
},
"issuer": {
"description": "Issuer of the certificate",
"type": "string"
},
"expiry": {
"description": "Expiration date of the certificate in epoch millis",
"type": "integer"
}
}
}
},
"security": {
"description": "Captures the accepted security protocol",
"type": "object",
"required": [
"authType"
],
"properties": {
"authType": {
"description": "The name of security protocol used",
"type": "string",
"enum": [
"SASL",
"NONE",
"MTLS"
]
},
"mechanism": {
"description": "Security mechanisms supported",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"PLAIN",
"SCRAM-SHA-512",
"SCRAM-SHA-256"
]
}
}
}
},
"errors": {
"description": "Bootstrap server errors, if applicable",
"type": "array",
"items": {
"type": "string",
"enum": [
"UNKNOWN_HOST_EXCEPTION",
"CONNECT_EXCEPTION",
"SSL_HANDSHAKE_EXCEPTION",
"CERTIFICATE_PARSING_EXCEPTION",
"API_NOT_SUPPORTED",
"INTERNAL_FAILURE",
"NONE"
]
}
}
}
}
},
"name": {
"description": "Cluster name",
"type": "string"
},
"lastUpdated": {
"description": "Time in ms since the epoch which represents the last time the cluster information was updated.",
"type": "integer"
},
"credentials": {
"type": "object",
"required": [
"type",
"data"
],
"description": "Credentials to be supplied by the client application when connecting",
"properties": {
"type": {
"description": "The type of credentials. Used by parsers to determine how to handle the other fields",
"type": "string",
"enum": [
"NONE",
"SASL"
]
},
"data": {
"description": "Details of the SASL credential data to authenticate with Kafka",
"type": "object",
"properties": {
"username": {
"description": "SASL username to authenticate with Kafka",
"type": "string"
},
"password": {
"description": "SASL password to authenticate with Kafka",
"type": "string"
},
"mechanism": {
"description": "SASL mechanism to authenticate with Kafka",
"type": "string"
}
}
}
}
}
}
}

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
body body object true none
» bootstrapServers body [object] true Bootstrap servers for this cluster
»» host body string true Kafka server host name.
»» port body integer true Kafka server port.
»» ssl body boolean false Connect over SSL.
»» certificates body [object] false Certificates or CAs to trust when connecting to the server via SSL.
»»» pem body string true Certificate in PEM format
»»» subject body string false Subject name of the certificate
»»» sans body [string] false A list of subject alternative names of the certificate
»»» issuer body string false Issuer of the certificate
»»» expiry body integer false Expiration date of the certificate in epoch millis
»» security body object false Captures the accepted security protocol
»»» authType body string true The name of security protocol used
»»» mechanism body [string] false Security mechanisms supported
»» errors body [string] false Bootstrap server errors, if applicable
» name body string true Cluster name
» lastUpdated body integer false Time in ms since the epoch which represents the last time the cluster information was updated.
» credentials body object false Credentials to be supplied by the client application when connecting
»» type body string true The type of credentials. Used by parsers to determine how to handle the other fields
»» data body object true Details of the SASL credential data to authenticate with Kafka
»»» username body string false SASL username to authenticate with Kafka
»»» password body string false SASL password to authenticate with Kafka
»»» mechanism body string false SASL mechanism to authenticate with Kafka

Enumerated Values

Parameter Value
»»» authType SASL
»»» authType NONE
»»» authType MTLS
»»» mechanism PLAIN
»»» mechanism SCRAM-SHA-512
»»» mechanism SCRAM-SHA-256
»» errors UNKNOWN_HOST_EXCEPTION
»» errors CONNECT_EXCEPTION
»» errors SSL_HANDSHAKE_EXCEPTION
»» errors CERTIFICATE_PARSING_EXCEPTION
»» errors API_NOT_SUPPORTED
»» errors INTERNAL_FAILURE
»» errors NONE
»» type NONE
»» type SASL

Example responses

200 Response

{
"type": "object",
"properties": {
"id": {
"description": "The ID of your newly created Cluster",
"type": "string"
}
}
}

Responses

Status Meaning Description Schema
200 OK Cluster successfully created Inline
400 Bad Request Bad input None
401 Unauthorized Not authorized, successful login required None
403 Forbidden Access denied for this user and/or role None
409 Conflict A Cluster with the specified ID or name already exists None
422 Unprocessable Entity The specified Cluster could not be validated using Kafka discovery mechanisms e.g. connection fails, certs mis-matched, SASL mis-match None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string false none The ID of your newly created Cluster

readAllClusters

Code samples

# You can also use wget
curl -X GET /{organization}/clusters \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/clusters

List all Clusters within an Organization. If a page range is specified, then this will return the requested range

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
page query integer false The page number of results to retrieve. If this number exceeds the available data, then the last page is returned.
maxPageSize query integer false The maximum number of entries to return for a given page. If not specified, all data items will be returned.

Example responses

200 Response

{
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"bootstrapServers"
],
"properties": {
"bootstrapServers": {
"description": "Bootstrap servers for this cluster",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Kafka server host name.",
"type": "string"
},
"port": {
"description": "Kafka server port.",
"type": "integer"
},
"ssl": {
"description": "Connect over SSL.",
"type": "boolean",
"default": false
},
"certificates": {
"description": "Certificates or CAs to trust when connecting to the server via SSL.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "object",
"description": "X509 certificate presented by an endpoint",
"required": [
"pem"
],
"properties": {
"pem": {
"description": "Certificate in PEM format",
"type": "string"
},
"subject": {
"description": "Subject name of the certificate",
"type": "string"
},
"sans": {
"description": "A list of subject alternative names of the certificate",
"type": "array",
"items": {
"type": "string"
}
},
"issuer": {
"description": "Issuer of the certificate",
"type": "string"
},
"expiry": {
"description": "Expiration date of the certificate in epoch millis",
"type": "integer"
}
}
}
},
"security": {
"description": "Captures the accepted security protocol",
"type": "object",
"required": [
"authType"
],
"properties": {
"authType": {
"description": "The name of security protocol used",
"type": "string",
"enum": [
"SASL",
"NONE",
"MTLS"
]
},
"mechanism": {
"description": "Security mechanisms supported",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"PLAIN",
"SCRAM-SHA-512",
"SCRAM-SHA-256"
]
}
}
}
},
"errors": {
"description": "Bootstrap server errors, if applicable",
"type": "array",
"items": {
"type": "string",
"enum": [
"UNKNOWN_HOST_EXCEPTION",
"CONNECT_EXCEPTION",
"SSL_HANDSHAKE_EXCEPTION",
"CERTIFICATE_PARSING_EXCEPTION",
"API_NOT_SUPPORTED",
"INTERNAL_FAILURE",
"NONE"
]
}
}
}
}
},
"name": {
"description": "Cluster name",
"type": "string"
},
"lastUpdated": {
"description": "Time in ms since the epoch which represents the last time the cluster information was updated.",
"type": "integer"
},
"credentials": {
"type": "object",
"required": [
"type",
"data"
],
"description": "Credentials to be supplied by the client application when connecting",
"properties": {
"type": {
"description": "The type of credentials. Used by parsers to determine how to handle the other fields",
"type": "string",
"enum": [
"NONE",
"SASL"
]
},
"data": {
"description": "Details of the SASL credential data to authenticate with Kafka",
"type": "object",
"properties": {
"username": {
"description": "SASL username to authenticate with Kafka",
"type": "string"
},
"password": {
"description": "SASL password to authenticate with Kafka",
"type": "string"
},
"mechanism": {
"description": "SASL mechanism to authenticate with Kafka",
"type": "string"
}
}
}
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK Clusters successfully listed. Inline
304 Not Modified Data not changed None
400 Bad Request Invalid request, only one of page and maxPageSize were supplied or max page size exceeded. None
401 Unauthorized Not authorized, successful login required None
403 Forbidden Access denied for this user and/or role None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» bootstrapServers [object] true none Bootstrap servers for this cluster
»» host string true none Kafka server host name.
»» port integer true none Kafka server port.
»» ssl boolean false none Connect over SSL.
»» certificates [object] false none Certificates or CAs to trust when connecting to the server via SSL.
»»» pem string true none Certificate in PEM format
»»» subject string false none Subject name of the certificate
»»» sans [string] false none A list of subject alternative names of the certificate
»»» issuer string false none Issuer of the certificate
»»» expiry integer false none Expiration date of the certificate in epoch millis
»» security object false none Captures the accepted security protocol
»»» authType string true none The name of security protocol used
»»» mechanism [string] false none Security mechanisms supported
»» errors [string] false none Bootstrap server errors, if applicable
» name string true none Cluster name
» lastUpdated integer false none Time in ms since the epoch which represents the last time the cluster information was updated.
» credentials object false none Credentials to be supplied by the client application when connecting
»» type string true none The type of credentials. Used by parsers to determine how to handle the other fields
»» data object true none Details of the SASL credential data to authenticate with Kafka
»»» username string false none SASL username to authenticate with Kafka
»»» password string false none SASL password to authenticate with Kafka
»»» mechanism string false none SASL mechanism to authenticate with Kafka

Enumerated Values

Property Value
authType SASL
authType NONE
authType MTLS
type NONE
type SASL

Response Headers

Status Header Type Format Description
200 ei-pagination-total integer Total number of items available for retrieval (including current page).
200 etag string An identifier which can be supplied with the If-None-Match header to indicate that unchanged results should return 304 with no data.

updateCluster

Code samples

# You can also use wget
curl -X PUT /{organization}/clusters/{clusterId} \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {access-token}'

PUT /{organization}/clusters/{clusterId}

Update a Cluster using the ‘id’ as the identifier.

Note - You can view all of the Clusters (including their ‘id’) by using GET /{organization}/clusters

Body parameter

{
"type": "object",
"required": [
"name",
"bootstrapServers"
],
"properties": {
"bootstrapServers": {
"description": "Bootstrap servers for this cluster",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Kafka server host name.",
"type": "string"
},
"port": {
"description": "Kafka server port.",
"type": "integer"
},
"ssl": {
"description": "Connect over SSL.",
"type": "boolean",
"default": false
},
"certificates": {
"description": "Certificates or CAs to trust when connecting to the server via SSL.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "object",
"description": "X509 certificate presented by an endpoint",
"required": [
"pem"
],
"properties": {
"pem": {
"description": "Certificate in PEM format",
"type": "string"
},
"subject": {
"description": "Subject name of the certificate",
"type": "string"
},
"sans": {
"description": "A list of subject alternative names of the certificate",
"type": "array",
"items": {
"type": "string"
}
},
"issuer": {
"description": "Issuer of the certificate",
"type": "string"
},
"expiry": {
"description": "Expiration date of the certificate in epoch millis",
"type": "integer"
}
}
}
},
"security": {
"description": "Captures the accepted security protocol",
"type": "object",
"required": [
"authType"
],
"properties": {
"authType": {
"description": "The name of security protocol used",
"type": "string",
"enum": [
"SASL",
"NONE",
"MTLS"
]
},
"mechanism": {
"description": "Security mechanisms supported",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"PLAIN",
"SCRAM-SHA-512",
"SCRAM-SHA-256"
]
}
}
}
},
"errors": {
"description": "Bootstrap server errors, if applicable",
"type": "array",
"items": {
"type": "string",
"enum": [
"UNKNOWN_HOST_EXCEPTION",
"CONNECT_EXCEPTION",
"SSL_HANDSHAKE_EXCEPTION",
"CERTIFICATE_PARSING_EXCEPTION",
"API_NOT_SUPPORTED",
"INTERNAL_FAILURE",
"NONE"
]
}
}
}
}
},
"name": {
"description": "Cluster name",
"type": "string"
},
"lastUpdated": {
"description": "Time in ms since the epoch which represents the last time the cluster information was updated.",
"type": "integer"
},
"credentials": {
"type": "object",
"required": [
"type",
"data"
],
"description": "Credentials to be supplied by the client application when connecting",
"properties": {
"type": {
"description": "The type of credentials. Used by parsers to determine how to handle the other fields",
"type": "string",
"enum": [
"NONE",
"SASL"
]
},
"data": {
"description": "Details of the SASL credential data to authenticate with Kafka",
"type": "object",
"properties": {
"username": {
"description": "SASL username to authenticate with Kafka",
"type": "string"
},
"password": {
"description": "SASL password to authenticate with Kafka",
"type": "string"
},
"mechanism": {
"description": "SASL mechanism to authenticate with Kafka",
"type": "string"
}
}
}
}
}
}
}

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
clusterId path string true The ID of the Cluster.
body body object true Update a cluster definition
» bootstrapServers body [object] true Bootstrap servers for this cluster
»» host body string true Kafka server host name.
»» port body integer true Kafka server port.
»» ssl body boolean false Connect over SSL.
»» certificates body [object] false Certificates or CAs to trust when connecting to the server via SSL.
»»» pem body string true Certificate in PEM format
»»» subject body string false Subject name of the certificate
»»» sans body [string] false A list of subject alternative names of the certificate
»»» issuer body string false Issuer of the certificate
»»» expiry body integer false Expiration date of the certificate in epoch millis
»» security body object false Captures the accepted security protocol
»»» authType body string true The name of security protocol used
»»» mechanism body [string] false Security mechanisms supported
»» errors body [string] false Bootstrap server errors, if applicable
» name body string true Cluster name
» lastUpdated body integer false Time in ms since the epoch which represents the last time the cluster information was updated.
» credentials body object false Credentials to be supplied by the client application when connecting
»» type body string true The type of credentials. Used by parsers to determine how to handle the other fields
»» data body object true Details of the SASL credential data to authenticate with Kafka
»»» username body string false SASL username to authenticate with Kafka
»»» password body string false SASL password to authenticate with Kafka
»»» mechanism body string false SASL mechanism to authenticate with Kafka

Enumerated Values

Parameter Value
»»» authType SASL
»»» authType NONE
»»» authType MTLS
»»» mechanism PLAIN
»»» mechanism SCRAM-SHA-512
»»» mechanism SCRAM-SHA-256
»» errors UNKNOWN_HOST_EXCEPTION
»» errors CONNECT_EXCEPTION
»» errors SSL_HANDSHAKE_EXCEPTION
»» errors CERTIFICATE_PARSING_EXCEPTION
»» errors API_NOT_SUPPORTED
»» errors INTERNAL_FAILURE
»» errors NONE
»» type NONE
»» type SASL

Responses

Status Meaning Description Schema
200 OK Cluster updated. None
400 Bad Request Bad input None
401 Unauthorized Not authorized, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found Cluster not found None
409 Conflict Cluster with the specified name already exists None
422 Unprocessable Entity The specified Cluster could not be validated using Kafka discovery mechanisms e.g. connection fails, certs mis-matched, SASL mis-match None
500 Internal Server Error Internal error None

readCluster

Code samples

# You can also use wget
curl -X GET /{organization}/clusters/{clusterId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/clusters/{clusterId}

Get details about a Cluster.

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
clusterId path string true The ID of the Cluster.

Example responses

200 Response

{
"type": "object",
"required": [
"name",
"bootstrapServers"
],
"properties": {
"bootstrapServers": {
"description": "Bootstrap servers for this cluster",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Kafka server host name.",
"type": "string"
},
"port": {
"description": "Kafka server port.",
"type": "integer"
},
"ssl": {
"description": "Connect over SSL.",
"type": "boolean",
"default": false
},
"certificates": {
"description": "Certificates or CAs to trust when connecting to the server via SSL.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "object",
"description": "X509 certificate presented by an endpoint",
"required": [
"pem"
],
"properties": {
"pem": {
"description": "Certificate in PEM format",
"type": "string"
},
"subject": {
"description": "Subject name of the certificate",
"type": "string"
},
"sans": {
"description": "A list of subject alternative names of the certificate",
"type": "array",
"items": {
"type": "string"
}
},
"issuer": {
"description": "Issuer of the certificate",
"type": "string"
},
"expiry": {
"description": "Expiration date of the certificate in epoch millis",
"type": "integer"
}
}
}
},
"security": {
"description": "Captures the accepted security protocol",
"type": "object",
"required": [
"authType"
],
"properties": {
"authType": {
"description": "The name of security protocol used",
"type": "string",
"enum": [
"SASL",
"NONE",
"MTLS"
]
},
"mechanism": {
"description": "Security mechanisms supported",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"PLAIN",
"SCRAM-SHA-512",
"SCRAM-SHA-256"
]
}
}
}
},
"errors": {
"description": "Bootstrap server errors, if applicable",
"type": "array",
"items": {
"type": "string",
"enum": [
"UNKNOWN_HOST_EXCEPTION",
"CONNECT_EXCEPTION",
"SSL_HANDSHAKE_EXCEPTION",
"CERTIFICATE_PARSING_EXCEPTION",
"API_NOT_SUPPORTED",
"INTERNAL_FAILURE",
"NONE"
]
}
}
}
}
},
"name": {
"description": "Cluster name",
"type": "string"
},
"lastUpdated": {
"description": "Time in ms since the epoch which represents the last time the cluster information was updated.",
"type": "integer"
},
"credentials": {
"type": "object",
"required": [
"type",
"data"
],
"description": "Credentials to be supplied by the client application when connecting",
"properties": {
"type": {
"description": "The type of credentials. Used by parsers to determine how to handle the other fields",
"type": "string",
"enum": [
"NONE",
"SASL"
]
},
"data": {
"description": "Details of the SASL credential data to authenticate with Kafka",
"type": "object",
"properties": {
"username": {
"description": "SASL username to authenticate with Kafka",
"type": "string"
},
"password": {
"description": "SASL password to authenticate with Kafka",
"type": "string"
},
"mechanism": {
"description": "SASL mechanism to authenticate with Kafka",
"type": "string"
}
}
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK Cluster successfully read. Inline
401 Unauthorized Not authorized, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found Cluster not found None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» bootstrapServers [object] true none Bootstrap servers for this cluster
»» host string true none Kafka server host name.
»» port integer true none Kafka server port.
»» ssl boolean false none Connect over SSL.
»» certificates [object] false none Certificates or CAs to trust when connecting to the server via SSL.
»»» pem string true none Certificate in PEM format
»»» subject string false none Subject name of the certificate
»»» sans [string] false none A list of subject alternative names of the certificate
»»» issuer string false none Issuer of the certificate
»»» expiry integer false none Expiration date of the certificate in epoch millis
»» security object false none Captures the accepted security protocol
»»» authType string true none The name of security protocol used
»»» mechanism [string] false none Security mechanisms supported
»» errors [string] false none Bootstrap server errors, if applicable
» name string true none Cluster name
» lastUpdated integer false none Time in ms since the epoch which represents the last time the cluster information was updated.
» credentials object false none Credentials to be supplied by the client application when connecting
»» type string true none The type of credentials. Used by parsers to determine how to handle the other fields
»» data object true none Details of the SASL credential data to authenticate with Kafka
»»» username string false none SASL username to authenticate with Kafka
»»» password string false none SASL password to authenticate with Kafka
»»» mechanism string false none SASL mechanism to authenticate with Kafka

Enumerated Values

Property Value
authType SASL
authType NONE
authType MTLS
type NONE
type SASL

deleteCluster

Code samples

# You can also use wget
curl -X DELETE /{organization}/clusters/{clusterId} \
-H 'Authorization: Bearer {access-token}'

DELETE /{organization}/clusters/{clusterId}

Delete a Cluster.

All related Catalog Entries must be deleted prior to deleting a cluster. Note - You must be the owner to delete a Cluster. You can view all of the Clusters that you own (including their ‘id’) by using GET /{organization}/clusters

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
clusterId path string true The ID of the Cluster.

Responses

Status Meaning Description Schema
200 OK Cluster successfully deleted None
401 Unauthorized Not authorized, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found Cluster not found None
409 Conflict catalog entries are still using this cluster and it cannot be deleted None
500 Internal Server Error Internal error None

createSubscription

Code samples

# You can also use wget
curl -X POST /{organization}/subscriptions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

POST /{organization}/subscriptions

Create a subscription to a Catalog Entry

Body parameter

{
"type": "object",
"required": [
"entryId",
"credentials",
"contact"
],
"properties": {
"entryId": {
"description": "The list of entry ids this subscription gives access to, currently only supports 1.",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"maxItems": 1,
"items": {
"type": "string"
}
},
"credentials": {
"type": "object",
"required": [
"type",
"data"
],
"description": "Credentials to be supplied by the client application when connecting",
"properties": {
"type": {
"description": "The type of credentials. Used by parsers to determine how to handle the other fields",
"type": "string",
"enum": [
"NONE",
"SASL"
]
},
"data": {
"description": "Details of the SASL credential data to authenticate with Kafka",
"type": "object",
"properties": {
"username": {
"description": "SASL username to authenticate with Kafka",
"type": "string"
},
"password": {
"description": "SASL password to authenticate with Kafka",
"type": "string"
},
"mechanism": {
"description": "SASL mechanism to authenticate with Kafka",
"type": "string"
}
}
}
}
},
"clientId": {
"description": "Optional client ID if this subscription is a legacy APIC one.",
"type": "string"
},
"contact": {
"description": "Subscription contact details.",
"type": "string"
},
"gateways": {
"description": "A list of gateway IDs that can access this data. If this property is missing or contains an empty list then this subscription has no gateway restrictions",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
}

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
body body object true none
» entryId body [string] true The list of entry ids this subscription gives access to, currently only supports 1.
» credentials body object true Credentials to be supplied by the client application when connecting
»» type body string true The type of credentials. Used by parsers to determine how to handle the other fields
»» data body object true Details of the SASL credential data to authenticate with Kafka
»»» username body string false SASL username to authenticate with Kafka
»»» password body string false SASL password to authenticate with Kafka
»»» mechanism body string false SASL mechanism to authenticate with Kafka
» clientId body string false Optional client ID if this subscription is a legacy APIC one.
» contact body string true Subscription contact details.
» gateways body [string] false A list of gateway IDs that can access this data. If this property is missing or contains an empty list then this subscription has no gateway restrictions

Enumerated Values

Parameter Value
»» type NONE
»» type SASL

Example responses

200 Response

{
"type": "object",
"properties": {
"id": {
"description": "The ID of your newly created Subscription",
"type": "string"
}
}
}

Responses

Status Meaning Description Schema
200 OK Subscription successfully created. Inline
400 Bad Request Bad input None
401 Unauthorized Not authorized, successful login required None
403 Forbidden Access denied for this user and/or role None
409 Conflict Subscription with the specified ID already exists None
422 Unprocessable Entity subscribe to invalid topic etc None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string false none The ID of your newly created Subscription

readAllSubscriptions

Code samples

# You can also use wget
curl -X GET /{organization}/subscriptions \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/subscriptions

List all Subscriptions created by the current user in an Organization. If a page range is specified, then this will return the requested range.

Note - This will not include the subscription credentials

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
page query integer false The page number of results to retrieve. If this number exceeds the available data, then the last page is returned.
maxPageSize query integer false The maximum number of entries to return for a given page. If not specified, all data items will be returned.

Example responses

200 Response

{
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"organization",
"owner",
"entryId",
"contact"
],
"properties": {
"id": {
"description": "Unique subscription ID.",
"type": "string"
},
"owner": {
"description": "Subscription owner.",
"type": "string"
},
"entryId": {
"description": "The list of entry ids this subscription gives access to, currently only supports 1.",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"maxItems": 1,
"items": {
"type": "string"
}
},
"organization": {
"description": "Organization this subscription belongs to.",
"type": "string"
},
"credentials": {
"type": "object",
"required": [
"type",
"data"
],
"description": "Credentials to be supplied by the client application when connecting",
"properties": {
"type": {
"description": "The type of credentials. Used by parsers to determine how to handle the other fields",
"type": "string",
"enum": [
"NONE",
"SASL"
]
},
"data": {
"description": "Details of the SASL credential data to authenticate with Kafka",
"type": "object",
"properties": {
"username": {
"description": "SASL username to authenticate with Kafka",
"type": "string"
},
"password": {
"description": "SASL password to authenticate with Kafka",
"type": "string"
},
"mechanism": {
"description": "SASL mechanism to authenticate with Kafka",
"type": "string"
}
}
}
}
},
"clientId": {
"description": "Optional client ID if this subscription is a legacy APIC one.",
"type": "string"
},
"contact": {
"description": "Subscription contact details.",
"type": "string"
},
"gateways": {
"description": "A list of gateway IDs that can access this data. If this property is missing or contains an empty list then this subscription has no gateway restrictions",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK Subscriptions successfully listed. Inline
304 Not Modified Data not changed None
400 Bad Request Invalid request, only one of page and maxPageSize were supplied or max page size exceeded. None
401 Unauthorized Not authorized, successful login required None
403 Forbidden Access denied for this user and/or role None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Unique subscription ID.
» owner string true none Subscription owner.
» entryId [string] true none The list of entry ids this subscription gives access to, currently only supports 1.
» organization string true none Organization this subscription belongs to.
» credentials object false none Credentials to be supplied by the client application when connecting
»» type string true none The type of credentials. Used by parsers to determine how to handle the other fields
»» data object true none Details of the SASL credential data to authenticate with Kafka
»»» username string false none SASL username to authenticate with Kafka
»»» password string false none SASL password to authenticate with Kafka
»»» mechanism string false none SASL mechanism to authenticate with Kafka
» clientId string false none Optional client ID if this subscription is a legacy APIC one.
» contact string true none Subscription contact details.
» gateways [string] false none A list of gateway IDs that can access this data. If this property is missing or contains an empty list then this subscription has no gateway restrictions

Enumerated Values

Property Value
type NONE
type SASL

Response Headers

Status Header Type Format Description
200 ei-pagination-total integer Total number of items available for retrieval (including current page).
200 etag string An identifier which can be supplied with the If-None-Match header to indicate that unchanged results should return 304 with no data.

deleteSubscription

Code samples

# You can also use wget
curl -X DELETE /{organization}/subscriptions/{subscriptionId} \
-H 'Authorization: Bearer {access-token}'

DELETE /{organization}/subscriptions/{subscriptionId}

Delete a Subscription

Note - You must be the owner to delete a Subscription. You can view all of the Subscriptions that you own (including their ‘id’) by using GET /{organization}/subscriptions

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
subscriptionId path string true The ID of the Subscription.

Responses

Status Meaning Description Schema
200 OK Subscription successfully deleted None
401 Unauthorized Not authorized, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found subscription not found None
500 Internal Server Error Internal error None

readAllGateways

Code samples

# You can also use wget
curl -X GET /{organization}/gateways \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/gateways

List all registered Event Gateways in an Organization. If a page range is specified, then this will return the requested range.

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
page query integer false The page number of results to retrieve. If this number exceeds the available data, then the last page is returned.
maxPageSize query integer false The maximum number of entries to return for a given page. If not specified, all data items will be returned.

Example responses

200 Response

{
"type": "array",
"items": {
"type": "object",
"description": "Detailed information about any registered gateways",
"required": [
"name",
"gateways"
],
"properties": {
"name": {
"description": "Unique gateway group name.",
"type": "string"
},
"gateways": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"organization",
"gatewayId",
"group",
"organizations",
"servedOrganizations",
"endpoints",
"lastContact"
],
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique Event Gateway ID",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"owner": {
"description": "Owner of the Event Gateway.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"organization": {
"description": "Organization this Event Gateway belongs to.",
"type": "string"
},
"gatewayId": {
"description": "Unique Event Gateway ID within this group.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"group": {
"description": "Event Gateway group name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"organizations": {
"description": "Organizations this Event Gateway serves",
"type": "array",
"deprecated": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"servedOrganizations": {
"description": "Organizations this Event Gateway serves",
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"contact": {
"description": "The contact information for this Event Gateway",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lastContact": {
"description": "Epoch time in ms of the last contact from this gateway.",
"type": "integer",
"minimum": 0
},
"endpoints": {
"description": "Endpoints that the gateway is listening on.",
"type": "array",
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Kafka server host name.",
"type": "string"
},
"port": {
"description": "Kafka server port.",
"type": "integer"
},
"ssl": {
"description": "Connect over SSL.",
"type": "boolean",
"default": false
},
"certificates": {
"description": "Certificates or CAs to trust when connecting to the server via SSL.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "object",
"description": "X509 certificate presented by an endpoint",
"required": [
"pem"
],
"properties": {
"pem": {
"description": "Certificate in PEM format",
"type": "string"
},
"subject": {
"description": "Subject name of the certificate",
"type": "string"
},
"sans": {
"description": "A list of subject alternative names of the certificate",
"type": "array",
"items": {
"type": "string"
}
},
"issuer": {
"description": "Issuer of the certificate",
"type": "string"
},
"expiry": {
"description": "Expiration date of the certificate in epoch millis",
"type": "integer"
}
}
}
},
"security": {
"description": "Captures the accepted security protocol",
"type": "object",
"required": [
"authType"
],
"properties": {
"authType": {
"description": "The name of security protocol used",
"type": "string",
"enum": [
"SASL",
"NONE",
"MTLS"
]
},
"mechanism": {
"description": "Security mechanisms supported",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"PLAIN",
"SCRAM-SHA-512",
"SCRAM-SHA-256"
]
}
}
}
},
"errors": {
"description": "Bootstrap server errors, if applicable",
"type": "array",
"items": {
"type": "string",
"enum": [
"UNKNOWN_HOST_EXCEPTION",
"CONNECT_EXCEPTION",
"SSL_HANDSHAKE_EXCEPTION",
"CERTIFICATE_PARSING_EXCEPTION",
"API_NOT_SUPPORTED",
"INTERNAL_FAILURE",
"NONE"
]
}
}
}
}
},
"version": {
"type": "string",
"description": "Version of the gateway",
"minLength": 1,
"maxLength": 20
},
"productVersion": {
"type": "string",
"description": "EEM product version.",
"minLength": 1,
"maxLength": 100
},
"features": {
"type": "array",
"description": "Feature set in use by gateway",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 20
}
},
"deploymentMode": {
"type": "string",
"description": "Type of gateway deployment"
},
"capabilities": {
"type": "object",
"additionalProperties": true,
"description": "Freeform Description of what capabilities the gateway has"
}
}
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK Event Gateways successfully listed. Inline
304 Not Modified Data not changed None
400 Bad Request Invalid request, only one of page and maxPageSize were supplied or max page size exceeded. None
401 Unauthorized Not authorized, successful login required None
403 Forbidden Access denied for this user and/or role None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» name string true none Unique gateway group name.
» gateways [object] true none none
»» id string true none Unique Event Gateway ID
»» owner string true none Owner of the Event Gateway.
»» organization string true none Organization this Event Gateway belongs to.
»» gatewayId string true none Unique Event Gateway ID within this group.
»» group string true none Event Gateway group name.
»» organizations [string] true none Organizations this Event Gateway serves
»» servedOrganizations [string] true none Organizations this Event Gateway serves
»» contact string false none The contact information for this Event Gateway
»» lastContact integer true none Epoch time in ms of the last contact from this gateway.
»» endpoints [object] true none Endpoints that the gateway is listening on.
»»» host string true none Kafka server host name.
»»» port integer true none Kafka server port.
»»» ssl boolean false none Connect over SSL.
»»» certificates [object] false none Certificates or CAs to trust when connecting to the server via SSL.
»»»» pem string true none Certificate in PEM format
»»»» subject string false none Subject name of the certificate
»»»» sans [string] false none A list of subject alternative names of the certificate
»»»» issuer string false none Issuer of the certificate
»»»» expiry integer false none Expiration date of the certificate in epoch millis
»»» security object false none Captures the accepted security protocol
»»»» authType string true none The name of security protocol used
»»»» mechanism [string] false none Security mechanisms supported
»»» errors [string] false none Bootstrap server errors, if applicable
»» version string false none Version of the gateway
»» productVersion string false none EEM product version.
»» features [string] false none Feature set in use by gateway
»» deploymentMode string false none Type of gateway deployment
»» capabilities object false none Freeform Description of what capabilities the gateway has

Enumerated Values

Property Value
authType SASL
authType NONE
authType MTLS

Response Headers

Status Header Type Format Description
200 ei-pagination-total integer Total number of items available for retrieval (including current page).
200 etag string An identifier which can be supplied with the If-None-Match header to indicate that unchanged results should return 304 with no data.

readAllEventSources

Code samples

# You can also use wget
curl -X GET /{organization}/eventsources \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/eventsources

List all Event Sources created by the current user in an Organization. If a page range is specified, then this will return the requested range.

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
page query integer false The page number of results to retrieve. If this number exceeds the available data, then the last page is returned.
maxPageSize query integer false The maximum number of entries to return for a given page. If not specified, all data items will be returned.
filterBy query string false capability to filterBy

Enumerated Values

Parameter Value
filterBy consume
filterBy produce

Example responses

200 Response

{
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"organization",
"clusterId",
"type",
"encoding",
"name",
"contact",
"capabilities"
],
"properties": {
"id": {
"description": "Unique Event Source ID.",
"type": "string"
},
"owner": {
"description": "Event Source owner.",
"type": "string"
},
"organization": {
"description": "Organization this Event Source belongs to.",
"type": "string"
},
"clusterId": {
"description": "ID for the cluster that contains the connection details for this Event Source.",
"type": "string"
},
"type": {
"description": "Type of Event Source",
"type": "string",
"enum": [
"kafka"
]
},
"encoding": {
"description": "The encoding of the data on this Event Source",
"type": "string",
"enum": [
"unknown",
"text/plain",
"application/octet-stream",
"application/json",
"avro/binary",
"avro/json"
]
},
"name": {
"description": "Event Source name",
"type": "string"
},
"contact": {
"description": "Who to contact for more information about this Event Source.",
"type": "string"
},
"description": {
"description": "A description for this Event Source",
"type": "string",
"maxLength": 1500
},
"topic": {
"type": "object",
"properties": {
"name": {
"description": "Actual topic name in the cluster.",
"type": "string"
},
"partitions": {
"description": "The number of partitions for this topic. Discovered from the Kafka cluster",
"type": "number"
},
"replicas": {
"description": "The number of replicas for this topic. Discovered from the Kafka cluster",
"type": "number"
}
},
"required": [
"name"
]
},
"schema": {
"type": "object",
"properties": {
"type": {
"description": "Type of Schema from the list of valid types",
"type": "string",
"enum": [
"avro",
"json",
"unknown"
]
},
"content": {
"description": "Contents of the Schema",
"type": "string",
"maxLength": 1048576
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string",
"maxLength": 1500
}
},
"additionalProperties": false
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
},
"capabilities": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"uniqueItems": true,
"items": {
"description": "Capabilities enum.",
"type": "string",
"enum": [
"consume",
"produce"
]
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK Event Sources successfully listed. Inline
304 Not Modified Data not changed None
400 Bad Request Invalid request, only one of page and maxPageSize were supplied or max page size exceeded. None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Unique Event Source ID.
» owner string true none Event Source owner.
» organization string true none Organization this Event Source belongs to.
» clusterId string true none ID for the cluster that contains the connection details for this Event Source.
» type string true none Type of Event Source
» encoding string true none The encoding of the data on this Event Source
» name string true none Event Source name
» contact string true none Who to contact for more information about this Event Source.
» description string false none A description for this Event Source
» topic object false none none
»» name string true none Actual topic name in the cluster.
»» partitions number false none The number of partitions for this topic. Discovered from the Kafka cluster
»» replicas number false none The number of replicas for this topic. Discovered from the Kafka cluster
» schema object false none none
»» type string false none Type of Schema from the list of valid types
»» content string false none Contents of the Schema
»» description string false none Description of the data available on the Event Source
» tags [string] false none List of tags associated with this Event Source
» sampleMessages [string] false none none
» capabilities [string] true none none

Enumerated Values

Property Value
type kafka
encoding unknown
encoding text/plain
encoding application/octet-stream
encoding application/json
encoding avro/binary
encoding avro/json
type avro
type json
type unknown

Response Headers

Status Header Type Format Description
200 ei-pagination-total integer Total number of items available for retrieval (including current page).
200 etag string An identifier which can be supplied with the If-None-Match header to indicate that unchanged results should return 304 with no data.

createEventSource

Code samples

# You can also use wget
curl -X POST /{organization}/eventsources \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

POST /{organization}/eventsources

Create an event source

Body parameter

{
"type": "object",
"required": [
"clusterId",
"type",
"encoding",
"name",
"contact"
],
"properties": {
"clusterId": {
"description": "ID for the cluster that contains the connection details for this Event Source.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"type": {
"description": "Type of Event Source",
"type": "string",
"enum": [
"kafka"
]
},
"encoding": {
"description": "The encoding of the data on this Event Source",
"type": "string",
"enum": [
"unknown",
"text/plain",
"application/octet-stream",
"application/json",
"avro/binary",
"avro/json"
]
},
"name": {
"description": "Event Source name",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"contact": {
"description": "Who to contact for more information about this Event Source.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "A description for this Event Source",
"type": "string",
"maxLength": 1500
},
"topic": {
"type": "object",
"properties": {
"name": {
"description": "Actual topic name in the cluster.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"partitions": {
"description": "The number of partitions for this topic. ",
"type": "number"
},
"replicas": {
"description": "The number of replicas for this topic.",
"type": "number"
}
},
"required": [
"name"
]
},
"schema": {
"type": "object",
"properties": {
"type": {
"description": "Type of Schema from the list of valid types",
"type": "string",
"enum": [
"avro",
"json",
"unknown"
]
},
"content": {
"description": "Contents of the Schema",
"type": "string",
"maxLength": 1048576
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string",
"maxLength": 1500
}
},
"anyOf": [
{
"required": [
"content",
"type"
]
},
{
"required": [
"description"
]
}
]
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
},
"capabilities": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"uniqueItems": true,
"items": {
"description": "Capabilities enum.",
"type": "string",
"enum": [
"consume",
"produce"
]
}
}
}
}

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
body body object true Event Source data
» clusterId body string true ID for the cluster that contains the connection details for this Event Source.
» type body string true Type of Event Source
» encoding body string true The encoding of the data on this Event Source
» name body string true Event Source name
» contact body string true Who to contact for more information about this Event Source.
» description body string false A description for this Event Source
» topic body object false none
»» name body string true Actual topic name in the cluster.
»» partitions body number false The number of partitions for this topic.
»» replicas body number false The number of replicas for this topic.
» schema body object false none
»» type body string false Type of Schema from the list of valid types
»» content body string false Contents of the Schema
»» description body string false Description of the data available on the Event Source
»» anonymous body object false none
»» anonymous body object false none
» tags body [string] false List of tags associated with this Event Source
» sampleMessages body [string] false none
» capabilities body [string] false none

Enumerated Values

Parameter Value
» type kafka
» encoding unknown
» encoding text/plain
» encoding application/octet-stream
» encoding application/json
» encoding avro/binary
» encoding avro/json
»» type avro
»» type json
»» type unknown
» capabilities consume
» capabilities produce

Example responses

200 Response

{
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
}

Responses

Status Meaning Description Schema
200 OK The id of the created event source Inline
400 Bad Request Invalid request, request data does not match schema. None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
409 Conflict Event Source could not be created due to a conflict None
422 Unprocessable Entity Event Source could not be created as it does not map to a valid cluster None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string false none none

readEventSource

Code samples

# You can also use wget
curl -X GET /{organization}/eventsources/{eventSourceId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/eventsources/{eventSourceId}

Read an event source

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
eventSourceId path string true The ID of the Event Source to read.

Example responses

200 Response

{
"type": "object",
"required": [
"id",
"owner",
"organization",
"clusterId",
"type",
"encoding",
"name",
"contact",
"capabilities"
],
"properties": {
"id": {
"description": "Unique Event Source ID.",
"type": "string"
},
"owner": {
"description": "Event Source owner.",
"type": "string"
},
"organization": {
"description": "Organization this Event Source belongs to.",
"type": "string"
},
"clusterId": {
"description": "ID for the cluster that contains the connection details for this Event Source.",
"type": "string"
},
"type": {
"description": "Type of Event Source",
"type": "string",
"enum": [
"kafka"
]
},
"encoding": {
"description": "The encoding of the data on this Event Source",
"type": "string",
"enum": [
"unknown",
"text/plain",
"application/octet-stream",
"application/json",
"avro/binary",
"avro/json"
]
},
"name": {
"description": "Event Source name",
"type": "string"
},
"contact": {
"description": "Who to contact for more information about this Event Source.",
"type": "string"
},
"description": {
"description": "A description for this Event Source",
"type": "string",
"maxLength": 1500
},
"topic": {
"type": "object",
"properties": {
"name": {
"description": "Actual topic name in the cluster.",
"type": "string"
},
"partitions": {
"description": "The number of partitions for this topic. Discovered from the Kafka cluster",
"type": "number"
},
"replicas": {
"description": "The number of replicas for this topic. Discovered from the Kafka cluster",
"type": "number"
}
},
"required": [
"name"
]
},
"schema": {
"type": "object",
"properties": {
"type": {
"description": "Type of Schema from the list of valid types",
"type": "string",
"enum": [
"avro",
"json",
"unknown"
]
},
"content": {
"description": "Contents of the Schema",
"type": "string",
"maxLength": 1048576
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string",
"maxLength": 1500
}
},
"additionalProperties": false
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
},
"capabilities": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"uniqueItems": true,
"items": {
"description": "Capabilities enum.",
"type": "string",
"enum": [
"consume",
"produce"
]
}
}
}
}

Responses

Status Meaning Description Schema
200 OK The data for the requested event source Inline
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found This Event Source does not exist None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Unique Event Source ID.
» owner string true none Event Source owner.
» organization string true none Organization this Event Source belongs to.
» clusterId string true none ID for the cluster that contains the connection details for this Event Source.
» type string true none Type of Event Source
» encoding string true none The encoding of the data on this Event Source
» name string true none Event Source name
» contact string true none Who to contact for more information about this Event Source.
» description string false none A description for this Event Source
» topic object false none none
»» name string true none Actual topic name in the cluster.
»» partitions number false none The number of partitions for this topic. Discovered from the Kafka cluster
»» replicas number false none The number of replicas for this topic. Discovered from the Kafka cluster
» schema object false none none
»» type string false none Type of Schema from the list of valid types
»» content string false none Contents of the Schema
»» description string false none Description of the data available on the Event Source
» tags [string] false none List of tags associated with this Event Source
» sampleMessages [string] false none none
» capabilities [string] true none none

Enumerated Values

Property Value
type kafka
encoding unknown
encoding text/plain
encoding application/octet-stream
encoding application/json
encoding avro/binary
encoding avro/json
type avro
type json
type unknown

updateEventSource

Code samples

# You can also use wget
curl -X PUT /{organization}/eventsources/{eventSourceId} \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {access-token}'

PUT /{organization}/eventsources/{eventSourceId}

Update an event source

Body parameter

{
"type": "object",
"required": [
"clusterId",
"type",
"encoding",
"name",
"contact"
],
"properties": {
"clusterId": {
"description": "ID for the cluster that contains the connection details for this Event Source.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"type": {
"description": "Type of Event Source",
"type": "string",
"enum": [
"kafka"
]
},
"encoding": {
"description": "The encoding of the data on this Event Source",
"type": "string",
"enum": [
"unknown",
"text/plain",
"application/octet-stream",
"application/json",
"avro/binary",
"avro/json"
]
},
"name": {
"description": "Event Source name",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"contact": {
"description": "Who to contact for more information about this Event Source.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "A description for this Event Source",
"type": "string",
"maxLength": 1500
},
"topic": {
"type": "object",
"properties": {
"name": {
"description": "Actual topic name in the cluster.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"partitions": {
"description": "The number of partitions for this topic. ",
"type": "number"
},
"replicas": {
"description": "The number of replicas for this topic.",
"type": "number"
}
},
"required": [
"name"
]
},
"schema": {
"type": "object",
"properties": {
"type": {
"description": "Type of Schema from the list of valid types",
"type": "string",
"enum": [
"avro",
"json",
"unknown"
]
},
"content": {
"description": "Contents of the Schema",
"type": "string",
"maxLength": 1048576
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string",
"maxLength": 1500
}
},
"anyOf": [
{
"required": [
"content",
"type"
]
},
{
"required": [
"description"
]
}
]
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
},
"capabilities": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"uniqueItems": true,
"items": {
"description": "Capabilities enum.",
"type": "string",
"enum": [
"consume",
"produce"
]
}
}
}
}

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
eventSourceId path string true The ID of the Event Source to update.
body body object true Event Source data
» clusterId body string true ID for the cluster that contains the connection details for this Event Source.
» type body string true Type of Event Source
» encoding body string true The encoding of the data on this Event Source
» name body string true Event Source name
» contact body string true Who to contact for more information about this Event Source.
» description body string false A description for this Event Source
» topic body object false none
»» name body string true Actual topic name in the cluster.
»» partitions body number false The number of partitions for this topic.
»» replicas body number false The number of replicas for this topic.
» schema body object false none
»» type body string false Type of Schema from the list of valid types
»» content body string false Contents of the Schema
»» description body string false Description of the data available on the Event Source
»» anonymous body object false none
»» anonymous body object false none
» tags body [string] false List of tags associated with this Event Source
» sampleMessages body [string] false none
» capabilities body [string] false none

Enumerated Values

Parameter Value
» type kafka
» encoding unknown
» encoding text/plain
» encoding application/octet-stream
» encoding application/json
» encoding avro/binary
» encoding avro/json
»» type avro
»» type json
»» type unknown
» capabilities consume
» capabilities produce

Responses

Status Meaning Description Schema
200 OK Event Source successfully updated None
400 Bad Request Invalid request, request data does not match schema. None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found This Event Source does not exist None
409 Conflict Event Source could not be updated due to a conflict None
422 Unprocessable Entity Event Source could not be created as it does not map to a valid cluster None
500 Internal Server Error Internal error None

deleteEventSource

Code samples

# You can also use wget
curl -X DELETE /{organization}/eventsources/{eventSourceId} \
-H 'Authorization: Bearer {access-token}'

DELETE /{organization}/eventsources/{eventSourceId}

Delete an Event Source

The Event Source must have no attached published or archived Options. Note - You must be the owner to delete an Event Source. You can view all of the Event Sources that you own (including their ‘id’) by using GET /{organization}/eventsources

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
eventSourceId path string true The ID of the Event Source to delete.

Responses

Status Meaning Description Schema
200 OK Event Source successfully deleted None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found This Event Source does not exist None
409 Conflict Event Source could not be deleted due to a conflict None
500 Internal Server Error Internal error None

readAllOptions

Code samples

# You can also use wget
curl -X GET /{organization}/options \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/options

List all Options created by the current user in an Organization. If a page range is specified, then this will return the requested range

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
page query integer false The page number of results to retrieve. If this number exceeds the available data, then the last page is returned.
maxPageSize query integer false The maximum number of entries to return for a given page. If not specified, all data items will be returned.

Example responses

200 Response

{
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"organization",
"eventSourceId",
"name",
"controls",
"alias",
"gatewayGroups",
"allowSubscriptions",
"hidden"
],
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"organization": {
"description": "Organization this Option belongs to.",
"type": "string"
},
"eventSourceId": {
"description": "Event source that this option belongs to",
"type": "string"
},
"alias": {
"description": "Unique, descriptive alias for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"description": "Descriptive name for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "Longer description used to describe what this option is used for",
"type": "string",
"maxLength": 1500
},
"gatewayGroups": {
"description": "List of gateway groups this option should be published to",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"hidden": {
"description": "Indicates if this option is visible in the catalog (draft)",
"type": "boolean"
},
"allowSubscriptions": {
"description": "Indicates if this option is allowing new subscriptions",
"type": "boolean"
},
"controls": {
"description": "Controls on this option",
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"id",
"requests",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
},
"requests": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"status",
"description",
"contact"
],
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"lastUpdated": {
"description": "Unix Epoch timestamp of last update to approval request.",
"type": "integer"
},
"status": {
"description": "The status of this approval request.",
"type": "string",
"enum": [
"pending",
"approved",
"rejected",
"fulfilled"
]
},
"description": {
"description": "Description of why the request was created.",
"type": "string",
"minLength": 1,
"maxLength": 1500
},
"contact": {
"description": "Contact details of the person making the request.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"outcome": {
"description": "Description of the outcome of this request.",
"type": "string",
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"maxLength": 250
}
}
}
}
}
},
{
"allOf": [
{
"type": "object",
"required": [
"id",
"redactions",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"redaction"
]
},
"redactions": {
"type": "array",
"items": {
"anyOf": [
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceString"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "string",
"maxLength": 200
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceIntegral",
"replaceDouble"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "number"
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"algorithm",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"hash"
]
},
"algorithm": {
"type": "string",
"description": "Algorithm to use for hashing the current value",
"enum": [
"SHA-256",
"SHA-512"
]
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}
]
},
{
"type": "object",
"required": [
"id",
"schema",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"schema-filtering"
]
},
"schema": {
"type": "object",
"required": [
"filtered"
],
"properties": {
"filtered": {
"description": "If true, any schema associated with the Event Source will be used to filter records sent to applications",
"type": "boolean"
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"id"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"quota"
]
}
},
"anyOf": [
{
"type": "object",
"required": [
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond",
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK Options successfully listed. Inline
304 Not Modified Data not changed None
400 Bad Request Invalid request, only one of page and maxPageSize were supplied or max page size exceeded. None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Unique Option ID.
» owner string true none Option owner.
» organization string true none Organization this Option belongs to.
» eventSourceId string true none Event source that this option belongs to
» alias string true none Unique, descriptive alias for this option
» name string true none Descriptive name for this option
» description string false none Longer description used to describe what this option is used for
» gatewayGroups [string] true none List of gateway groups this option should be published to
» hidden boolean true none Indicates if this option is visible in the catalog (draft)
» allowSubscriptions boolean true none Indicates if this option is allowing new subscriptions
» controls [anyOf] true none Controls on this option

anyOf

Name Type Required Restrictions Description
»» anonymous object false none none
»»» id string true none Unique Control ID.
»»» type string true none none
»»» requests [object] true none none
»»»» id string true none Unique Option ID.
»»»» owner string true none Option owner.
»»»» lastUpdated integer false none Unix Epoch timestamp of last update to approval request.
»»»» status string true none The status of this approval request.
»»»» description string true none Description of why the request was created.
»»»» contact string true none Contact details of the person making the request.
»»»» outcome string false none Description of the outcome of this request.
»»»» subscriptionId string false none The id of the subscription associated with this request.

or

Name Type Required Restrictions Description
»» anonymous object false none none
»»» id string true none Unique Control ID.
»»» type string true none none
»»» redactions [anyOf] true none none

anyOf

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» type string true none Type of redaction.
»»»»»» replaceWith string true none The value to replace with

or

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» type any true none Type of redaction.
»»»»»» replaceWith number true none The value to replace with

or

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» type string true none Type of redaction.
»»»»»» algorithm string true none Algorithm to use for hashing the current value

or

Name Type Required Restrictions Description
»» anonymous object false none none
»»» id string true none Unique Control ID.
»»» type string true none none
»»» schema object true none none
»»»» filtered boolean true none If true, any schema associated with the Event Source will be used to filter records sent to applications

or

Name Type Required Restrictions Description
»» anonymous object false none none
»»» id string true none Unique Control ID.
»»» type string true none none

anyOf

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» megabytesPerSecond number true none Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond number false none Upper limit to messages per second produced/consumed

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» megabytesPerSecond number false none Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond number true none Upper limit to messages per second produced/consumed

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» megabytesPerSecond number true none Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond number true none Upper limit to messages per second produced/consumed

Enumerated Values

Property Value
type approval
status pending
status approved
status rejected
status fulfilled
type redaction
type replaceString
type replaceIntegral
type replaceDouble
type hash
algorithm SHA-256
algorithm SHA-512
type schema-filtering
type quota

Response Headers

Status Header Type Format Description
200 ei-pagination-total integer Total number of items available for retrieval (including current page).
200 etag string An identifier which can be supplied with the If-None-Match header to indicate that unchanged results should return 304 with no data.

createOption

Code samples

# You can also use wget
curl -X POST /{organization}/options \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

POST /{organization}/options

Create an option

Body parameter

{
"type": "object",
"required": [
"eventSourceId",
"name",
"controls",
"alias",
"gatewayGroups",
"allowSubscriptions",
"hidden"
],
"properties": {
"eventSourceId": {
"description": "Event source that this option belongs to",
"type": "string"
},
"alias": {
"description": "Unique, descriptive alias for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"description": "Descriptive name for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "Longer description used to describe what this option is used for",
"type": "string",
"maxLength": 1500
},
"gatewayGroups": {
"description": "List of gateway groups this option should be published to",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"hidden": {
"description": "Indicates if this option is visible in the catalog (draft)",
"type": "boolean"
},
"allowSubscriptions": {
"description": "Indicates if this option is allowing new subscriptions",
"type": "boolean"
},
"controls": {
"description": "Controls on this option",
"type": "array",
"items": {
"anyOf": [
{
"allOf": [
{
"type": "object",
"required": [
"id",
"redactions",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"redaction"
]
},
"redactions": {
"type": "array",
"items": {
"anyOf": [
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceString"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "string",
"maxLength": 200
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceIntegral",
"replaceDouble"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "number"
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"algorithm",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"hash"
]
},
"algorithm": {
"type": "string",
"description": "Algorithm to use for hashing the current value",
"enum": [
"SHA-256",
"SHA-512"
]
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}
]
},
{
"type": "object",
"required": [
"id",
"requests",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
},
"requests": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"status",
"description",
"contact"
],
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"lastUpdated": {
"description": "Unix Epoch timestamp of last update to approval request.",
"type": "integer"
},
"status": {
"description": "The status of this approval request.",
"type": "string",
"enum": [
"pending",
"approved",
"rejected",
"fulfilled"
]
},
"description": {
"description": "Description of why the request was created.",
"type": "string",
"minLength": 1,
"maxLength": 1500
},
"contact": {
"description": "Contact details of the person making the request.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"outcome": {
"description": "Description of the outcome of this request.",
"type": "string",
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"maxLength": 250
}
}
}
}
}
},
{
"type": "object",
"required": [
"id",
"schema",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"schema-filtering"
]
},
"schema": {
"type": "object",
"required": [
"filtered"
],
"properties": {
"filtered": {
"description": "If true, any schema associated with the Event Source will be used to filter records sent to applications",
"type": "boolean"
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"id"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"quota"
]
}
},
"anyOf": [
{
"type": "object",
"required": [
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond",
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
body body object true Option data
» eventSourceId body string true Event source that this option belongs to
» alias body string true Unique, descriptive alias for this option
» name body string true Descriptive name for this option
» description body string false Longer description used to describe what this option is used for
» gatewayGroups body [string] true List of gateway groups this option should be published to
» hidden body boolean true Indicates if this option is visible in the catalog (draft)
» allowSubscriptions body boolean true Indicates if this option is allowing new subscriptions
» controls body [anyOf] true Controls on this option
»» anonymous body object false none
»»» id body string true Unique Control ID.
»»» type body string true none
»»» redactions body [anyOf] true none
»»»» anonymous body any false none
»»»»» anonymous body object false none
»»»»»» path body string true The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)
»»»»» anonymous body object false none
»»»»»» type body string true Type of redaction.
»»»»»» replaceWith body string true The value to replace with
»»»» anonymous body any false none
»»»»» anonymous body object false none
»»»»»» path body string true The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)
»»»»» anonymous body object false none
»»»»»» type body any true Type of redaction.
»»»»»» replaceWith body number true The value to replace with
»»»» anonymous body any false none
»»»»» anonymous body object false none
»»»»»» path body string true The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)
»»»»» anonymous body object false none
»»»»»» type body string true Type of redaction.
»»»»»» algorithm body string true Algorithm to use for hashing the current value
»» anonymous body object false none
»»» id body string true Unique Control ID.
»»» type body string true none
»»» requests body [object] true none
»»»» id body string true Unique Option ID.
»»»» owner body string true Option owner.
»»»» lastUpdated body integer false Unix Epoch timestamp of last update to approval request.
»»»» status body string true The status of this approval request.
»»»» description body string true Description of why the request was created.
»»»» contact body string true Contact details of the person making the request.
»»»» outcome body string false Description of the outcome of this request.
»»»» subscriptionId body string false The id of the subscription associated with this request.
»» anonymous body object false none
»»» id body string true Unique Control ID.
»»» type body string true none
»»» schema body object true none
»»»» filtered body boolean true If true, any schema associated with the Event Source will be used to filter records sent to applications
»» anonymous body object false none
»»» id body string true Unique Control ID.
»»» type body string true none
»»» anonymous body object false none
»»»» megabytesPerSecond body number true Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond body number false Upper limit to messages per second produced/consumed
»»» anonymous body object false none
»»»» megabytesPerSecond body number false Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond body number true Upper limit to messages per second produced/consumed
»»» anonymous body object false none
»»»» megabytesPerSecond body number true Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond body number true Upper limit to messages per second produced/consumed

Enumerated Values

Parameter Value
»»» type redaction
»»»»»» type replaceString
»»»»»» type replaceIntegral
»»»»»» type replaceDouble
»»»»»» type hash
»»»»»» algorithm SHA-256
»»»»»» algorithm SHA-512
»»» type approval
»»»» status pending
»»»» status approved
»»»» status rejected
»»»» status fulfilled
»»» type schema-filtering
»»» type quota

Example responses

200 Response

{
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
}

Responses

Status Meaning Description Schema
200 OK The id of the created option Inline
400 Bad Request Invalid request, request data does not match schema. None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string false none none

readOption

Code samples

# You can also use wget
curl -X GET /{organization}/options/{optionId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/options/{optionId}

Read an option

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
optionId path string true The ID of the Option to read.

Example responses

200 Response

{
"type": "object",
"required": [
"id",
"owner",
"organization",
"eventSourceId",
"name",
"controls",
"alias",
"gatewayGroups",
"allowSubscriptions",
"hidden"
],
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"organization": {
"description": "Organization this Option belongs to.",
"type": "string"
},
"eventSourceId": {
"description": "Event source that this option belongs to",
"type": "string"
},
"alias": {
"description": "Unique, descriptive alias for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"description": "Descriptive name for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "Longer description used to describe what this option is used for",
"type": "string",
"maxLength": 1500
},
"gatewayGroups": {
"description": "List of gateway groups this option should be published to",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"hidden": {
"description": "Indicates if this option is visible in the catalog (draft)",
"type": "boolean"
},
"allowSubscriptions": {
"description": "Indicates if this option is allowing new subscriptions",
"type": "boolean"
},
"controls": {
"description": "Controls on this option",
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"id",
"requests",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
},
"requests": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"status",
"description",
"contact"
],
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"lastUpdated": {
"description": "Unix Epoch timestamp of last update to approval request.",
"type": "integer"
},
"status": {
"description": "The status of this approval request.",
"type": "string",
"enum": [
"pending",
"approved",
"rejected",
"fulfilled"
]
},
"description": {
"description": "Description of why the request was created.",
"type": "string",
"minLength": 1,
"maxLength": 1500
},
"contact": {
"description": "Contact details of the person making the request.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"outcome": {
"description": "Description of the outcome of this request.",
"type": "string",
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"maxLength": 250
}
}
}
}
}
},
{
"allOf": [
{
"type": "object",
"required": [
"id",
"redactions",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"redaction"
]
},
"redactions": {
"type": "array",
"items": {
"anyOf": [
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceString"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "string",
"maxLength": 200
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceIntegral",
"replaceDouble"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "number"
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"algorithm",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"hash"
]
},
"algorithm": {
"type": "string",
"description": "Algorithm to use for hashing the current value",
"enum": [
"SHA-256",
"SHA-512"
]
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}
]
},
{
"type": "object",
"required": [
"id",
"schema",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"schema-filtering"
]
},
"schema": {
"type": "object",
"required": [
"filtered"
],
"properties": {
"filtered": {
"description": "If true, any schema associated with the Event Source will be used to filter records sent to applications",
"type": "boolean"
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"id"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"quota"
]
}
},
"anyOf": [
{
"type": "object",
"required": [
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond",
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK The data for the requested option Inline
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found This Option does not exist None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Unique Option ID.
» owner string true none Option owner.
» organization string true none Organization this Option belongs to.
» eventSourceId string true none Event source that this option belongs to
» alias string true none Unique, descriptive alias for this option
» name string true none Descriptive name for this option
» description string false none Longer description used to describe what this option is used for
» gatewayGroups [string] true none List of gateway groups this option should be published to
» hidden boolean true none Indicates if this option is visible in the catalog (draft)
» allowSubscriptions boolean true none Indicates if this option is allowing new subscriptions
» controls [anyOf] true none Controls on this option

anyOf

Name Type Required Restrictions Description
»» anonymous object false none none
»»» id string true none Unique Control ID.
»»» type string true none none
»»» requests [object] true none none
»»»» id string true none Unique Option ID.
»»»» owner string true none Option owner.
»»»» lastUpdated integer false none Unix Epoch timestamp of last update to approval request.
»»»» status string true none The status of this approval request.
»»»» description string true none Description of why the request was created.
»»»» contact string true none Contact details of the person making the request.
»»»» outcome string false none Description of the outcome of this request.
»»»» subscriptionId string false none The id of the subscription associated with this request.

or

Name Type Required Restrictions Description
»» anonymous object false none none
»»» id string true none Unique Control ID.
»»» type string true none none
»»» redactions [anyOf] true none none

anyOf

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» type string true none Type of redaction.
»»»»»» replaceWith string true none The value to replace with

or

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» type any true none Type of redaction.
»»»»»» replaceWith number true none The value to replace with

or

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» type string true none Type of redaction.
»»»»»» algorithm string true none Algorithm to use for hashing the current value

or

Name Type Required Restrictions Description
»» anonymous object false none none
»»» id string true none Unique Control ID.
»»» type string true none none
»»» schema object true none none
»»»» filtered boolean true none If true, any schema associated with the Event Source will be used to filter records sent to applications

or

Name Type Required Restrictions Description
»» anonymous object false none none
»»» id string true none Unique Control ID.
»»» type string true none none

anyOf

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» megabytesPerSecond number true none Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond number false none Upper limit to messages per second produced/consumed

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» megabytesPerSecond number false none Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond number true none Upper limit to messages per second produced/consumed

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» megabytesPerSecond number true none Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond number true none Upper limit to messages per second produced/consumed

Enumerated Values

Property Value
type approval
status pending
status approved
status rejected
status fulfilled
type redaction
type replaceString
type replaceIntegral
type replaceDouble
type hash
algorithm SHA-256
algorithm SHA-512
type schema-filtering
type quota

updateOption

Code samples

# You can also use wget
curl -X PUT /{organization}/options/{optionId} \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {access-token}'

PUT /{organization}/options/{optionId}

Update an option

Body parameter

{
"type": "object",
"required": [
"eventSourceId",
"name",
"controls",
"alias",
"gatewayGroups",
"allowSubscriptions",
"hidden"
],
"properties": {
"eventSourceId": {
"description": "Event source that this option belongs to",
"type": "string"
},
"alias": {
"description": "Unique, descriptive alias for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"description": "Descriptive name for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "Longer description used to describe what this option is used for",
"type": "string",
"maxLength": 1500
},
"gatewayGroups": {
"description": "List of gateway groups this option should be published to",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"hidden": {
"description": "Indicates if this option is visible in the catalog (draft)",
"type": "boolean"
},
"allowSubscriptions": {
"description": "Indicates if this option is allowing new subscriptions",
"type": "boolean"
},
"controls": {
"description": "Controls on this option",
"type": "array",
"items": {
"anyOf": [
{
"allOf": [
{
"type": "object",
"required": [
"id",
"redactions",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"redaction"
]
},
"redactions": {
"type": "array",
"items": {
"anyOf": [
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceString"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "string",
"maxLength": 200
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceIntegral",
"replaceDouble"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "number"
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"algorithm",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"hash"
]
},
"algorithm": {
"type": "string",
"description": "Algorithm to use for hashing the current value",
"enum": [
"SHA-256",
"SHA-512"
]
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}
]
},
{
"type": "object",
"required": [
"id",
"requests",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
},
"requests": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"status",
"description",
"contact"
],
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"lastUpdated": {
"description": "Unix Epoch timestamp of last update to approval request.",
"type": "integer"
},
"status": {
"description": "The status of this approval request.",
"type": "string",
"enum": [
"pending",
"approved",
"rejected",
"fulfilled"
]
},
"description": {
"description": "Description of why the request was created.",
"type": "string",
"minLength": 1,
"maxLength": 1500
},
"contact": {
"description": "Contact details of the person making the request.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"outcome": {
"description": "Description of the outcome of this request.",
"type": "string",
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"maxLength": 250
}
}
}
}
}
},
{
"type": "object",
"required": [
"id",
"schema",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"schema-filtering"
]
},
"schema": {
"type": "object",
"required": [
"filtered"
],
"properties": {
"filtered": {
"description": "If true, any schema associated with the Event Source will be used to filter records sent to applications",
"type": "boolean"
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"id"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"quota"
]
}
},
"anyOf": [
{
"type": "object",
"required": [
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond",
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
optionId path string true The ID of the Option to update.
body body object true Option data
» eventSourceId body string true Event source that this option belongs to
» alias body string true Unique, descriptive alias for this option
» name body string true Descriptive name for this option
» description body string false Longer description used to describe what this option is used for
» gatewayGroups body [string] true List of gateway groups this option should be published to
» hidden body boolean true Indicates if this option is visible in the catalog (draft)
» allowSubscriptions body boolean true Indicates if this option is allowing new subscriptions
» controls body [anyOf] true Controls on this option
»» anonymous body object false none
»»» id body string true Unique Control ID.
»»» type body string true none
»»» redactions body [anyOf] true none
»»»» anonymous body any false none
»»»»» anonymous body object false none
»»»»»» path body string true The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)
»»»»» anonymous body object false none
»»»»»» type body string true Type of redaction.
»»»»»» replaceWith body string true The value to replace with
»»»» anonymous body any false none
»»»»» anonymous body object false none
»»»»»» path body string true The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)
»»»»» anonymous body object false none
»»»»»» type body any true Type of redaction.
»»»»»» replaceWith body number true The value to replace with
»»»» anonymous body any false none
»»»»» anonymous body object false none
»»»»»» path body string true The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)
»»»»» anonymous body object false none
»»»»»» type body string true Type of redaction.
»»»»»» algorithm body string true Algorithm to use for hashing the current value
»» anonymous body object false none
»»» id body string true Unique Control ID.
»»» type body string true none
»»» requests body [object] true none
»»»» id body string true Unique Option ID.
»»»» owner body string true Option owner.
»»»» lastUpdated body integer false Unix Epoch timestamp of last update to approval request.
»»»» status body string true The status of this approval request.
»»»» description body string true Description of why the request was created.
»»»» contact body string true Contact details of the person making the request.
»»»» outcome body string false Description of the outcome of this request.
»»»» subscriptionId body string false The id of the subscription associated with this request.
»» anonymous body object false none
»»» id body string true Unique Control ID.
»»» type body string true none
»»» schema body object true none
»»»» filtered body boolean true If true, any schema associated with the Event Source will be used to filter records sent to applications
»» anonymous body object false none
»»» id body string true Unique Control ID.
»»» type body string true none
»»» anonymous body object false none
»»»» megabytesPerSecond body number true Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond body number false Upper limit to messages per second produced/consumed
»»» anonymous body object false none
»»»» megabytesPerSecond body number false Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond body number true Upper limit to messages per second produced/consumed
»»» anonymous body object false none
»»»» megabytesPerSecond body number true Upper limit to megabytes per second produced/consumed
»»»» messagesPerSecond body number true Upper limit to messages per second produced/consumed

Enumerated Values

Parameter Value
»»» type redaction
»»»»»» type replaceString
»»»»»» type replaceIntegral
»»»»»» type replaceDouble
»»»»»» type hash
»»»»»» algorithm SHA-256
»»»»»» algorithm SHA-512
»»» type approval
»»»» status pending
»»»» status approved
»»»» status rejected
»»»» status fulfilled
»»» type schema-filtering
»»» type quota

Responses

Status Meaning Description Schema
200 OK Option successfully updated None
400 Bad Request Invalid request, request data does not match schema. None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found This Option does not exist None
500 Internal Server Error Internal error None

deleteOption

Code samples

# You can also use wget
curl -X DELETE /{organization}/options/{optionId} \
-H 'Authorization: Bearer {access-token}'

DELETE /{organization}/options/{optionId}

Delete an Option.

The Option must be unpublished with no remaining Subscriptions. Note - You must be the owner to delete an Option. You can view all of the Options that you own (including their ‘id’) by using GET /{organization}/options

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
optionId path string true The ID of the Option to delete.

Responses

Status Meaning Description Schema
200 OK Option successfully deleted None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found This Option does not exist None
409 Conflict Option could not be deleted due to a conflict None
500 Internal Server Error Internal error None

exportAPICAsyncAPI

Code samples

# You can also use wget
curl -X GET /{organization}/options/{optionId}/apicasyncapi \
-H 'Accept: application/yaml' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/options/{optionId}/apicasyncapi

Generate an AsyncAPI document for a selected Option with connections added for IBM API Connect.

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
optionId path string true The ID of the option in the Event source.
version query string false The version of AsyncAPI

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK AsyncAPI successfully generated. string
400 Bad Request Bad input None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found Option not found None
422 Unprocessable Entity Cannot export option with approval control None
500 Internal Server Error Internal error None

exportAsyncAPI

Code samples

# You can also use wget
curl -X GET /{organization}/options/{optionId}/asyncapi \
-H 'Accept: application/yaml' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/options/{optionId}/asyncapi

Generate an AsyncAPI document for a selected Option.

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
optionId path string true The ID of the option in the Event source.
version query string false The version of AsyncAPI

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK AsyncAPI successfully generated. string
400 Bad Request Bad input None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found Option not found None
500 Internal Server Error Internal error None

readAllEventEndpoints

Code samples

# You can also use wget
curl -X GET /{organization}/eventendpoints \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/eventendpoints

List all Event Endpoints in an Organization. If a page range is specified, then this will return the requested range.

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
page query integer false The page number of results to retrieve. If this number exceeds the available data, then the last page is returned.
maxPageSize query integer false The maximum number of entries to return for a given page. If not specified, all data items will be returned.
filterBy query string false capability to filterBy

Enumerated Values

Parameter Value
filterBy consume
filterBy produce

Example responses

200 Response

{
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"organization",
"clusterId",
"type",
"encoding",
"name",
"contact",
"capabilities",
"options"
],
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique ID of related EventSource.",
"type": "string"
},
"owner": {
"description": "Owner of related EventSource.",
"type": "string"
},
"organization": {
"description": "Organization the related EventSource belongs to.",
"type": "string"
},
"clusterId": {
"description": "ID for the cluster that contains the connection details for this Event Source.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"type": {
"description": "Type of Event Source",
"type": "string",
"enum": [
"kafka"
]
},
"encoding": {
"description": "The encoding of the data on this Event Source",
"type": "string",
"enum": [
"unknown",
"text/plain",
"application/octet-stream",
"application/json",
"avro/binary",
"avro/json"
]
},
"name": {
"description": "Event Source name",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"contact": {
"description": "Who to contact for more information about this Event Source.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "A description for this Event Source",
"type": "string",
"maxLength": 1500
},
"topic": {
"type": "object",
"required": [
"name"
],
"additionalProperties": false,
"properties": {
"name": {
"description": "Actual topic name in the cluster.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"partitions": {
"description": "The number of partitions for this topic. ",
"type": "number"
},
"replicas": {
"description": "The number of replicas for this topic.",
"type": "number"
}
}
},
"schema": {
"type": "object",
"properties": {
"type": {
"description": "Type of Schema from the list of valid types",
"type": "string",
"enum": [
"avro",
"json",
"unknown"
]
},
"content": {
"description": "Contents of the Schema",
"type": "string",
"maxLength": 1048576
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string",
"maxLength": 1500
}
},
"additionalProperties": false
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
},
"capabilities": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"uniqueItems": true,
"items": {
"description": "Capabilities enum.",
"type": "string",
"enum": [
"consume",
"produce"
]
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"organization",
"eventSourceId",
"name",
"controls",
"alias",
"gatewayGroups",
"allowSubscriptions",
"hidden",
"gatewaysPublishedTo"
],
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"organization": {
"description": "Organization this Option belongs to.",
"type": "string"
},
"eventSourceId": {
"description": "Event source that this option belongs to",
"type": "string"
},
"alias": {
"description": "Unique, descriptive alias for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"description": "Descriptive name for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "Longer description used to describe what this option is used for",
"type": "string",
"maxLength": 1500
},
"gatewayGroups": {
"description": "List of gateway groups this option should be published to",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"hidden": {
"description": "Indicates if this option is visible in the catalog (draft)",
"type": "boolean"
},
"allowSubscriptions": {
"description": "Indicates if this option is allowing new subscriptions",
"type": "boolean"
},
"controls": {
"description": "Controls on this option",
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"id",
"requests",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
},
"requests": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"status",
"description",
"contact"
],
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"lastUpdated": {
"description": "Unix Epoch timestamp of last update to approval request.",
"type": "integer"
},
"status": {
"description": "The status of this approval request.",
"type": "string",
"enum": [
"pending",
"approved",
"rejected",
"fulfilled"
]
},
"description": {
"description": "Description of why the request was created.",
"type": "string",
"minLength": 1,
"maxLength": 1500
},
"contact": {
"description": "Contact details of the person making the request.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"outcome": {
"description": "Description of the outcome of this request.",
"type": "string",
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"maxLength": 250
}
}
}
}
}
},
{
"allOf": [
{
"type": "object",
"required": [
"id",
"redactions",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"redaction"
]
},
"redactions": {
"type": "array",
"items": {
"anyOf": [
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceString"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "string",
"maxLength": 200
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceIntegral",
"replaceDouble"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "number"
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"algorithm",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"hash"
]
},
"algorithm": {
"type": "string",
"description": "Algorithm to use for hashing the current value",
"enum": [
"SHA-256",
"SHA-512"
]
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}
]
},
{
"type": "object",
"required": [
"id",
"schema",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"schema-filtering"
]
},
"schema": {
"type": "object",
"required": [
"filtered"
],
"properties": {
"filtered": {
"description": "If true, any schema associated with the Event Source will be used to filter records sent to applications",
"type": "boolean"
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"id"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"quota"
]
}
},
"anyOf": [
{
"type": "object",
"required": [
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond",
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
},
"gatewaysPublishedTo": {
"description": "List of gateways that this option has been published to.",
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"organization",
"gatewayId",
"group",
"organizations",
"servedOrganizations",
"endpoints",
"lastContact"
],
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique Event Gateway ID",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"owner": {
"description": "Owner of the Event Gateway.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"organization": {
"description": "Organization this Event Gateway belongs to.",
"type": "string"
},
"gatewayId": {
"description": "Unique Event Gateway ID within this group.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"group": {
"description": "Event Gateway group name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"organizations": {
"description": "Organizations this Event Gateway serves",
"type": "array",
"deprecated": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"servedOrganizations": {
"description": "Organizations this Event Gateway serves",
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"contact": {
"description": "The contact information for this Event Gateway",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lastContact": {
"description": "Epoch time in ms of the last contact from this gateway.",
"type": "integer",
"minimum": 0
},
"endpoints": {
"description": "Endpoints that the gateway is listening on.",
"type": "array",
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Kafka server host name.",
"type": "string"
},
"port": {
"description": "Kafka server port.",
"type": "integer"
},
"ssl": {
"description": "Connect over SSL.",
"type": "boolean",
"default": false
},
"certificates": {
"description": "Certificates or CAs to trust when connecting to the server via SSL.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "object",
"description": "X509 certificate presented by an endpoint",
"required": [
"pem"
],
"properties": {
"pem": {
"description": "Certificate in PEM format",
"type": "string"
},
"subject": {
"description": "Subject name of the certificate",
"type": "string"
},
"sans": {
"description": "A list of subject alternative names of the certificate",
"type": "array",
"items": {
"type": "string"
}
},
"issuer": {
"description": "Issuer of the certificate",
"type": "string"
},
"expiry": {
"description": "Expiration date of the certificate in epoch millis",
"type": "integer"
}
}
}
},
"security": {
"description": "Captures the accepted security protocol",
"type": "object",
"required": [
"authType"
],
"properties": {
"authType": {
"description": "The name of security protocol used",
"type": "string",
"enum": [
"SASL",
"NONE",
"MTLS"
]
},
"mechanism": {
"description": "Security mechanisms supported",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"PLAIN",
"SCRAM-SHA-512",
"SCRAM-SHA-256"
]
}
}
}
},
"errors": {
"description": "Bootstrap server errors, if applicable",
"type": "array",
"items": {
"type": "string",
"enum": [
"UNKNOWN_HOST_EXCEPTION",
"CONNECT_EXCEPTION",
"SSL_HANDSHAKE_EXCEPTION",
"CERTIFICATE_PARSING_EXCEPTION",
"API_NOT_SUPPORTED",
"INTERNAL_FAILURE",
"NONE"
]
}
}
}
}
},
"version": {
"type": "string",
"description": "Version of the gateway",
"minLength": 1,
"maxLength": 20
},
"productVersion": {
"type": "string",
"description": "EEM product version.",
"minLength": 1,
"maxLength": 100
},
"features": {
"type": "array",
"description": "Feature set in use by gateway",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 20
}
},
"deploymentMode": {
"type": "string",
"description": "Type of gateway deployment"
},
"capabilities": {
"type": "object",
"additionalProperties": true,
"description": "Freeform Description of what capabilities the gateway has"
}
}
}
}
}
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK Event Endpoints successfully listed. Inline
304 Not Modified Data not changed None
400 Bad Request Invalid request, only one of page and maxPageSize were supplied or max page size exceeded. None
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Unique ID of related EventSource.
» owner string true none Owner of related EventSource.
» organization string true none Organization the related EventSource belongs to.
» clusterId string true none ID for the cluster that contains the connection details for this Event Source.
» type string true none Type of Event Source
» encoding string true none The encoding of the data on this Event Source
» name string true none Event Source name
» contact string true none Who to contact for more information about this Event Source.
» description string false none A description for this Event Source
» topic object false none none
»» name string true none Actual topic name in the cluster.
»» partitions number false none The number of partitions for this topic.
»» replicas number false none The number of replicas for this topic.
» schema object false none none
»» type string false none Type of Schema from the list of valid types
»» content string false none Contents of the Schema
»» description string false none Description of the data available on the Event Source
» tags [string] false none List of tags associated with this Event Source
» sampleMessages [string] false none none
» capabilities [string] true none none
» options [object] true none none
»» id string true none Unique Option ID.
»» owner string true none Option owner.
»» organization string true none Organization this Option belongs to.
»» eventSourceId string true none Event source that this option belongs to
»» alias string true none Unique, descriptive alias for this option
»» name string true none Descriptive name for this option
»» description string false none Longer description used to describe what this option is used for
»» gatewayGroups [string] true none List of gateway groups this option should be published to
»» hidden boolean true none Indicates if this option is visible in the catalog (draft)
»» allowSubscriptions boolean true none Indicates if this option is allowing new subscriptions
»» controls [anyOf] true none Controls on this option

anyOf

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» id string true none Unique Control ID.
»»»» type string true none none
»»»» requests [object] true none none
»»»»» id string true none Unique Option ID.
»»»»» owner string true none Option owner.
»»»»» lastUpdated integer false none Unix Epoch timestamp of last update to approval request.
»»»»» status string true none The status of this approval request.
»»»»» description string true none Description of why the request was created.
»»»»» contact string true none Contact details of the person making the request.
»»»»» outcome string false none Description of the outcome of this request.
»»»»» subscriptionId string false none The id of the subscription associated with this request.

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» id string true none Unique Control ID.
»»»» type string true none none
»»»» redactions [anyOf] true none none

anyOf

Name Type Required Restrictions Description
»»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» type string true none Type of redaction.
»»»»»»» replaceWith string true none The value to replace with

or

Name Type Required Restrictions Description
»»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» type any true none Type of redaction.
»»»»»»» replaceWith number true none The value to replace with

or

Name Type Required Restrictions Description
»»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» type string true none Type of redaction.
»»»»»»» algorithm string true none Algorithm to use for hashing the current value

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» id string true none Unique Control ID.
»»»» type string true none none
»»»» schema object true none none
»»»»» filtered boolean true none If true, any schema associated with the Event Source will be used to filter records sent to applications

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» id string true none Unique Control ID.
»»»» type string true none none

anyOf

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» megabytesPerSecond number true none Upper limit to megabytes per second produced/consumed
»»»»» messagesPerSecond number false none Upper limit to messages per second produced/consumed

or

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» megabytesPerSecond number false none Upper limit to megabytes per second produced/consumed
»»»»» messagesPerSecond number true none Upper limit to messages per second produced/consumed

or

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» megabytesPerSecond number true none Upper limit to megabytes per second produced/consumed
»»»»» messagesPerSecond number true none Upper limit to messages per second produced/consumed

continued

Name Type Required Restrictions Description
»» gatewaysPublishedTo [object] true none List of gateways that this option has been published to.
»»» id string true none Unique Event Gateway ID
»»» owner string true none Owner of the Event Gateway.
»»» organization string true none Organization this Event Gateway belongs to.
»»» gatewayId string true none Unique Event Gateway ID within this group.
»»» group string true none Event Gateway group name.
»»» organizations [string] true none Organizations this Event Gateway serves
»»» servedOrganizations [string] true none Organizations this Event Gateway serves
»»» contact string false none The contact information for this Event Gateway
»»» lastContact integer true none Epoch time in ms of the last contact from this gateway.
»»» endpoints [object] true none Endpoints that the gateway is listening on.
»»»» host string true none Kafka server host name.
»»»» port integer true none Kafka server port.
»»»» ssl boolean false none Connect over SSL.
»»»» certificates [object] false none Certificates or CAs to trust when connecting to the server via SSL.
»»»»» pem string true none Certificate in PEM format
»»»»» subject string false none Subject name of the certificate
»»»»» sans [string] false none A list of subject alternative names of the certificate
»»»»» issuer string false none Issuer of the certificate
»»»»» expiry integer false none Expiration date of the certificate in epoch millis
»»»» security object false none Captures the accepted security protocol
»»»»» authType string true none The name of security protocol used
»»»»» mechanism [string] false none Security mechanisms supported
»»»» errors [string] false none Bootstrap server errors, if applicable
»»» version string false none Version of the gateway
»»» productVersion string false none EEM product version.
»»» features [string] false none Feature set in use by gateway
»»» deploymentMode string false none Type of gateway deployment
»»» capabilities object false none Freeform Description of what capabilities the gateway has

Enumerated Values

Property Value
type kafka
encoding unknown
encoding text/plain
encoding application/octet-stream
encoding application/json
encoding avro/binary
encoding avro/json
type avro
type json
type unknown
type approval
status pending
status approved
status rejected
status fulfilled
type redaction
type replaceString
type replaceIntegral
type replaceDouble
type hash
algorithm SHA-256
algorithm SHA-512
type schema-filtering
type quota
authType SASL
authType NONE
authType MTLS

Response Headers

Status Header Type Format Description
200 ei-pagination-total integer Total number of items available for retrieval (including current page).
200 etag string An identifier which can be supplied with the If-None-Match header to indicate that unchanged results should return 304 with no data.

readEventEndpoint

Code samples

# You can also use wget
curl -X GET /{organization}/eventendpoints/{eventSourceId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'

GET /{organization}/eventendpoints/{eventSourceId}

Read an event endpoint

Parameters

Name In Type Required Description
organization path string true The ID of the Organization.
eventSourceId path string true The ID of the Event Source to read an Event Endpoint from.

Example responses

200 Response

{
"type": "object",
"required": [
"id",
"owner",
"organization",
"clusterId",
"type",
"encoding",
"name",
"contact",
"capabilities",
"options"
],
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique ID of related EventSource.",
"type": "string"
},
"owner": {
"description": "Owner of related EventSource.",
"type": "string"
},
"organization": {
"description": "Organization the related EventSource belongs to.",
"type": "string"
},
"clusterId": {
"description": "ID for the cluster that contains the connection details for this Event Source.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"type": {
"description": "Type of Event Source",
"type": "string",
"enum": [
"kafka"
]
},
"encoding": {
"description": "The encoding of the data on this Event Source",
"type": "string",
"enum": [
"unknown",
"text/plain",
"application/octet-stream",
"application/json",
"avro/binary",
"avro/json"
]
},
"name": {
"description": "Event Source name",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"contact": {
"description": "Who to contact for more information about this Event Source.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "A description for this Event Source",
"type": "string",
"maxLength": 1500
},
"topic": {
"type": "object",
"required": [
"name"
],
"additionalProperties": false,
"properties": {
"name": {
"description": "Actual topic name in the cluster.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"partitions": {
"description": "The number of partitions for this topic. ",
"type": "number"
},
"replicas": {
"description": "The number of replicas for this topic.",
"type": "number"
}
}
},
"schema": {
"type": "object",
"properties": {
"type": {
"description": "Type of Schema from the list of valid types",
"type": "string",
"enum": [
"avro",
"json",
"unknown"
]
},
"content": {
"description": "Contents of the Schema",
"type": "string",
"maxLength": 1048576
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string",
"maxLength": 1500
}
},
"additionalProperties": false
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
},
"capabilities": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"uniqueItems": true,
"items": {
"description": "Capabilities enum.",
"type": "string",
"enum": [
"consume",
"produce"
]
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"organization",
"eventSourceId",
"name",
"controls",
"alias",
"gatewayGroups",
"allowSubscriptions",
"hidden",
"gatewaysPublishedTo"
],
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"organization": {
"description": "Organization this Option belongs to.",
"type": "string"
},
"eventSourceId": {
"description": "Event source that this option belongs to",
"type": "string"
},
"alias": {
"description": "Unique, descriptive alias for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"description": "Descriptive name for this option",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"description": "Longer description used to describe what this option is used for",
"type": "string",
"maxLength": 1500
},
"gatewayGroups": {
"description": "List of gateway groups this option should be published to",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"hidden": {
"description": "Indicates if this option is visible in the catalog (draft)",
"type": "boolean"
},
"allowSubscriptions": {
"description": "Indicates if this option is allowing new subscriptions",
"type": "boolean"
},
"controls": {
"description": "Controls on this option",
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"id",
"requests",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
},
"requests": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"status",
"description",
"contact"
],
"properties": {
"id": {
"description": "Unique Option ID.",
"type": "string"
},
"owner": {
"description": "Option owner.",
"type": "string"
},
"lastUpdated": {
"description": "Unix Epoch timestamp of last update to approval request.",
"type": "integer"
},
"status": {
"description": "The status of this approval request.",
"type": "string",
"enum": [
"pending",
"approved",
"rejected",
"fulfilled"
]
},
"description": {
"description": "Description of why the request was created.",
"type": "string",
"minLength": 1,
"maxLength": 1500
},
"contact": {
"description": "Contact details of the person making the request.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"outcome": {
"description": "Description of the outcome of this request.",
"type": "string",
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"maxLength": 250
}
}
}
}
}
},
{
"allOf": [
{
"type": "object",
"required": [
"id",
"redactions",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"redaction"
]
},
"redactions": {
"type": "array",
"items": {
"anyOf": [
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceString"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "string",
"maxLength": 200
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"replaceWith",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"replaceIntegral",
"replaceDouble"
]
},
"replaceWith": {
"description": "The value to replace with",
"type": "number"
}
}
}
]
},
{
"allOf": [
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)",
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
},
{
"type": "object",
"required": [
"algorithm",
"type"
],
"properties": {
"type": {
"description": "Type of redaction.",
"enum": [
"hash"
]
},
"algorithm": {
"type": "string",
"description": "Algorithm to use for hashing the current value",
"enum": [
"SHA-256",
"SHA-512"
]
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
}
]
},
{
"type": "object",
"required": [
"id",
"schema",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"schema-filtering"
]
},
"schema": {
"type": "object",
"required": [
"filtered"
],
"properties": {
"filtered": {
"description": "If true, any schema associated with the Event Source will be used to filter records sent to applications",
"type": "boolean"
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"id"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"quota"
]
}
},
"anyOf": [
{
"type": "object",
"required": [
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
},
{
"type": "object",
"required": [
"messagesPerSecond",
"megabytesPerSecond"
],
"properties": {
"megabytesPerSecond": {
"description": "Upper limit to megabytes per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
},
"messagesPerSecond": {
"description": "Upper limit to messages per second produced/consumed",
"type": "number",
"minimum": 1,
"maximum": 2147483647
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
},
"gatewaysPublishedTo": {
"description": "List of gateways that this option has been published to.",
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"organization",
"gatewayId",
"group",
"organizations",
"servedOrganizations",
"endpoints",
"lastContact"
],
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique Event Gateway ID",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"owner": {
"description": "Owner of the Event Gateway.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"organization": {
"description": "Organization this Event Gateway belongs to.",
"type": "string"
},
"gatewayId": {
"description": "Unique Event Gateway ID within this group.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"group": {
"description": "Event Gateway group name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"organizations": {
"description": "Organizations this Event Gateway serves",
"type": "array",
"deprecated": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"servedOrganizations": {
"description": "Organizations this Event Gateway serves",
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"contact": {
"description": "The contact information for this Event Gateway",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lastContact": {
"description": "Epoch time in ms of the last contact from this gateway.",
"type": "integer",
"minimum": 0
},
"endpoints": {
"description": "Endpoints that the gateway is listening on.",
"type": "array",
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Kafka server host name.",
"type": "string"
},
"port": {
"description": "Kafka server port.",
"type": "integer"
},
"ssl": {
"description": "Connect over SSL.",
"type": "boolean",
"default": false
},
"certificates": {
"description": "Certificates or CAs to trust when connecting to the server via SSL.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "object",
"description": "X509 certificate presented by an endpoint",
"required": [
"pem"
],
"properties": {
"pem": {
"description": "Certificate in PEM format",
"type": "string"
},
"subject": {
"description": "Subject name of the certificate",
"type": "string"
},
"sans": {
"description": "A list of subject alternative names of the certificate",
"type": "array",
"items": {
"type": "string"
}
},
"issuer": {
"description": "Issuer of the certificate",
"type": "string"
},
"expiry": {
"description": "Expiration date of the certificate in epoch millis",
"type": "integer"
}
}
}
},
"security": {
"description": "Captures the accepted security protocol",
"type": "object",
"required": [
"authType"
],
"properties": {
"authType": {
"description": "The name of security protocol used",
"type": "string",
"enum": [
"SASL",
"NONE",
"MTLS"
]
},
"mechanism": {
"description": "Security mechanisms supported",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"PLAIN",
"SCRAM-SHA-512",
"SCRAM-SHA-256"
]
}
}
}
},
"errors": {
"description": "Bootstrap server errors, if applicable",
"type": "array",
"items": {
"type": "string",
"enum": [
"UNKNOWN_HOST_EXCEPTION",
"CONNECT_EXCEPTION",
"SSL_HANDSHAKE_EXCEPTION",
"CERTIFICATE_PARSING_EXCEPTION",
"API_NOT_SUPPORTED",
"INTERNAL_FAILURE",
"NONE"
]
}
}
}
}
},
"version": {
"type": "string",
"description": "Version of the gateway",
"minLength": 1,
"maxLength": 20
},
"productVersion": {
"type": "string",
"description": "EEM product version.",
"minLength": 1,
"maxLength": 100
},
"features": {
"type": "array",
"description": "Feature set in use by gateway",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 20
}
},
"deploymentMode": {
"type": "string",
"description": "Type of gateway deployment"
},
"capabilities": {
"type": "object",
"additionalProperties": true,
"description": "Freeform Description of what capabilities the gateway has"
}
}
}
}
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK Event Endpoint successfully retrieved. Inline
401 Unauthorized Not authorised, successful login required None
403 Forbidden Access denied for this user and/or role None
404 Not Found This Event Endpoint does not exist None
500 Internal Server Error Internal error None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Unique ID of related EventSource.
» owner string true none Owner of related EventSource.
» organization string true none Organization the related EventSource belongs to.
» clusterId string true none ID for the cluster that contains the connection details for this Event Source.
» type string true none Type of Event Source
» encoding string true none The encoding of the data on this Event Source
» name string true none Event Source name
» contact string true none Who to contact for more information about this Event Source.
» description string false none A description for this Event Source
» topic object false none none
»» name string true none Actual topic name in the cluster.
»» partitions number false none The number of partitions for this topic.
»» replicas number false none The number of replicas for this topic.
» schema object false none none
»» type string false none Type of Schema from the list of valid types
»» content string false none Contents of the Schema
»» description string false none Description of the data available on the Event Source
» tags [string] false none List of tags associated with this Event Source
» sampleMessages [string] false none none
» capabilities [string] true none none
» options [object] true none none
»» id string true none Unique Option ID.
»» owner string true none Option owner.
»» organization string true none Organization this Option belongs to.
»» eventSourceId string true none Event source that this option belongs to
»» alias string true none Unique, descriptive alias for this option
»» name string true none Descriptive name for this option
»» description string false none Longer description used to describe what this option is used for
»» gatewayGroups [string] true none List of gateway groups this option should be published to
»» hidden boolean true none Indicates if this option is visible in the catalog (draft)
»» allowSubscriptions boolean true none Indicates if this option is allowing new subscriptions
»» controls [anyOf] true none Controls on this option

anyOf

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» id string true none Unique Control ID.
»»»» type string true none none
»»»» requests [object] true none none
»»»»» id string true none Unique Option ID.
»»»»» owner string true none Option owner.
»»»»» lastUpdated integer false none Unix Epoch timestamp of last update to approval request.
»»»»» status string true none The status of this approval request.
»»»»» description string true none Description of why the request was created.
»»»»» contact string true none Contact details of the person making the request.
»»»»» outcome string false none Description of the outcome of this request.
»»»»» subscriptionId string false none The id of the subscription associated with this request.

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» id string true none Unique Control ID.
»»»» type string true none none
»»»» redactions [anyOf] true none none

anyOf

Name Type Required Restrictions Description
»»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» type string true none Type of redaction.
»»»»»»» replaceWith string true none The value to replace with

or

Name Type Required Restrictions Description
»»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» type any true none Type of redaction.
»»»»»»» replaceWith number true none The value to replace with

or

Name Type Required Restrictions Description
»»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» path string true none The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions)

and

Name Type Required Restrictions Description
»»»»»» anonymous object false none none
»»»»»»» type string true none Type of redaction.
»»»»»»» algorithm string true none Algorithm to use for hashing the current value

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» id string true none Unique Control ID.
»»»» type string true none none
»»»» schema object true none none
»»»»» filtered boolean true none If true, any schema associated with the Event Source will be used to filter records sent to applications

or

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» id string true none Unique Control ID.
»»»» type string true none none

anyOf

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» megabytesPerSecond number true none Upper limit to megabytes per second produced/consumed
»»»»» messagesPerSecond number false none Upper limit to messages per second produced/consumed

or

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» megabytesPerSecond number false none Upper limit to megabytes per second produced/consumed
»»»»» messagesPerSecond number true none Upper limit to messages per second produced/consumed

or

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» megabytesPerSecond number true none Upper limit to megabytes per second produced/consumed
»»»»» messagesPerSecond number true none Upper limit to messages per second produced/consumed

continued

Name Type Required Restrictions Description
»» gatewaysPublishedTo [object] true none List of gateways that this option has been published to.
»»» id string true none Unique Event Gateway ID
»»» owner string true none Owner of the Event Gateway.
»»» organization string true none Organization this Event Gateway belongs to.
»»» gatewayId string true none Unique Event Gateway ID within this group.
»»» group string true none Event Gateway group name.
»»» organizations [string] true none Organizations this Event Gateway serves
»»» servedOrganizations [string] true none Organizations this Event Gateway serves
»»» contact string false none The contact information for this Event Gateway
»»» lastContact integer true none Epoch time in ms of the last contact from this gateway.
»»» endpoints [object] true none Endpoints that the gateway is listening on.
»»»» host string true none Kafka server host name.
»»»» port integer true none Kafka server port.
»»»» ssl boolean false none Connect over SSL.
»»»» certificates [object] false none Certificates or CAs to trust when connecting to the server via SSL.
»»»»» pem string true none Certificate in PEM format
»»»»» subject string false none Subject name of the certificate
»»»»» sans [string] false none A list of subject alternative names of the certificate
»»»»» issuer string false none Issuer of the certificate
»»»»» expiry integer false none Expiration date of the certificate in epoch millis
»»»» security object false none Captures the accepted security protocol
»»»»» authType string true none The name of security protocol used
»»»»» mechanism [string] false none Security mechanisms supported
»»»» errors [string] false none Bootstrap server errors, if applicable
»»» version string false none Version of the gateway
»»» productVersion string false none EEM product version.
»»» features [string] false none Feature set in use by gateway
»»» deploymentMode string false none Type of gateway deployment
»»» capabilities object false none Freeform Description of what capabilities the gateway has

Enumerated Values

Property Value
type kafka
encoding unknown
encoding text/plain
encoding application/octet-stream
encoding application/json
encoding avro/binary
encoding avro/json
type avro
type json
type unknown
type approval
status pending
status approved
status rejected
status fulfilled
type redaction
type replaceString
type replaceIntegral
type replaceDouble
type hash
algorithm SHA-256
algorithm SHA-512
type schema-filtering
type quota
authType SASL
authType NONE
authType MTLS