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"
]
}
}
}
}
}
}
},
"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
» 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
»» 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"
]
}
}
}
}
}
}
},
"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
» 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"
]
}
}
}
}
}
}
},
"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
» 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
»» 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"
]
}
}
}
}
}
}
},
"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
» 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 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",
"endpoints",
"lastContact"
],
"properties": {
"id": {
"description": "Unique gateway ID within this group.",
"type": "string"
},
"group": {
"description": "Gateway group name.",
"type": "string"
},
"endpoints": {
"description": "Endpoints that the gateway is listening on.",
"type": "array",
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Gateway hostname that client applications connect to",
"type": "string"
},
"port": {
"description": "Port that the gateway is listening on.",
"type": "integer",
"minimum": 0,
"maximum": 65535
},
"certificates": {
"description": "Certificates or CAs presented by the gateway to client applications.",
"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"
}
}
}
}
}
}
},
"lastContact": {
"description": "Epoch time in ms of the last contact from this gateway.",
"type": "integer",
"minimum": 0
}
}
}
}
}
}
}

Responses

Status Meaning Description Schema
200 OK 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 gateway ID within this group.
»» group string false none Gateway group name.
»» endpoints [object] true none Endpoints that the gateway is listening on.
»»» host string true none Gateway hostname that client applications connect to
»»» port integer true none Port that the gateway is listening on.
»»» certificates [object] false none Certificates or CAs presented by the gateway to client applications.
»»»» 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
»» lastContact integer true none Epoch time in ms of the last contact from this gateway.

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.

Example responses

200 Response

{
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"organization",
"clusterId",
"type",
"encoding",
"name",
"contact"
],
"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"
},
"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": {
"content": {
"type": "string"
},
"type": {
"type": "string"
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string"
}
},
"required": [
"content"
]
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}

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
»» content string true none none
»» type string false none none
»» 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

Enumerated Values

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

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",
"minLength": 1,
"maxLength": 200
},
"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": {
"content": {
"type": "string"
},
"type": {
"type": "string"
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"content"
]
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}

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
»» content body string true none
»» type body string false none
»» description body string false Description of the data available on the Event Source
» tags body [string] false List of tags associated with this Event Source
» sampleMessages 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

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"
],
"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"
},
"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": {
"content": {
"type": "string"
},
"type": {
"type": "string"
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string"
}
},
"required": [
"content"
]
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}

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
»» content string true none none
»» type string false none none
»» 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

Enumerated Values

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

updateEventSource

Code samples

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

PUT /{organization}/eventsources/{eventSourceId}

Update 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 update.

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"
},
"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": {
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
}
},
"discriminator": {
"propertyName": "type"
}
},
{
"type": "object",
"required": [
"requests"
],
"properties": {
"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"
},
"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": 250
},
"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",
"minLength": 1,
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"minLength": 1,
"maxLength": 250
}
}
}
}
}
}
]
}
],
"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 [oneOf] true none Controls on this option

allOf - discriminator: type

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

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» requests [object] true none none
»»»» id string true none Unique Option ID.
»»»» owner string true none Option owner.
»»»» 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.

Enumerated Values

Property Value
type approval
status pending
status approved
status rejected
status fulfilled

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"
},
"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": {
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
}
},
"discriminator": {
"propertyName": "type"
}
},
{
"type": "object",
"required": [
"requests"
],
"properties": {
"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"
},
"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": 250
},
"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",
"minLength": 1,
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"minLength": 1,
"maxLength": 250
}
}
}
}
}
}
]
}
],
"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 [oneOf] true Controls on this option
»» anonymous body object false none
»»» id body string true Unique Control ID.
»»» type body string true none
»» anonymous body object false none
»»» requests body [object] true none
»»»» id body string true Unique Option ID.
»»»» owner body string true Option owner.
»»»» 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.

Enumerated Values

Parameter Value
»»» type approval
»»»» status pending
»»»» status approved
»»»» status rejected
»»»» status fulfilled

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"
},
"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": {
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
}
},
"discriminator": {
"propertyName": "type"
}
},
{
"type": "object",
"required": [
"requests"
],
"properties": {
"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"
},
"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": 250
},
"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",
"minLength": 1,
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"minLength": 1,
"maxLength": 250
}
}
}
}
}
}
]
}
],
"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 [oneOf] true none Controls on this option

allOf - discriminator: type

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

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» requests [object] true none none
»»»» id string true none Unique Option ID.
»»»» owner string true none Option owner.
»»»» 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.

Enumerated Values

Property Value
type approval
status pending
status approved
status rejected
status fulfilled

updateOption

Code samples

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

PUT /{organization}/options/{optionId}

Update 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 update.

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.

Example responses

200 Response

{
"type": "array",
"items": {
"type": "object",
"required": [
"clusterId",
"type",
"encoding",
"name",
"contact",
"options"
],
"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",
"minLength": 1,
"maxLength": 200
},
"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": {
"content": {
"type": "string"
},
"type": {
"type": "string"
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"content"
]
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
},
"options": {
"type": "array",
"items": {
"allOf": [
{
"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"
},
"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": {
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
}
},
"discriminator": {
"propertyName": "type"
}
},
{
"type": "object",
"required": [
"requests"
],
"properties": {
"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"
},
"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": 250
},
"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",
"minLength": 1,
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"minLength": 1,
"maxLength": 250
}
}
}
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
},
{
"type": "object",
"properties": {
"gatewaysPublishedTo": {
"description": "List of gateways that this option has been published to.",
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"endpoints",
"lastContact"
],
"properties": {
"id": {
"description": "Unique gateway ID within this group.",
"type": "string"
},
"group": {
"description": "Gateway group name.",
"type": "string"
},
"endpoints": {
"description": "Endpoints that the gateway is listening on.",
"type": "array",
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Gateway hostname that client applications connect to",
"type": "string"
},
"port": {
"description": "Port that the gateway is listening on.",
"type": "integer",
"minimum": 0,
"maximum": 65535
},
"certificates": {
"description": "Certificates or CAs presented by the gateway to client applications.",
"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"
}
}
}
}
}
}
},
"lastContact": {
"description": "Epoch time in ms of the last contact from this gateway.",
"type": "integer",
"minimum": 0
}
}
}
}
}
}
]
}
}
}
}
}

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
» 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
»» content string true none none
»» type string false none none
»» 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
» options [allOf] true none none

allOf

Name Type Required Restrictions Description
»» anonymous object false none none
»»» 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 [oneOf] true none Controls on this option

allOf - discriminator: type

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

and

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» requests [object] true none none
»»»»»» id string true none Unique Option ID.
»»»»»» owner string true none Option owner.
»»»»»» 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.

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» gatewaysPublishedTo [object] false none List of gateways that this option has been published to.
»»»» id string true none Unique gateway ID within this group.
»»»» group string false none Gateway group name.
»»»» endpoints [object] true none Endpoints that the gateway is listening on.
»»»»» host string true none Gateway hostname that client applications connect to
»»»»» port integer true none Port that the gateway is listening on.
»»»»» certificates [object] false none Certificates or CAs presented by the gateway to client applications.
»»»»»» 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
»»»» lastContact integer true none Epoch time in ms of the last contact from this gateway.

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 approval
status pending
status approved
status rejected
status fulfilled

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": [
"clusterId",
"type",
"encoding",
"name",
"contact",
"options"
],
"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",
"minLength": 1,
"maxLength": 200
},
"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": {
"content": {
"type": "string"
},
"type": {
"type": "string"
},
"description": {
"description": "Description of the data available on the Event Source",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"content"
]
},
"tags": {
"description": "List of tags associated with this Event Source",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"sampleMessages": {
"type": "array",
"items": {
"type": "string"
}
},
"options": {
"type": "array",
"items": {
"allOf": [
{
"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"
},
"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": {
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"description": "Unique Control ID.",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"approval"
]
}
},
"discriminator": {
"propertyName": "type"
}
},
{
"type": "object",
"required": [
"requests"
],
"properties": {
"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"
},
"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": 250
},
"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",
"minLength": 1,
"maxLength": 250
},
"subscriptionId": {
"description": "The id of the subscription associated with this request.",
"type": "string",
"minLength": 1,
"maxLength": 250
}
}
}
}
}
}
]
}
],
"discriminator": {
"propertyName": "type"
}
}
}
}
},
{
"type": "object",
"properties": {
"gatewaysPublishedTo": {
"description": "List of gateways that this option has been published to.",
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"endpoints",
"lastContact"
],
"properties": {
"id": {
"description": "Unique gateway ID within this group.",
"type": "string"
},
"group": {
"description": "Gateway group name.",
"type": "string"
},
"endpoints": {
"description": "Endpoints that the gateway is listening on.",
"type": "array",
"items": {
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Gateway hostname that client applications connect to",
"type": "string"
},
"port": {
"description": "Port that the gateway is listening on.",
"type": "integer",
"minimum": 0,
"maximum": 65535
},
"certificates": {
"description": "Certificates or CAs presented by the gateway to client applications.",
"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"
}
}
}
}
}
}
},
"lastContact": {
"description": "Epoch time in ms of the last contact from this gateway.",
"type": "integer",
"minimum": 0
}
}
}
}
}
}
]
}
}
}
}

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
» 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
»» content string true none none
»» type string false none none
»» 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
» options [allOf] true none none

allOf

Name Type Required Restrictions Description
»» anonymous object false none none
»»» 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 [oneOf] true none Controls on this option

allOf - discriminator: type

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

and

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» requests [object] true none none
»»»»»» id string true none Unique Option ID.
»»»»»» owner string true none Option owner.
»»»»»» 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.

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» gatewaysPublishedTo [object] false none List of gateways that this option has been published to.
»»»» id string true none Unique gateway ID within this group.
»»»» group string false none Gateway group name.
»»»» endpoints [object] true none Endpoints that the gateway is listening on.
»»»»» host string true none Gateway hostname that client applications connect to
»»»»» port integer true none Port that the gateway is listening on.
»»»»» certificates [object] false none Certificates or CAs presented by the gateway to client applications.
»»»»»» 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
»»»» lastContact integer true none Epoch time in ms of the last contact from this gateway.

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 approval
status pending
status approved
status rejected
status fulfilled