Management API Guide
Overview
HTTP verbs
Management API tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP verbs.
Verb | Usage |
---|---|
|
Used to retrieve a resource |
|
Used to create a new resource |
|
Used to update an existing resource, including partial updates |
|
Used to delete an existing resource |
HTTP status codes
Management API tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP status codes.
Status code | Usage |
---|---|
|
The request completed successfully |
|
A new resource has been created successfully. The resource’s URI is available from the response’s
|
|
An update to an existing resource has been applied successfully |
|
The request was malformed. The response body will include an error providing further information |
|
The requested resource did not exist |
Errors
Whenever an error response (status code >= 400) is returned, the body will contain a JSON object that describes the problem. The error object has the following structure:
Unresolved directive in index.adoc - include::../../target/generated-snippets/error/response-fields.adoc[]
For example, a request that attempts to apply a non-existent Cluster to an Instance will produce a
400 Bad Request
response:
Unresolved directive in index.adoc - include::../../target/generated-snippets/error/http-response.adoc[]
Application Information
Management API is a Spring Boot application. In order to access general information regarding name, version, etc. please use the bellow request to do so:
GET /info HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
The response will have the following format:
HTTP/1.1 200 OK
Content-Length: 74
Content-Type: application/json;charset=UTF-8
{
"name" : "axual-flux",
"description" : null,
"version" : "6.2.2"
}
Hypermedia
Management API uses hypermedia and resources include links to other resources in their
responses. Responses are in Hypertext Application
from resource to resource.
Language (HAL) format. Links can be found beneath the _links
key. Users of the API should
not create URIs themselves, instead they should use the above-described links to navigate
Conditional requests
To be added…
Paging
All collection resources return results with pagination. Pagination is also supported for search endpoints.
To access the first page of the results, call the endpoint with ?page=0
or nothing at all.
This will return by default a maximum of 20 results per page. To change this value, specify
size=10
to return 10 results per page.
The response includes various helper links to easily navigate between pages via prev
and
next
link and jump to first
and last
page.
A JSON object page
at the end of the response summarizes the current page, total number of
elements and other relevant details.
See below example for more details.
Request parameters
Parameter | Description |
---|---|
|
The page to retrieve |
|
Number of entries per page, default value is 20 |
HTTP request
GET /tenants?page=0&size=5 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1657
{
"_embedded" : {
"tenants" : [ {
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"min.insync.replicas" : "1",
"segment.ms" : "86400000"
},
"name" : "Rabobank",
"shortName" : "rabo",
"logo" : "rabo.png",
"issuerUrl" : "http://api.example.com/auth/realms/rabobank",
"dataClassificationEnabled" : false,
"featureConfig" : null,
"retentionTime" : 604800000,
"partitions" : 12,
"uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 5,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Links
Relation | Description |
---|---|
|
The first page of results |
|
The last page of results |
|
The next page of results |
|
The previous page of results |
Response fields
Path | Type | Description |
---|---|---|
|
|
List of results |
|
|
Links to other resources and pages |
|
|
Summary of current page results |
|
|
Number of results in current page |
|
|
Total number of results available |
|
|
Total pages available |
|
|
Current page number (starting with zero) |
Sorting
The keyword sort
can be used on collection resources and search endpoints to
sort on given field name. Using the keyword asc
or desc
, the direction of
sorting can be changed.
Multiple fields can be used for sorting by using the request parameter
?sort=PROPERTY1&sort=PROPERTY2
and so on.
Request parameters
Parameter | Description |
---|---|
|
The field to sort on. Multiple fields can be specified by adding |
HTTP request
GET /tenants?sort=shortName&size=5 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1631
{
"_embedded" : {
"tenants" : [ {
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"min.insync.replicas" : "1",
"segment.ms" : "86400000"
},
"name" : "Rabobank",
"shortName" : "rabo",
"logo" : "rabo.png",
"issuerUrl" : "http://api.example.com/auth/realms/rabobank",
"dataClassificationEnabled" : false,
"featureConfig" : null,
"retentionTime" : 604800000,
"partitions" : 12,
"uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 5,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Security
Authentication
Axual is using Bearer Authentication. Every request must be authenticated.
Get the Bearer token:
curl --request POST \
--url https://<your-installation-host>/auth/realms/<your-realm>/protocol/openid-connect/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data client_id=self-service \
--data username=<username> \
--data password=<password> \
--data realm=<your-realm> \
--data grant_type=password
After any Bearer token request, the response will contain a access_token
which can be used as Bearer token in subsequent calls.
In the previous example request the API expects a POST body with username
, password
and realm
fields.
Pass the Bearer token in the Authorization header:
curl -H 'Accept: application/json' -H "Authorization: {Bearer token}" https://{hostname}/api/myresource
Example GET
request:
Curl request
$ curl 'http://api.example.com/applications' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
Example POST
request:
Curl request
$ curl 'http://api.example.com/applications' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"applicationId" : "com.axual.turbulence.connector.application1",
"name" : "Test Connector Application",
"shortName" : "test_cnnt_app",
"description" : "This is a connector test application",
"applicationType" : "CONNECTOR",
"type" : "sink",
"applicationClass" : "io.axual.distributor.logger.MessageLogger",
"applicationClassVersion" : "1.0.0",
"visibility" : "PRIVATE",
"owners" : "http://api.example.com/groups/514d4oit834841869644c2ad8b439997"
}'
Logout
To invalidate the token, send a GET
request to /logout
and include the token that needs to be
invalidated in the X-Auth-Token
header.
curl -X GET \
http://api.axual.io/logout \
-H 'X-Auth-Token: 16d961e3-93bc-4486-8d05-a0281f3a4938'
In response, the header X-Auth-Token
will be returned with no value. This confirms the token was invalidated.
Get the authenticated user
GET /user
Returns all available information about the currently authenticated user.
GET /user HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 752
{
"firstName" : "powerUser",
"lastName" : "powerUser",
"middleName" : null,
"emailAddress" : {
"email" : "poweruser@rabobank.nl"
},
"phoneNumber" : null,
"roles" : [ {
"name" : "STREAM_ADMIN"
}, {
"name" : "TENANT_ADMIN"
}, {
"name" : "APPLICATION_ADMIN"
}, {
"name" : "ENVIRONMENT_ADMIN"
} ],
"uid" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
}
}
}
Get my groups
Returns all groups that currently authenticated user belongs to.
GET /group HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 812
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"groups" : [ {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Get the authenticated tenant
GET /tenant
Returns the tenant of the logged-in user.
GET /tenants HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP/1.1 200 OK
Content-Length: 1538
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"tenants" : [ {
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"min.insync.replicas" : "1",
"segment.ms" : "86400000"
},
"name" : "Rabobank",
"shortName" : "rabo",
"logo" : "rabo.png",
"issuerUrl" : "http://api.example.com/auth/realms/rabobank",
"dataClassificationEnabled" : false,
"featureConfig" : null,
"retentionTime" : 604800000,
"partitions" : 12,
"uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Elevate to a tenant
PUT /tenant
This feature is no longer supported!
De-elevate from a tenant
DELETE /tenant
This feature is no longer supported!
Resources
Index
The index provides the entry point into the service.
Accessing the index
A GET
request is used to access the index
Response fields
Path | Type | Description |
---|---|---|
|
|
Links to other resources |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2451
{
"_links" : {
"integrities" : {
"href" : "...",
"templated" : true
},
"application_access" : {
"href" : "...",
"templated" : true,
"title" : "Access or create ApplicationAccess"
},
"connect_plugins" : {
"href" : "...",
"templated" : true
},
"confidentialities" : {
"href" : "...",
"templated" : true
},
"schemas" : {
"href" : "...",
"templated" : true,
"title" : "Access or create schemas"
},
"application_deployments" : {
"href" : "...",
"templated" : true
},
"streams" : {
"href" : "...",
"templated" : true,
"title" : "Access or create streams"
},
"groups" : {
"href" : "...",
"templated" : true,
"title" : "Access or create groups"
},
"support_tiers" : {
"href" : "...",
"templated" : true
},
"environments" : {
"href" : "...",
"templated" : true,
"title" : "Access or create environments"
},
"clusters" : {
"href" : "...",
"templated" : true,
"title" : "Access or create clusters"
},
"application_access_grants" : {
"href" : "...",
"templated" : true
},
"applications" : {
"href" : "...",
"templated" : true,
"title" : "Access or create applications"
},
"instances" : {
"href" : "...",
"templated" : true,
"title" : "Access or create instances"
},
"users" : {
"href" : "...",
"templated" : true,
"title" : "Access or create users"
},
"schema_versions" : {
"href" : "...",
"templated" : true,
"title" : "Access or create schema versions"
},
"tenants" : {
"href" : "...",
"templated" : true,
"title" : "Access or create tenants"
},
"application_principals" : {
"href" : "...",
"templated" : true,
"title" : "Access or create ApplicationPrincipals"
},
"stream_configs" : {
"href" : "...",
"templated" : true,
"title" : "Access or create streams"
},
"group" : {
"href" : "...",
"title" : "A group"
},
"user" : {
"href" : "...",
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
}
}
}
Links
Relation | Description |
---|---|
|
The Users resource |
|
The Groups resource |
|
|
|
|
|
|
|
The Tenants resource |
|
The Streams resource |
|
|
|
The Schemas resource |
|
|
|
|
|
|
|
|
|
|
|
Returns the authenticated user |
|
Returns the groups that authenticated user belongs to |
|
Returns the authenticated tenant |
|
The ALPS profile for the service |
|
Returns the confidentiality levels |
|
Returns the integrity |
|
Returns the support tiers |
|
|
|
Users
A User
is a person logging into Flux. Every user is identified by a unique email address
that also identifies the Tenant
they belong to. A user can never see users of other tenant.
The /users
resource is used to create and list users.
Users Schema
The /users
resource uses the following json-schema:
GET /profile/users HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 1908
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "User",
"properties" : {
"firstName" : {
"title" : "First name",
"readOnly" : false,
"type" : "string"
},
"lastName" : {
"title" : "Last name",
"readOnly" : false,
"type" : "string"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"emailAddress" : {
"title" : "Email address",
"readOnly" : false,
"type" : "object",
"$ref" : "#/definitions/emailAddress"
},
"phoneNumber" : {
"title" : "Phone number",
"readOnly" : false,
"type" : "string"
},
"roles" : {
"title" : "Roles",
"readOnly" : true,
"type" : "array",
"uniqueItems" : true,
"items" : {
"$ref" : "#/definitions/role"
}
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"middleName" : {
"title" : "Middle name",
"readOnly" : false,
"type" : "string"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
}
},
"definitions" : {
"emailAddress" : {
"type" : "object",
"properties" : {
"email" : {
"title" : "Email",
"readOnly" : true,
"type" : "string"
}
}
},
"role" : {
"type" : "object",
"properties" : {
"name" : {
"title" : "Name",
"readOnly" : false,
"type" : "string"
}
}
}
},
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all users
A GET
request will list all users belonging to the same tenant as the logged in user.
Curl request
$ curl 'http://api.example.com/users' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /users HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 11904
{
"_embedded" : {
"users" : [ {
"firstName" : "supAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "supadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "eb1f7f147df84179a151bdc21f5bb924",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "billingInternal",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "billingInternal@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "fc287f147df84179a151bdc21f5cc835",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "tenAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "tenadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "ea0e7f147df84179a151bdc21f5bb813",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "billingViewer",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "billingViewer@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "ea0e7f147d224133a151bdc69f5bb613",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "envAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "7cb463240b8049578b298c214c28512a",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "envAuthor",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envauthor@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "strAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "stradmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "a0018341100c431d8a8117be2ad12d8a",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "strAuthor",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "strauthor@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "3cab41ad252e48a49631d1346d227a17",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "appAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "caa51002633244ffbe36f4ccf8a8f501",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "appAuthor",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appauthor@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "e235c8fe4264431bbdb3b40a2e5f8f62",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "powerUser",
"lastName" : "powerUser",
"emailAddress" : {
"email" : "poweruser@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "po1",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "po1@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "51234a7a81994d1ca35ca7894cde08c9",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "po2",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "po2@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "1ecbda9a995f4ab2a4c95716087b21c7",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "firstNameTest",
"lastName" : "lastNameTest",
"emailAddress" : {
"email" : "testuser@rabobank.nl"
},
"middleName" : "van der",
"phoneNumber" : null,
"uid" : "1759cc36cacd4df38ed1b0336e22e06d",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "regular",
"lastName" : "user",
"emailAddress" : {
"email" : "regularuser@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "dc67596abe224691a363a230ca1e291e",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "kad",
"lastName" : "member",
"emailAddress" : {
"email" : "kadmember@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "007b994a6ab34165a93fd4c7a8db1388",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "appOwner",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "51234a7a81994d1ca35ca7894cde08c6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "streamOwner",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "streamowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "1ecbda9a995f4ab2a4c95716087b21c8",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "envOwner",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
},
"create" : {
"href" : "...",
"templated" : true,
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 19,
"totalPages" : 1,
"number" : 0
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can create a User |
Retrieve a user
The /users/{id}
item resource is used to retrieve, update individual users.
A GET
request will retrieve the details of a User
.
Curl request
$ curl 'http://api.example.com/users/dc67596abe224691a363a230ca1e291e' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /users/dc67596abe224691a363a230ca1e291e HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 991
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"firstName" : "regular",
"lastName" : "user",
"middleName" : null,
"emailAddress" : {
"email" : "regularuser@rabobank.nl"
},
"phoneNumber" : null,
"roles" : [ ],
"uid" : "dc67596abe224691a363a230ca1e291e",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"assign_roles" : {
"href" : "...",
"title" : "Indication that authenticated user can assign roles to this user"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can edit the User |
|
Existence of this link indicates that the currently authenticated user can assign roles to this user |
|
Existence of this link indicates that the currently authenticated user can delete this user |
Create User
The endpoint /users is now deprecated. Please contact the Administration team regarding the topic of creating new Users.
|
A POST
request is used to create a new User
. This operation can be done by a Tenant Admin only.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
firstName |
String |
The first name of the user |
Must not be empty. Size must be between 2 and 50 inclusive |
lastName |
String |
The last name of the user |
Must not be empty. Size must be between 2 and 50 inclusive |
middleName |
String |
The |
Size must be between 0 and 16 inclusive |
emailAddress |
String |
The complete mail address of the user |
|
password |
String |
The password of the user |
Size must be between 0 and 72 inclusive |
phoneNumber |
String |
The phoneNumber of the user |
This is an optional field. Must be a valid phone number like +31612345678 or 0612345678. |
Curl request
$ curl 'http://api.example.com/users' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"firstName" : "Jeroen",
"lastName" : "Disseldorp",
"middleName" : "van",
"emailAddress" : "jeroen.van.disseldorp@rabobank.nl",
"password" : "notsecret",
"phoneNumber" : "0612345678"
}'
HTTP request
POST /users HTTP/1.1
Content-Length: 197
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"firstName" : "Jeroen",
"lastName" : "Disseldorp",
"middleName" : "van",
"emailAddress" : "jeroen.van.disseldorp@rabobank.nl",
"password" : "notsecret",
"phoneNumber" : "0612345678"
}
HTTP response
HTTP/1.1 201 Created
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/users/4a658a6da037442da0ad2f27c7a3b88e
Content-Length: 1057
Last-Modified: Sun, 4 Jul 2021 10:54:29 GMT
{
"firstName" : "Jeroen",
"lastName" : "Disseldorp",
"middleName" : "van",
"emailAddress" : {
"email" : "jeroen.van.disseldorp@rabobank.nl"
},
"phoneNumber" : "0612345678",
"roles" : [ ],
"uid" : "4a658a6da037442da0ad2f27c7a3b88e",
"created_at" : "2021-07-04T10:54:29.500345",
"modified_at" : "2021-07-04T10:54:29.500345",
"created_by" : "tenadmin@rabobank.nl",
"modified_by" : "tenadmin@rabobank.nl",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"assign_roles" : {
"href" : "...",
"title" : "Indication that authenticated user can assign roles to this user"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}
Update user
A PATCH
request is used to update a User
.
Update phoneNumber
$ curl 'http://api.example.com/users/dc67596abe224691a363a230ca1e291e' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"phoneNumber" : "+31063433333"
}'
PATCH /users/dc67596abe224691a363a230ca1e291e HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Content-Length: 36
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"phoneNumber" : "+31063433333"
}
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Delete user
A DELETE
request is used to delete a User
.
$ curl 'http://api.example.com/users/007b994a6ab34165a93fd4c7a8db1388' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /users/007b994a6ab34165a93fd4c7a8db1388 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Users search endpoints
/users/search/findByFirstName
Returns all users with firstName containing the given firstName
.
Parameter | Description |
---|---|
|
A name or part of name |
GET /users/search/findByFirstName?firstName=powerser HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 360
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"users" : [ ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"create" : {
"href" : "...",
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
/users/search/findByLastName
Returns all users with lastName containing the given lastName
.
Parameter | Description |
---|---|
|
A surname or part of surname |
GET /users/search/findByLastName?lastName=ab HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 9256
{
"_embedded" : {
"users" : [ {
"firstName" : "supAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "supadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "eb1f7f147df84179a151bdc21f5bb924",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "billingInternal",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "billingInternal@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "fc287f147df84179a151bdc21f5cc835",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "tenAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "tenadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "ea0e7f147df84179a151bdc21f5bb813",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "billingViewer",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "billingViewer@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "ea0e7f147d224133a151bdc69f5bb613",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "envAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "7cb463240b8049578b298c214c28512a",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "envAuthor",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envauthor@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "strAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "stradmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "a0018341100c431d8a8117be2ad12d8a",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "strAuthor",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "strauthor@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "3cab41ad252e48a49631d1346d227a17",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "appAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "caa51002633244ffbe36f4ccf8a8f501",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "appAuthor",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appauthor@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "e235c8fe4264431bbdb3b40a2e5f8f62",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "po1",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "po1@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "51234a7a81994d1ca35ca7894cde08c9",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "po2",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "po2@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "1ecbda9a995f4ab2a4c95716087b21c7",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "appOwner",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "51234a7a81994d1ca35ca7894cde08c6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "streamOwner",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "streamowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "1ecbda9a995f4ab2a4c95716087b21c8",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "envOwner",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"create" : {
"href" : "...",
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 15,
"totalPages" : 1,
"number" : 0
}
}
/users/search/searchUser
Returns all users with firstName, middleName, lastName, localPart or domain containing the given query
.
Parameter | Description |
---|---|
query |
A firstName, middleName, lastName or localPart of email can be use as query. |
GET /users/search/searchUser?query=powerser
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 747
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"users" : [ {
"firstName" : "powerser",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "51234a7a81994d1ca35ca7894cde08c6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/users/search/findByRole
Returns all users with given roles. Pass the name of the role as parameter.
Parameter | Description |
---|---|
|
The name of role |
GET /users/search/findByRole?role=TENANT_ADMIN HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1546
{
"_embedded" : {
"users" : [ {
"firstName" : "tenAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "tenadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "ea0e7f147df84179a151bdc21f5bb813",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "powerUser",
"lastName" : "powerUser",
"emailAddress" : {
"email" : "poweruser@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"create" : {
"href" : "...",
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
/users/search/findByEmailAddress
Return user with emailAddress as the given emailAddress
Parameter | Description |
---|---|
|
A valid |
GET /users/search/findByEmailAddress?email=appowner%40rabobank.nl HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 747
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"users" : [ {
"firstName" : "appOwner",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "51234a7a81994d1ca35ca7894cde08c6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"user" : {
"href" : "...",
"templated" : true,
"title" : "A user"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Groups
A group
in Flux represents a DevOps team within a tenant. Although different tenants may have
different names for their teams, in Flux, they are represented by a group
.
Group permissions
Every group
can have zero or more users. Being a member of a group
grants you certain permissions.
The permission depends on the resource the group
owns. If a group
is owner of an application
, every
member of that group will have full rights on that application
. This includes editing and even
deleting the application
.
Any group
can be attached to an application
, stream
or environment
. These resources have
a owners
field which represent the group
that owns the resource. A resource can exist without
any group
owning it.
When listing a resource that has an existing 'owners' group
, it will be show as embedded object of the resource.
If the resource has no 'owners' group
, it will be not shown as embedded object of the resource.
Group schema
The groups
resource uses the following json-schema:
GET /profile/groups HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 1428
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Group",
"properties" : {
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"emailAddress" : {
"title" : "Email address",
"readOnly" : false,
"type" : "object",
"$ref" : "#/definitions/emailAddress"
},
"phoneNumber" : {
"title" : "Phone number",
"readOnly" : false,
"type" : "string"
},
"members" : {
"title" : "Members",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"name" : {
"title" : "Name",
"readOnly" : false,
"type" : "string"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
}
},
"definitions" : {
"emailAddress" : {
"type" : "object",
"properties" : {
"email" : {
"title" : "Email",
"readOnly" : true,
"type" : "string"
}
}
}
},
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all groups
A GET
request will list all the groups visible to the currently logged in user.
Curl request
$ curl 'http://api.example.com/groups' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /groups HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 5551
{
"_embedded" : {
"groups" : [ {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}, {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}, {
"name" : "Stream-raboApplication2",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "88eb98e0eff34fde923c15687e6d75d5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}, {
"name" : "Environment-raboenv1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "aac290536035440e9a85f193e4affeb3",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}, {
"name" : "Environment-raboprivenv2",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "d40d27a07da04096a592aeef9a029cda",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}, {
"name" : "Team Kad",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841869644c2ad8b439553",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}, {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}, {
"name" : "Team Gone",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439553",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}, {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
},
"create" : {
"href" : "...",
"templated" : true,
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 9,
"totalPages" : 1,
"number" : 0
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can create a Group |
Create group
A POST
request is used to create a new group. A group can only be created by a user having
GROUP_ADMIN
role.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
name |
String |
The name of the group. |
Must match the regular expression |
members |
Array |
Users belonging to this group. This field would be absent if group has no members. |
|
emailAddress |
String |
Email address of this group. Optional. |
|
phoneNumber |
String |
Phone number to contact this group. Optional. |
Must be a valid phone number like +31612345678 or 0612345678. |
Curl request
$ curl 'http://api.example.com/groups' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"name" : "Team Fortress",
"emailAddress" : "online.fortress@rabobank.nl",
"phoneNumber" : "+31612345678",
"members" : [ "http://api.example.com/users/9e66c8d7cd5c4e509ec0fe840ef37c62" ]
}'
HTTP request
POST /groups HTTP/1.1
Content-Length: 197
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"name" : "Team Fortress",
"emailAddress" : "online.fortress@rabobank.nl",
"phoneNumber" : "+31612345678",
"members" : [ "http://api.example.com/users/9e66c8d7cd5c4e509ec0fe840ef37c62" ]
}
HTTP response
HTTP/1.1 201 Created
Content-Length: 1451
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/groups/8fe99ca9f8e94e039826706a75e29621
Last-Modified: Sun, 4 Jul 2021 10:54:29 GMT
{
"name" : "Team Fortress",
"emailAddress" : {
"email" : "online.fortress@rabobank.nl"
},
"phoneNumber" : "+31612345678",
"uid" : "8fe99ca9f8e94e039826706a75e29621",
"created_at" : "2021-07-04T10:54:29.986263",
"modified_at" : "2021-07-04T10:54:29.986263",
"created_by" : "tenadmin@rabobank.nl",
"modified_by" : "tenadmin@rabobank.nl",
"_embedded" : {
"members" : [ {
"firstName" : "envAuthor",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envauthor@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}
Links
Relation | Description |
---|---|
|
The members of this Group can be found at this link. This link is also used add/remove users from this group. |
Retrieve a group
A GET
request on /groups/{id}
will fetch the details of the group.
HTTP request
GET /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2362
{
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"members" : [ {
"firstName" : "envAuthor",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envauthor@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "appOwner",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "51234a7a81994d1ca35ca7894cde08c6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "envAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "7cb463240b8049578b298c214c28512a",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
The name of the group. |
|
|
Users belonging to this group. This field would be absent if group has no members. |
Links
Relation | Description |
---|---|
|
The members of this Group can be found at this link. This link is also used add/remove users from this group. |
|
Existence of this link indicates that the currently authenticated user can edit the Group |
|
Existence of this link indicates that the currently authenticated user can delete the Group |
Update a Group
A PATCH
request is used to update a Group. Below is an example where name of the group is modified.
$ curl 'http://api.example.com/groups/c339c5cf9b5a4f6b8342c6ea2f9b6775' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"name" : "Team Medallion"
}'
PATCH /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775 HTTP/1.1
Content-Length: 31
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"name" : "Team Medallion"
}
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2241
{
"name" : "Team Medallion",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"members" : [ {
"firstName" : "envAuthor",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envauthor@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "appOwner",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "appowner@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "51234a7a81994d1ca35ca7894cde08c6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
}, {
"firstName" : "envAdmin",
"lastName" : "Rabobank",
"emailAddress" : {
"email" : "envadmin@rabobank.nl"
},
"middleName" : null,
"phoneNumber" : null,
"uid" : "7cb463240b8049578b298c214c28512a",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"group" : {
"href" : "...",
"templated" : true,
"title" : "A group"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}
Delete endpoints
Deleting group is a two-step process a GET request to check the constraints followed by the DELETE request
Delete group constraints
A GET
request is used to get the constraints for deleting Group
.
$ curl 'http://api.example.com/groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/deletion-constraints' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/deletion-constraints HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 102
{
"canDelete" : false,
"environmentsCount" : 0,
"applicationsCount" : 21,
"streamsCount" : 0
}
Delete group
A DELETE
request is used to delete a Group
.
$ curl 'http://api.example.com/groups/514d4oit834841869644c2ad8b439553' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /groups/514d4oit834841869644c2ad8b439553 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Add user to group
To add an existing user to a group, a POST
request to the members
link must be placed with
the URI
of the user in request body as shown below. The Content-Type
header should be set
to text/uri-list
. To add multiple users in 1 request, specify multiple URIs in separate lines.
$ curl 'http://api.example.com/groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/members' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: text/uri-list' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d 'http://localhost/users/dc67596abe224691a363a230ca1e291e'
POST /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/members HTTP/1.1
Content-Length: 55
realm: rabo
Content-Type: text/uri-list
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
http://localhost/users/dc67596abe224691a363a230ca1e291e
HTTP/1.1 204 No Content
Replace existing users in group
It is possible to replace all existing users of a group with new user by placing a PUT
request
to the members
link. The request body should have the URI(s) of the users that must be added.
Content-Type
header must be text/uri-list
. This operation will remove all existing users and
replace with the user provided in the body.
This operation can be used to remove a single user. First fetch the current members array, then
delete the user that should be removed from the array and finally send the PUT
request with
new array in request body.
$ curl 'http://api.example.com/groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/members' -i -X PUT \
-H 'realm: rabo' \
-H 'Content-Type: text/uri-list' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d 'http://localhost/users/dc67596abe224691a363a230ca1e291e'
PUT /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/members HTTP/1.1
Content-Length: 55
realm: rabo
Content-Type: text/uri-list
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
http://localhost/users/dc67596abe224691a363a230ca1e291e
HTTP/1.1 204 No Content
Remove user from group
To remove a single user from a group, send a DELETE
request to /groups/gid/members/uid
endpoint
where gid
is the UID of the group and uid
is the UID of the user to be removed.
$ curl 'http://api.example.com/groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/members/51234a7a81994d1ca35ca7894cde08c6' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/members/51234a7a81994d1ca35ca7894cde08c6 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Group search endpoints
/groups/search/findByName
Search for a group by exact name
.
Parameter | Description |
---|---|
|
Stream name to search for. |
$ curl 'http://api.example.com/groups/search/findByName?name=rabo-stream1' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 256
{
"_embedded" : {
"groups" : [ ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
/groups/search/findByNameContaining
Search for a group by name
containing search term.
Parameter | Description |
---|---|
|
Term to search within group name. |
$ curl 'http://api.example.com/groups/search/findByNameContaining?name=group' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 256
{
"_embedded" : {
"groups" : [ ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
/groups/search/findByMembersContains
Search for a group by user
having a valid URI of an existing User.
Parameter | Description |
---|---|
|
A valid URI of a user |
$ curl 'http://api.example.com/groups/search/findByMembersContains?user=http%3A%2F%2Flocalhost%2Fusers%2Fdc67596abe224691a363a230ca1e291e' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 256
{
"_embedded" : {
"groups" : [ ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
Instances
An Instance represents a single installation of Axual Event Bus (AEB). A AEB instance is usually marked for a particular functionality like Acceptance testing, Load/Stress testing etc.
The instances
collection resource is used to create and list Instances.
Instance Schema
The instances
resource uses the following json-schema:
GET /profile/instances HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/schema+json;charset=UTF-8
Content-Length: 2757
{
"title" : "Instance",
"properties" : {
"description" : {
"title" : "Description",
"readOnly" : false,
"type" : "string"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"connectUrls" : {
"title" : "Connect urls",
"readOnly" : false,
"type" : "string"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"apiUrl" : {
"title" : "Api url",
"readOnly" : false,
"type" : "string"
},
"instanceClusters" : {
"title" : "Instance clusters",
"readOnly" : false,
"type" : "array",
"uniqueItems" : true,
"items" : {
"$ref" : "#/definitions/instanceClusters"
}
},
"supportTier" : {
"title" : "Support tier",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"name" : {
"title" : "Name",
"readOnly" : false,
"type" : "string"
},
"connectEnabled" : {
"title" : "Connect enabled",
"readOnly" : false,
"type" : "boolean"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"shortName" : {
"title" : "Short name",
"readOnly" : false,
"type" : "string"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"properties" : {
"title" : "Properties",
"readOnly" : false,
"type" : "object"
},
"caCerts" : {
"title" : "Ca certs",
"readOnly" : false,
"type" : "array",
"items" : {
"$ref" : "#/definitions/cACert"
}
}
},
"definitions" : {
"cACert" : {
"type" : "object",
"properties" : {
"pem" : {
"title" : "Pem",
"readOnly" : false,
"type" : "string"
},
"expiresOn" : {
"title" : "Expires on",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
}
}
},
"instanceClusters" : {
"type" : "object",
"properties" : {
"cluster" : {
"title" : "Cluster",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"schemaRegistryUrls" : {
"title" : "Schema registry urls",
"readOnly" : false,
"type" : "string"
}
}
}
},
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all instances
A GET
request will list all of the Instances available.
Curl request
$ curl 'http://api.example.com/instances' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP request
GET /instances HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 4301
{
"_embedded" : {
"instances" : [ {
"name" : "Rabo OTA",
"instanceClusters" : [ {
"schemaRegistryUrls" : "https://schema.local3",
"cluster" : {
"name" : "Boxtel Cluster OTA",
"description" : "",
"location" : "Boxtel",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.boxtel.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.boxtel.local",
"bootstrapServers" : [ ],
"uid" : "543c3b7d55634eba83b1472775c131c4"
}
}, {
"schemaRegistryUrls" : "https://schema.local1,https://schema.local2",
"cluster" : {
"name" : "Best Cluster OTA",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.best.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.best.local",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver1:9093"
} ],
"uid" : "66c12e25ab06458eac988f0d700fbe81"
}
} ],
"description" : "Rabo OTA Instance",
"uid" : "b9301e9144324928911f7d83ec40c478",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
}, {
"name" : "Rabo Prod",
"instanceClusters" : [ {
"schemaRegistryUrls" : "https://schema.local4",
"cluster" : {
"name" : "Best Cluster PROD",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-prod.boxtel.local",
"clusterBrowseUrl" : "http://clusterbrowse-prod.boxtel.local",
"bootstrapServers" : [ ],
"uid" : "db0766d053ca46d59b0a1af2817c535a"
}
} ],
"description" : "Rabo Prod Instance",
"uid" : "f6969bd9f3f7435aa6bc6c62cb960393",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
}, {
"name" : "Rabo LST",
"instanceClusters" : [ ],
"description" : "Rabo LST Instance",
"uid" : "g7969bd9f3f7435aa6bc6c62cb960304",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
}, {
"name" : "Rabo OTA2",
"instanceClusters" : [ ],
"description" : "Second Rabo OTA Instance",
"uid" : "6e37bcf4d4a44334924aa0f961286668",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
},
"show" : {
"href" : "...",
"templated" : true,
"title" : "Indication that an entity can be shown in menu"
},
"create" : {
"href" : "...",
"templated" : true,
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 4,
"totalPages" : 1,
"number" : 0
}
}
Links
Relation | Description |
---|---|
|
Existence of |
|
Existence of |
Create instance
A POST
request is used to create an instance. The request should have at-least one
existing Cluster
URI.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
name |
String |
The name of the instance. |
Must match the regular expression |
description |
String |
A short text summarizing the purpose of the instance. |
Size must be between 0 and 200 inclusive |
apiUrl |
String |
URL of Instance API. This will be used to manage the Instance from Axual API. |
Must be a well-formed URL. Must not be empty. Size must be between 0 and 255 inclusive |
instanceClusters |
Array |
An array of cluster objects for the instance. Each cluster object contains cluster’s URI and the metadata for the instance associated to the cluster such as comma separated Schema registry urls. |
Must not be empty. Must not be null |
connectEnabled |
Boolean |
A toggle to enable/disable connect on this instance. When connect is enabled, a valid connectUrl need to provide in order to create a Connect. |
|
caCerts |
Array |
Collection of CA certificates that should be in the chain of client certificates used for produce/consume. |
Must not be empty |
supportTier |
String |
A valid URI of Support Tier for the instance |
|
shortName |
String |
A short name of the instance. |
Must match the regular expression |
properties |
Object |
A list of Instance specific variables in Key,Value format. |
Curl request
$ curl 'http://api.example.com/instances' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"name" : "AEB LST",
"description" : "AEB Load Stress Testing Instance",
"instanceClusters" : [ {
"cluster" : "http://api.example.com/clusters/f2e75fe2226745bea34ea9f56621f78f",
"schemaRegistryUrls" : "schema.registry.local:24001,schema.registry.local:24002"
} ],
"supportTier" : "http://api.example.com/supportTiers/14cadc6238fc4695916a8053302743f5",
"caCerts" : [ {
"pem" : "-----BEGIN CERTIFICATE-----\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\n-----END CERTIFICATE-----\n"
} ],
"apiUrl" : "http://boxtel-lst.instance.local",
"shortName" : "lst",
"connectEnabled" : false
}'
HTTP request
POST /instances HTTP/1.1
realm: rabo
Content-Length: 2387
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"name" : "AEB LST",
"description" : "AEB Load Stress Testing Instance",
"instanceClusters" : [ {
"cluster" : "http://api.example.com/clusters/f2e75fe2226745bea34ea9f56621f78f",
"schemaRegistryUrls" : "schema.registry.local:24001,schema.registry.local:24002"
} ],
"supportTier" : "http://api.example.com/supportTiers/14cadc6238fc4695916a8053302743f5",
"caCerts" : [ {
"pem" : "-----BEGIN CERTIFICATE-----\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\n-----END CERTIFICATE-----\n"
} ],
"apiUrl" : "http://boxtel-lst.instance.local",
"shortName" : "lst",
"connectEnabled" : false
}
HTTP response
HTTP/1.1 201 Created
Last-Modified: Sun, 4 Jul 2021 10:54:20 GMT
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/instances/d73742083ab9450bb9e8826565d781ad
Content-Length: 3598
{
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"num.partitions" : "12",
"min.insync.replicas" : "1",
"segment.ms" : "86400000",
"retention.ms" : "604800000"
},
"name" : "AEB LST",
"description" : "AEB Load Stress Testing Instance",
"apiUrl" : "http://boxtel-lst.instance.local",
"instanceClusters" : [ {
"schemaRegistryUrls" : "schema.registry.local:24001,schema.registry.local:24002",
"_links" : {
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
} ],
"caCerts" : [ {
"pem" : "-----BEGIN CERTIFICATE-----\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\n-----END CERTIFICATE-----\n",
"expiresOn" : "2038-05-24T10:34:14"
} ],
"shortName" : "lst",
"connectEnabled" : false,
"connectUrls" : null,
"uid" : "d73742083ab9450bb9e8826565d781ad",
"created_at" : "2021-07-04T10:54:20.050976",
"modified_at" : "2021-07-04T10:54:20.050976",
"created_by" : "tenadmin@rabobank.nl",
"modified_by" : "tenadmin@rabobank.nl",
"_embedded" : {
"supportTier" : {
"name" : "GOLD",
"description" : "This is gold",
"uid" : "14cadc6238fc4695916a8053302743f5",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"synchronize" : {
"href" : "..."
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
}
Instance properties
Every instance
object holds certain important properties that apply to every stream that ends up
on this instance. These are explained below:
replication.factor
Number of replicas maintained by Kafka for each stream. Default value is 1
.
num.partitions
Number of partitions created by Kafka for each stream. Default value is 12
.
cleanup.policy
Policy used to cleanup segments beyond the retention window. Possible values are delete
, compact
. Default value is delete
.
min.insync.replicas
The number of insync replicas that must be avaialable before a produce is considered successful. Default value is 1
.
segment.ms
Time duration after which Kafka will force the log to roll even if the segment file isn’t full. Default value is 86400s
Retrieve an instance
The instances/{id}
item resource is used to retrieve, update and delete individual Instances.
A GET
request will retrieve the details of an Instance.
Curl request
$ curl 'http://api.example.com/instances/b9301e9144324928911f7d83ec40c478' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP request
GET /instances/b9301e9144324928911f7d83ec40c478 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 3700
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"properties" : {
"replication.factor" : "2",
"num.partitions" : "3",
"min.insync.replicas" : "1",
"retention.ms" : "172800000",
"segment.ms" : "172800000"
},
"name" : "Rabo OTA",
"description" : "Rabo OTA Instance",
"apiUrl" : "http://aeb-ota.local",
"instanceClusters" : [ {
"schemaRegistryUrls" : "https://schema.local3",
"_links" : {
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}, {
"schemaRegistryUrls" : "https://schema.local1,https://schema.local2",
"_links" : {
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
} ],
"caCerts" : [ {
"pem" : "-----BEGIN CERTIFICATE-----\\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\\n-----END CERTIFICATE-----\\n",
"expiresOn" : null
} ],
"shortName" : "ota",
"connectEnabled" : true,
"connectUrls" : "https://connect1.url,https://connect2.url",
"uid" : "b9301e9144324928911f7d83ec40c478",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"supportTier" : {
"name" : "GOLD",
"description" : "This is gold",
"uid" : "14cadc6238fc4695916a8053302743f5",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"synchronize" : {
"href" : "..."
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that currently authenticated user can synchronize this |
Update an instance
A PATCH
request is used to update an instance.
To leave an attribute of an instance unchanged, any of the above may be omitted from the request.
If an array of Clusters is supplied in the request body, it will replace existing Clusters, if any. |
$ curl 'http://api.example.com/instances/b9301e9144324928911f7d83ec40c478' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"description" : "modified description",
"instanceClusters" : [ {
"cluster" : "http://api.example.com/clusters/f2e75fe2226745bea34ea9f56621f78f",
"schemaRegistryUrls" : "schema.registry.local:24001,schema.registry.local:24002"
} ],
"caCerts" : [ {
"pem" : "-----BEGIN CERTIFICATE-----\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\n-----END CERTIFICATE-----\n"
} ]
}'
PATCH /instances/b9301e9144324928911f7d83ec40c478 HTTP/1.1
Content-Length: 2163
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"description" : "modified description",
"instanceClusters" : [ {
"cluster" : "http://api.example.com/clusters/f2e75fe2226745bea34ea9f56621f78f",
"schemaRegistryUrls" : "schema.registry.local:24001,schema.registry.local:24002"
} ],
"caCerts" : [ {
"pem" : "-----BEGIN CERTIFICATE-----\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\n-----END CERTIFICATE-----\n"
} ]
}
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Update an instance with Connect enable
The PATCH
request can be used to turn on Connect functionality for the instance.
Curl request
$ curl 'http://api.example.com/instances/b9301e9144324928911f7d83ec40c478' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"caCerts" : [ {
"pem" : "-----BEGIN CERTIFICATE-----\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\n-----END CERTIFICATE-----\n"
} ],
"connectEnabled" : true,
"connectUrls" : "test-connect-worker-1,test-connect-worker-2"
}'
HTTP request
PATCH /instances/b9301e9144324928911f7d83ec40c478 HTTP/1.1
realm: rabo
Host: api.example.com
Content-Length: 2010
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"caCerts" : [ {
"pem" : "-----BEGIN CERTIFICATE-----\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\n-----END CERTIFICATE-----\n"
} ],
"connectEnabled" : true,
"connectUrls" : "test-connect-worker-1,test-connect-worker-2"
}
HTTP response
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Links
Snippet links not found for operation::instances/patch-connect
Synchronize an instance
A synchronize
operation is defined as the process of (re)-deploying all streams that are linked to
this instance on the Kafka clusters. This effectively syncs the configuration stored in the database
to every Kafka cluster that is part of this instance.
The process involves identifying all environments that are linked to this instance. For each environment,
streams that have valid configurations (StreamConfig
) are identified and deployed on the cluster.
This is a high-risk operation only allowed for certain roles. Check with your administrator for more details. |
A POST
request on /instances/uid/synchronize
is used to synchronize an instance. When successful,
a 204 No content
response is returned. Depending on the number of streams that need to be synced,
allow at least 30 seconds for the operation to complete.
Curl request
$ curl 'http://api.example.com/instances/b9301e9144324928911f7d83ec40c478/synchronize' -i -X POST \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
HTTP request
POST /instances/b9301e9144324928911f7d83ec40c478/synchronize HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP response
HTTP/1.1 204 No Content
Instance search endpoints
/instances/search/findByName
Search for an instance by exact name.
Parameter | Description |
---|---|
|
Instance name to search for. |
GET /instances/search/findByName?name=Rabo+OTA HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 3546
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"properties" : {
"replication.factor" : "2",
"num.partitions" : "3",
"min.insync.replicas" : "1",
"retention.ms" : "172800000",
"segment.ms" : "172800000"
},
"name" : "Rabo OTA",
"description" : "Rabo OTA Instance",
"apiUrl" : "http://aeb-ota.local",
"instanceClusters" : [ {
"schemaRegistryUrls" : "https://schema.local3",
"_links" : {
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}, {
"schemaRegistryUrls" : "https://schema.local1,https://schema.local2",
"_links" : {
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
} ],
"caCerts" : [ {
"pem" : "-----BEGIN CERTIFICATE-----\\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\\n-----END CERTIFICATE-----\\n",
"expiresOn" : null
} ],
"shortName" : "ota",
"connectEnabled" : true,
"connectUrls" : "https://connect1.url,https://connect2.url",
"uid" : "b9301e9144324928911f7d83ec40c478",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"supportTier" : {
"name" : "GOLD",
"description" : "This is gold",
"uid" : "14cadc6238fc4695916a8053302743f5",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
}
/instances/search/findByNameContaining
Search for an instance by name containing search term.
Parameter | Description |
---|---|
|
Term to search within instance name. |
GET /instances/search/findByNameContaining?name=aeb HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 259
{
"_embedded" : {
"instances" : [ ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
Clusters
A Cluster represents a set of servers working together to form a Kafka cluster. They are usually grouped by location/data center. An AEB Instance will be powered by one or more Clusters.
The clusters
resources is used to create and list Clusters.
Cluster Schema
The clusters
resource uses the following json-schema:
GET /profile/clusters HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 1356
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Cluster",
"properties" : {
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"apiUrl" : {
"title" : "Api url",
"readOnly" : false,
"type" : "string"
},
"bootstrapServers" : {
"title" : "Bootstrap servers",
"readOnly" : false,
"type" : "array",
"uniqueItems" : true,
"items" : {
"$ref" : "#/definitions/bootstrapServer"
}
},
"name" : {
"title" : "Name",
"readOnly" : false,
"type" : "string"
},
"clusterBrowseUrl" : {
"title" : "Cluster browse url",
"readOnly" : false,
"type" : "string"
},
"description" : {
"title" : "Description",
"readOnly" : false,
"type" : "string"
},
"location" : {
"title" : "Location",
"readOnly" : false,
"type" : "string"
},
"billingCloudEnabled" : {
"title" : "Billing cloud enabled",
"readOnly" : false,
"type" : "boolean"
}
},
"definitions" : {
"bootstrapServer" : {
"type" : "object",
"properties" : {
"bootstrapServer" : {
"title" : "Bootstrap server",
"readOnly" : false,
"type" : "string"
}
}
}
},
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all clusters
A GET
request will list all of the service’s Clusters.
Curl request
$ curl 'http://api.example.com/clusters' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP request
GET /clusters HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 4154
{
"_embedded" : {
"clusters" : [ {
"name" : "Best Cluster OTA",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.best.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.best.local",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver1:9093"
} ],
"uid" : "66c12e25ab06458eac988f0d700fbe81",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}, {
"name" : "Boxtel Cluster OTA",
"description" : "",
"location" : "Boxtel",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.boxtel.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.boxtel.local",
"bootstrapServers" : [ ],
"uid" : "543c3b7d55634eba83b1472775c131c4",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}, {
"name" : "Best Cluster PROD",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-prod.boxtel.local",
"clusterBrowseUrl" : "http://clusterbrowse-prod.boxtel.local",
"bootstrapServers" : [ ],
"uid" : "db0766d053ca46d59b0a1af2817c535a",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}, {
"name" : "Boxtel Cluster PROD",
"description" : "",
"location" : "Boxtel",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-prod.boxtel.local",
"clusterBrowseUrl" : "http://clusterbrowse-prod.boxtel.local",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver3:9093"
}, {
"bootstrapServer" : "bootstrapserver2:9093"
}, {
"bootstrapServer" : "bootstrapserver1:9093"
} ],
"uid" : "e57ec8be6e2845fbb14b074ce5752782",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}, {
"name" : "Best Cluster LST",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : false,
"apiUrl" : "http://clusterapi-lst.best.local",
"clusterBrowseUrl" : "http://clusterbrowse-lst.best.local",
"bootstrapServers" : [ ],
"uid" : "f2e75fe2226745bea34ea9f56621f78f",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}, {
"name" : "Boxtel Cluster LST",
"description" : "",
"location" : "Boxtel",
"billingCloudEnabled" : false,
"apiUrl" : "http://clusterapi-lst.boxtel.local",
"clusterBrowseUrl" : "http://clusterbrowse-lst.boxtel.local",
"bootstrapServers" : [ ],
"uid" : "5fe719191cd44798ab70322830800dbc",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 20,
"totalElements" : 6,
"totalPages" : 1,
"number" : 0
}
}
Create a cluster
A POST
request is used to create a Cluster.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
name |
String |
The name of the cluster. Must be unique. |
Must match the regular expression |
description |
String |
A short text summarizing the purpose of the cluster. |
Size must be between 0 and 200 inclusive |
location |
String |
The data center or geographic name where this cluster is located. |
Size must be between 0 and 50 inclusive |
apiUrl |
String |
URL of Cluster API. This will be used to manage the cluster from Axual API. |
Must be a well-formed URL. Size must be between 0 and 255 inclusive |
clusterBrowseUrl |
String |
URL of Cluster Browse. This will be used to browse the cluster from Axual API. |
Must be a well-formed URL. Size must be between 0 and 255 inclusive |
bootstrapServers |
Array |
Bootstrap servers URL’s of the cluster. |
Must not be empty |
Curl request
$ curl 'http://api.example.com/clusters' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"name" : "Test Cluster ACC",
"description" : "Test cluster for ACC in Best DC",
"location" : "Best",
"apiUrl" : "http://testcluster.acc.best.local",
"clusterBrowseUrl" : "http://testclusterbrowse.acc.best.local:9999",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver1:9092"
}, {
"bootstrapServer" : "bootstrapserver2:9092"
} ]
}'
HTTP request
POST /clusters HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Content-Length: 367
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"name" : "Test Cluster ACC",
"description" : "Test cluster for ACC in Best DC",
"location" : "Best",
"apiUrl" : "http://testcluster.acc.best.local",
"clusterBrowseUrl" : "http://testclusterbrowse.acc.best.local:9999",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver1:9092"
}, {
"bootstrapServer" : "bootstrapserver2:9092"
} ]
}
HTTP response
HTTP/1.1 201 Created
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/clusters/203f9b07a9124d46a78c5361e3e31a17
Content-Length: 633
{
"name" : "Test Cluster ACC",
"description" : "Test cluster for ACC in Best DC",
"location" : "Best",
"billingCloudEnabled" : null,
"apiUrl" : "http://testcluster.acc.best.local",
"clusterBrowseUrl" : "http://testclusterbrowse.acc.best.local:9999",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver2:9092"
}, {
"bootstrapServer" : "bootstrapserver1:9092"
} ],
"uid" : "203f9b07a9124d46a78c5361e3e31a17",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}
Retrieve a cluster
The clusters/{id}
resource is used to retrieve, update and delete individual Clusters.
A GET
request will retrieve the details of a Cluster.
Curl request
$ curl 'http://api.example.com/clusters/66c12e25ab06458eac988f0d700fbe81' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP request
GET /clusters/66c12e25ab06458eac988f0d700fbe81 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Length: 537
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
{
"name" : "Best Cluster OTA",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.best.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.best.local",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver1:9093"
} ],
"uid" : "66c12e25ab06458eac988f0d700fbe81",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}
Update an cluster
A PATCH
request is used to update a cluster.
To leave an attribute of an instance unchanged, any of the above may be omitted from the request.
$ curl 'http://api.example.com/clusters/66c12e25ab06458eac988f0d700fbe81' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"description" : "modified description"
}'
PATCH /clusters/66c12e25ab06458eac988f0d700fbe81 HTTP/1.1
Content-Length: 44
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"description" : "modified description"
}
HTTP/1.1 204 No Content
ETag: "0"
Cluster search endpoints
/clusters/search/findByName
Search for a cluster by exact name.
Parameter | Description |
---|---|
|
Cluster name to search for. |
GET /clusters/search/findByName?name=Best+Cluster+LST HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 484
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
{
"name" : "Best Cluster LST",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : false,
"apiUrl" : "http://clusterapi-lst.best.local",
"clusterBrowseUrl" : "http://clusterbrowse-lst.best.local",
"bootstrapServers" : [ ],
"uid" : "f2e75fe2226745bea34ea9f56621f78f",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}
/clusters/search/findByNameContaining
Search for a cluster by name containing search term.
Parameter | Description |
---|---|
|
Term to search within cluster name. |
GET /clusters/search/findByNameContaining?name=best HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2010
{
"_embedded" : {
"clusters" : [ {
"name" : "Best Cluster OTA",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.best.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.best.local",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver1:9093"
} ],
"uid" : "66c12e25ab06458eac988f0d700fbe81",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}, {
"name" : "Best Cluster PROD",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-prod.boxtel.local",
"clusterBrowseUrl" : "http://clusterbrowse-prod.boxtel.local",
"bootstrapServers" : [ ],
"uid" : "db0766d053ca46d59b0a1af2817c535a",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
}, {
"name" : "Best Cluster LST",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : false,
"apiUrl" : "http://clusterapi-lst.best.local",
"clusterBrowseUrl" : "http://clusterbrowse-lst.best.local",
"bootstrapServers" : [ ],
"uid" : "f2e75fe2226745bea34ea9f56621f78f",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"cluster" : {
"href" : "...",
"title" : "A cluster"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 3,
"totalPages" : 1,
"number" : 0
}
}
Tenants
Tenant represents an individual customer of Axual Event Bus (AEB). A tenant can have multiple environments that map to a particular instance of AEB. Tenant can also have multiple Streams on multiple Environments on a particular instance of AEB.
Tenants are never visible to a tenant user. Currently logged in user can see basic information like name and logo of his own tenant.
The tenants
collection resource is used to create and list tenants.
Tenant schema
The tenants
resource uses the following json-schema:
GET /profile/tenants HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/schema+json;charset=UTF-8
Content-Length: 1856
{
"title" : "Tenant",
"properties" : {
"partitions" : {
"title" : "Partitions",
"readOnly" : false,
"type" : "integer"
},
"issuerUrl" : {
"title" : "Issuer url",
"readOnly" : false,
"type" : "string"
},
"dataClassificationEnabled" : {
"title" : "Data classification enabled",
"readOnly" : false,
"type" : "boolean"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"retentionTime" : {
"title" : "Retention time",
"readOnly" : false,
"type" : "integer"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"contact" : {
"title" : "Contact",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"name" : {
"title" : "Name",
"readOnly" : false,
"type" : "string"
},
"featureConfig" : {
"title" : "Feature config",
"readOnly" : false,
"type" : "string"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"logo" : {
"title" : "Logo",
"readOnly" : false,
"type" : "string"
},
"shortName" : {
"title" : "Short name",
"readOnly" : false,
"type" : "string"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"properties" : {
"title" : "Properties",
"readOnly" : false,
"type" : "object"
}
},
"definitions" : { },
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all tenants
A GET
request lists all tenants in the system. This operation can be done by an Axual
admin only.
Curl request
$ curl 'http://api.example.com/tenants' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /tenants HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1658
{
"_embedded" : {
"tenants" : [ {
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"min.insync.replicas" : "1",
"segment.ms" : "86400000"
},
"name" : "Rabobank",
"shortName" : "rabo",
"logo" : "rabo.png",
"issuerUrl" : "http://api.example.com/auth/realms/rabobank",
"dataClassificationEnabled" : false,
"featureConfig" : null,
"retentionTime" : 604800000,
"partitions" : 12,
"uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Create tenant
A POST
request is used to create a new tenant. This operation can be done by an Axual
admin only.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
name |
String |
Full name of the tenant |
Must match the regular expression |
shortName |
String |
Short name of the tenant |
Must match the regular expression |
domain |
String |
Supported domain of this tenant |
|
properties |
Object |
A list of Tenant specific variables in Key,Value format. |
|
retentionTime |
Number |
The time in milliseconds after which the messages can be deleted from all streams. This is an optional field. If not specified, default value is 7 days (604800000). |
Must be at least 1000. Must be at most 160704000000 |
partitions |
Number |
Defines the number of partitions configured for every stream of this tenant. This is an optional field. If not specified, default value is 12 |
Must be at least 1. Must be at most 120000 |
Curl request
$ curl 'http://api.example.com/tenants' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"name" : "Test Tenant",
"shortName" : "test",
"domain" : "testtenant.nl",
"retentionTime" : 50000,
"partitions" : 12
}'
HTTP request
POST /tenants HTTP/1.1
Content-Length: 130
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"name" : "Test Tenant",
"shortName" : "test",
"domain" : "testtenant.nl",
"retentionTime" : 50000,
"partitions" : 12
}
HTTP response
HTTP/1.1 201 Created
Location: http://api.example.com/tenants/73bf6f62316d44f7bac9c85aafad1d01
Content-Length: 1011
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Last-Modified: Sun, 4 Jul 2021 10:54:30 GMT
{
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"min.insync.replicas" : "1",
"segment.ms" : "86400000"
},
"name" : "Test Tenant",
"shortName" : "test",
"logo" : null,
"issuerUrl" : null,
"dataClassificationEnabled" : false,
"featureConfig" : null,
"retentionTime" : 50000,
"partitions" : 12,
"uid" : "73bf6f62316d44f7bac9c85aafad1d01",
"created_at" : "2021-07-04T10:54:30.551613",
"modified_at" : "2021-07-04T10:54:30.551613",
"created_by" : "superadmin@supertesttenant.nl",
"modified_by" : "superadmin@supertesttenant.nl",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
}
Retrieve a tenant
The tenants/{id}
item resource is used to retrieve, update and delete individual tenants.
A GET
request will retrieve the details of a Tenant.
If, inside the details of a Tenant, is display _embeddeb
property, it means the contact
for the
current Tenant is not yet set.
Otherwise, if it is present, the _embeddeb
property contains all the user detail of the contact
.
At the bottom of the details of a Tenant there are links that point directly to the User detail page of contact, if it is set already, otherwise the link point to 'ResourceNotFound'.
Curl request
$ curl 'http://api.example.com/tenants/55ef719629a94a07b9bf8ac0f3c495e5' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /tenants/55ef719629a94a07b9bf8ac0f3c495e5 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 999
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"min.insync.replicas" : "1",
"segment.ms" : "86400000"
},
"name" : "Rabobank",
"shortName" : "rabo",
"logo" : "rabo.png",
"issuerUrl" : "http://api.example.com/auth/realms/rabobank",
"dataClassificationEnabled" : false,
"featureConfig" : null,
"retentionTime" : 604800000,
"partitions" : 12,
"uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can edit this Tenant |
Update a tenant
A PATCH
request is used to update a tenant. Only an Axual admin can perform this
action.
$ curl 'http://api.example.com/tenants/55ef719629a94a07b9bf8ac0f3c495e5' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"featureConfig" : "{\n \"userLimit\": 2,\n \"group\":1\n}"
}'
PATCH /tenants/55ef719629a94a07b9bf8ac0f3c495e5 HTTP/1.1
Content-Length: 66
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"featureConfig" : "{\n \"userLimit\": 2,\n \"group\":1\n}"
}
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Search endpoints
/tenants/search/findByName
Search for a tenant by exact name.
Parameter | Description |
---|---|
|
Tenant name to search for. |
GET /tenants/search/findByName?name=Rabobank HTTP/1.1
realm: rabo
realm: rabo
Authorization: Bearer token
Authorization: Bearer something
Host: api.example.com
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1314
{
"_embedded" : {
"tenants" : [ {
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"min.insync.replicas" : "1",
"segment.ms" : "86400000"
},
"name" : "Rabobank",
"shortName" : "rabo",
"logo" : "rabo.png",
"issuerUrl" : "http://api.example.com/auth/realms/rabobank",
"dataClassificationEnabled" : false,
"featureConfig" : null,
"retentionTime" : 604800000,
"partitions" : 12,
"uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/tenants/search/findByNameContaining
Search for a tenant by name containing search term.
Parameter | Description |
---|---|
|
Term to search for within tenant name. |
GET /tenants/search/findByNameContaining?name=Rabobank HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1413
{
"_embedded" : {
"tenants" : [ {
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"min.insync.replicas" : "1",
"segment.ms" : "86400000"
},
"name" : "Rabobank",
"shortName" : "rabo",
"logo" : "rabo.png",
"issuerUrl" : "http://api.example.com/auth/realms/rabobank",
"dataClassificationEnabled" : false,
"featureConfig" : null,
"retentionTime" : 604800000,
"partitions" : 12,
"uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
/tenants/search/findByShortName
Search for a tenant by exact short name.
Parameter | Description |
---|---|
|
Tenant short name to search for. |
GET /tenants/search/findByShortName?shortName=rabo HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1314
{
"_embedded" : {
"tenants" : [ {
"properties" : {
"replication.factor" : "1",
"cleanup.policy" : "delete",
"min.insync.replicas" : "1",
"segment.ms" : "86400000"
},
"name" : "Rabobank",
"shortName" : "rabo",
"logo" : "rabo.png",
"issuerUrl" : "http://api.example.com/auth/realms/rabobank",
"dataClassificationEnabled" : false,
"featureConfig" : null,
"retentionTime" : 604800000,
"partitions" : 12,
"uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"tenant" : {
"href" : "...",
"title" : "A tenant"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Confidentialities
Defines the available confidentiality level for a tenant.
As an example following can be the confidentiality levels: - C=0: Public. - C=1: Internal use. - C=2: Confidential. - C=3: Secret.
These levels can then be associated to the streams for the tenant. The purpose of this is to define how confidential the messages on the stream are.
List all confidentiality
A GET
request lists all tenants in the system. This operation can be done by any authenticated user for the tenant.
Curl request
$ curl 'http://api.example.com/confidentialities' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /confidentialities HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 2030
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"confidentialities" : [ {
"level" : "L1",
"color" : "blue",
"description" : "test confidentiality",
"uid" : "347ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
}, {
"level" : "L2",
"color" : "blue",
"description" : "L2 confidentiality",
"uid" : "648ab08009fe4da8be6905b55552ac43",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
},
"create" : {
"href" : "...",
"templated" : true,
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
Create confidentiality
A POST
request is used to create a new confidentiality level. This operation can be done by a TENANT_ADMIN
only.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
level |
String |
The name of the level |
Size must be between 0 and 50 inclusive |
description |
String |
The description of the level. |
Size must be between 0 and 200 inclusive |
color |
String |
The colour of the level. |
Size must be between 0 and 12 inclusive |
Curl request
$ curl 'http://api.example.com/confidentialities' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"level" : "L2",
"description" : "This is Level 2",
"color" : "blue"
}'
HTTP request
POST /confidentialities HTTP/1.1
Content-Length: 77
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"level" : "L2",
"description" : "This is Level 2",
"color" : "blue"
}
HTTP response
HTTP/1.1 201 Created
Content-Length: 770
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/confidentialities/4e9973b9a018463683502a0b65b10305
Last-Modified: Sun, 4 Jul 2021 10:54:29 GMT
{
"level" : "l2",
"description" : "This is Level 2",
"color" : "blue",
"uid" : "4e9973b9a018463683502a0b65b10305",
"created_at" : "2021-07-04T10:54:29.705383",
"modified_at" : "2021-07-04T10:54:29.705383",
"created_by" : "tenadmin@rabobank.nl",
"modified_by" : "tenadmin@rabobank.nl",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
}
Retrieve confidentiality
The confidentiality/{id}
item resource is used to retrieve, update and delete individual confidentiality level.
A GET
request will retrieve the details of a Confidentiality level. This operation can be done by any authenticated user for the tenant.
Curl request
$ curl 'http://api.example.com/confidentialities/347ab08009fe4da8be6905b55552ab52' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /confidentialities/347ab08009fe4da8be6905b55552ab52 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 733
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"level" : "L1",
"description" : "test confidentiality",
"color" : "blue",
"uid" : "347ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can edit this Confidentiality level |
|
Existence of this link indicates that the currently authenticated user can delete this confidentiality level |
Update confidentiality
A PATCH
request is used to update a tenant. Only a TENANT_ADMIN
can perform this
action.
$ curl 'http://api.example.com/confidentialities/347ab08009fe4da8be6905b55552ab52' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"description" : "Updated description"
}'
PATCH /confidentialities/347ab08009fe4da8be6905b55552ab52 HTTP/1.1
Content-Length: 43
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"description" : "Updated description"
}
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 732
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
{
"level" : "L1",
"description" : "Updated description",
"color" : "blue",
"uid" : "347ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
}
Delete confidentiality
Deleting confidentiality is a two step process a GET request to check the constraints followed by the DELETE request
Delete confidentiality constraints
A GET
request is used to get the constraints for deleting Confidentiality
. Only a TENANT_ADMIN
can perform this
$ curl 'http://api.example.com/confidentialities/648ab08009fe4da8be6905b55552ac43/deletion-constraints' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /confidentialities/648ab08009fe4da8be6905b55552ac43/deletion-constraints HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 47
{
"canDelete" : false,
"streamsCount" : 1
}
Delete confidentiality
A DELETE
request is used to delete a Confidentiality
. Only a TENANT_ADMIN
can perform this
$ curl 'http://api.example.com/confidentialities/347ab08009fe4da8be6905b55552ab52' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /confidentialities/347ab08009fe4da8be6905b55552ab52 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Integrities
Define the available integrity level for a tenant. These levels can then be associated to the streams for the tenant.
List all integrity
A GET
request will list all the integrities in the system. This operation can be done by a TENANT_ADMIN
only.
Curl request
$ curl 'http://api.example.com/integrities' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /integrities HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1995
{
"_embedded" : {
"integrities" : [ {
"level" : "L1",
"color" : "green",
"description" : "This is level 1",
"uid" : "247ab08159fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
}, {
"level" : "L2",
"color" : "yellow",
"description" : "This is level 2",
"uid" : "247ab03ffafe4da2bet905b5e352ab53",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
},
"create" : {
"href" : "...",
"templated" : true,
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates thatthe currently authenticated user can create Integrity level |
Create integrity
A POST
request is used to create a new integrity level. This operation can be done by a TENANT_ADMIN
only.
Below table lists all possible fields that can be provided for integrity level creation.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
level |
String |
The level of the integrity level |
Size must be between 0 and 50 inclusive |
description |
String |
The description of the integrity level |
Size must be between 0 and 200 inclusive |
color |
String |
The color of the integrity level |
Size must be between 0 and 12 inclusive |
Curl request
$ curl 'http://api.example.com/integrities' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"level" : "Level 1",
"description" : "This is level 1",
"color" : "green"
}'
HTTP request
POST /integrities HTTP/1.1
realm: rabo
Content-Length: 83
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"level" : "Level 1",
"description" : "This is level 1",
"color" : "green"
}
HTTP response
HTTP/1.1 201 Created
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Last-Modified: Sun, 4 Jul 2021 10:54:31 GMT
Content-Length: 764
Location: http://api.example.com/integrities/c7319d11789a4b8e8dfae9cc2748cbc7
{
"level" : "level 1",
"description" : "This is level 1",
"color" : "green",
"uid" : "c7319d11789a4b8e8dfae9cc2748cbc7",
"created_at" : "2021-07-04T10:54:31.067205",
"modified_at" : "2021-07-04T10:54:31.067205",
"created_by" : "tenadmin@rabobank.nl",
"modified_by" : "tenadmin@rabobank.nl",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
}
Retrieve an integrity
The integrity/{id}
item resource is used to retrieve, update and delete individual integrity level.
A GET
request will retrieve the details of an integrity.
Curl request
$ curl 'http://api.example.com/integrities/247ab08159fe4da8be6905b55552ab52' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /integrities/247ab08159fe4da8be6905b55552ab52 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 717
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"level" : "L1",
"description" : "This is level 1",
"color" : "green",
"uid" : "247ab08159fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates thatthe currently authenticated user can edit this Integrity level |
|
Existence of this link indicates that the currently authenticated user can delete this Integrity level |
Update an integrity
A PATCH
request is used to update an integrity. Only a TENANT_ADMIN
can perform this action.
$ curl 'http://api.example.com/integrities/247ab08159fe4da8be6905b55552ab52' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"description" : "Updated description",
"color" : "purple",
"level" : "level-one"
}'
PATCH /integrities/247ab08159fe4da8be6905b55552ab52 HTTP/1.1
realm: rabo
Host: api.example.com
Content-Length: 90
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"description" : "Updated description",
"color" : "purple",
"level" : "level-one"
}
HTTP/1.1 200 OK
Content-Length: 729
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
{
"level" : "level-one",
"description" : "Updated description",
"color" : "purple",
"uid" : "247ab08159fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
}
}
}
Delete integrity endpoints
Deleting integrity is a two step process, a GET request to check the constraints followed by the DELETE request.
This operation can be done by a TENANT_ADMIN
only.
Delete integrity constraints
A GET
request is used to get the constraints for deleting integrities
.
$ curl 'http://api.example.com/integrities/247ab03ffafe4da2bet905b5e352ab53/deletion-constraints' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /integrities/247ab03ffafe4da2bet905b5e352ab53/deletion-constraints HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 47
{
"canDelete" : false,
"streamsCount" : 1
}
Delete integrity
A DELETE
request is used to delete a integrity.
$ curl 'http://api.example.com/integrities/247ab08159fe4da8be6905b55552ab52' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /integrities/247ab08159fe4da8be6905b55552ab52 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
ConnectPlugins
A ConnectPlugin
stores the plugin class, type, version, and optional config explanation available for an Instance
.
The /connect_plugins
resource is used to list connect plugins.
List all connect plugins
A GET
request will list all the connect plugins available to the currently logged in user.
Curl request
$ curl 'http://api.example.com/connect_plugins' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP request
GET /connect_plugins HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 3430
{
"_embedded" : {
"connect_plugins" : [ {
"instance" : {
"tenant" : {
"shortName" : "rabo",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
},
"pluginClass" : "io.axual.test.sink.plugin",
"pluginType" : "SINK",
"pluginVersion" : "1.0.0",
"pluginConfigs" : [ {
"name" : "transforms",
"type" : "LIST"
}, {
"name" : "key.converter",
"type" : "CLASS"
}, {
"name" : "tasks.max",
"type" : "INT"
}, {
"name" : "logger.name",
"type" : "STRING"
}, {
"name" : "connector.class",
"type" : "STRING"
}, {
"name" : "name",
"type" : "STRING"
} ],
"uid" : "197691609c2fe4f129cfc79f18d5d1269",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"connectPluginInfo" : {
"href" : "...",
"templated" : true
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
}
}
}, {
"instance" : {
"tenant" : {
"shortName" : "rabo",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"contact" : {
"href" : "...",
"templated" : true,
"title" : "Business contact of this tenant"
}
}
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
},
"pluginClass" : "io.axual.test.source.plugin",
"pluginType" : "SOURCE",
"pluginVersion" : "1.0.0",
"pluginConfigs" : [ ],
"uid" : "427691609c2f20f129bd179f45d5d1269",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"connectPluginInfo" : {
"href" : "...",
"templated" : true
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 20,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
List all environments relevant for an application
A GET
request will list all the environments that are relevant for the application with the status of connector on those environments .
Only the environments that support the application’s configured pluginClass and are accessible to the user are returned.
Curl request
$ curl 'http://api.example.com/connect_plugins/search/findEnvironmentsByApplication?application=http%3A%2F%2Flocalhost%2Fapplications%2Fdbc9e4670h1c4866deg78722e2930d2g' -i -X GET \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /connect_plugins/search/findEnvironmentsByApplication?application=http%3A%2F%2Flocalhost%2Fapplications%2Fdbc9e4670h1c4866deg78722e2930d2g HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 6238
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"environmentWithStatuses" : [ {
"status" : "Undefined",
"_embedded" : {
"environment" : {
"name" : "raboenv2",
"shortName" : "raboenv2",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"application" : {
"type" : "SINK",
"shortName" : "rabo_app6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "dbc9e4670h1c4866deg78722e2930d2g",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
}
}, {
"status" : "Undefined",
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"application" : {
"type" : "SINK",
"shortName" : "rabo_app6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "dbc9e4670h1c4866deg78722e2930d2g",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
}
}, {
"status" : "Undefined",
"_embedded" : {
"environment" : {
"name" : "raboenv_no_streams",
"shortName" : "raboenvns",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "a5f2383ccce249459b24b7cb189b40bc",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"application" : {
"type" : "SINK",
"shortName" : "rabo_app6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "dbc9e4670h1c4866deg78722e2930d2g",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Environments
An Environment represents a functional group of servers that is specific to a Tenant. It is usually grouped based on functional use e.g. System testing, Acceptance testing, Production and others.
Every environment must be linked to an existing Instance before it can be considered ready for business use. This can only be done by an Axual admin user.
The environments
collection resource is used to create and list Environments.
Environment Schema
The environments
resource uses the following json-schema:
GET /profile/environments HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 2269
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Environment",
"properties" : {
"partitions" : {
"title" : "Partitions",
"readOnly" : false,
"type" : "integer"
},
"authorizationIssuer" : {
"title" : "Authorization issuer",
"readOnly" : false,
"type" : "string",
"enum" : [ "Stream owner", "Auto" ]
},
"private" : {
"title" : "Private",
"readOnly" : true,
"type" : "boolean"
},
"instance" : {
"title" : "Instance",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"color" : {
"title" : "Color",
"readOnly" : false,
"type" : "string"
},
"visibility" : {
"title" : "Visibility",
"readOnly" : false,
"type" : "string",
"enum" : [ "public", "private" ]
},
"description" : {
"title" : "Description",
"readOnly" : false,
"type" : "string"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"owners" : {
"title" : "Owners",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"retentionTime" : {
"title" : "Retention time",
"readOnly" : false,
"type" : "integer"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
},
"autoApproved" : {
"title" : "Auto approved",
"readOnly" : true,
"type" : "boolean"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"name" : {
"title" : "Name",
"readOnly" : false,
"type" : "string"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"shortName" : {
"title" : "Short name",
"readOnly" : false,
"type" : "string"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"properties" : {
"title" : "Properties",
"readOnly" : false,
"type" : "object"
}
},
"definitions" : { },
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all environments
A GET
request will list all the environments visible to the currently logged in user.
Curl request
$ curl 'http://api.example.com/environments' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /environments HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 8158
{
"_embedded" : {
"environments" : [ {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboenv2",
"shortName" : "raboenv2",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv1",
"shortName" : "raboprivenv1",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "46cfaf47d2d04d12923beefac3d0ba5a",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv2",
"shortName" : "raboprivenv2",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "61b1b34b0c6744dcadb85f4c188517e5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv3",
"shortName" : "raboprivenv3",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "72c1b34b0c6744dcadb85f4c188518f6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv4",
"shortName" : "raboprivenv4",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "83c1b34b0c6744dcadb85f4c188518g5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv5",
"shortName" : "raboprivenv5",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "6u2577bclboz97ievex0fv5hvysemooh",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboenv3",
"shortName" : "raboenv3",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "156ab08009fe4da8be6905b55552ab63",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "envdefault",
"shortName" : "envdefault",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "156ab08009fe4da96e6905b55552ab63",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboenv_no_streams",
"shortName" : "raboenvns",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "a5f2383ccce249459b24b7cb189b40bc",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
},
"create" : {
"href" : "...",
"templated" : true,
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 10,
"totalPages" : 1,
"number" : 0
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can create a new Environment |
Create environment
A POST
request is used to create a new environment. The fields authorizationIssuer
and visibility
are currently optional and can be ignored while creating a new Environment
. By default,
authorizationIssuer
will be set to Stream owner
and visibility
will be set to Public
.
Below table lists all possible fields that can be provided for environment creation.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
name |
String |
The name of the environment |
Must match the regular expression |
shortName |
String |
The short name of the environment. Used in stream names internally. Must be lower-case. |
Must match the regular expression |
owners |
String |
A valid URI of an existing group, must not be null. |
Must not be null |
description |
String |
Human-readable text describing the environment |
Size must be between 0 and 200 inclusive |
properties |
Object |
A list of Tenant specific variables in Key,Value format. |
|
color |
String |
A string color value assigned to this environment. |
Size must be between 0 and 12 inclusive |
authorizationIssuer |
String |
An entity that authorizes |
|
visibility |
String |
Defines the visibility of this environment. Possible values are |
|
instance |
String |
A valid Instance URI where this environment should be deployed. |
|
retentionTime |
Number |
The time in milliseconds after which the messages can be deleted from all streams. This is an optional field. If not specified, default value is 7 days (604800000). |
Must be at least 1000. Must be at most 160704000000 |
partitions |
Number |
Defines the number of partitions configured for every stream of this tenant. This is an optional field. If not specified, default value is 12 |
Must be at least 1. Must be at most 120000 |
Curl request
$ curl 'http://api.example.com/environments' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"name" : "KAD Test",
"shortName" : "kad",
"description" : "This is KAD test environment",
"retentionTime" : 90000,
"partitions" : 8,
"authorizationIssuer" : "Stream owner",
"visibility" : "Public",
"instance" : "http://api.example.com/instances/b9301e9144324928911f7d83ec40c478",
"owners" : "http://api.example.com/groups/c339c5cf9b5a4f6b8342c6ea2f9b6775",
"properties" : {
"stream.integrity" : "2",
"stream.confidentiality" : "3"
}
}'
HTTP request
POST /environments HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Content-Length: 466
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"name" : "KAD Test",
"shortName" : "kad",
"description" : "This is KAD test environment",
"retentionTime" : 90000,
"partitions" : 8,
"authorizationIssuer" : "Stream owner",
"visibility" : "Public",
"instance" : "http://api.example.com/instances/b9301e9144324928911f7d83ec40c478",
"owners" : "http://api.example.com/groups/c339c5cf9b5a4f6b8342c6ea2f9b6775",
"properties" : {
"stream.integrity" : "2",
"stream.confidentiality" : "3"
}
}
HTTP response
HTTP/1.1 201 Created
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/environments/420fb820d0c9452793bec8b0d60a3363
Content-Length: 3258
Last-Modified: Sun, 4 Jul 2021 10:54:18 GMT
{
"properties" : {
"stream.integrity" : "2",
"stream.confidentiality" : "3"
},
"name" : "KAD Test",
"shortName" : "kad",
"description" : "This is KAD test environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : null,
"retentionTime" : 90000,
"partitions" : 8,
"private" : false,
"autoApproved" : false,
"uid" : "420fb820d0c9452793bec8b0d60a3363",
"created_at" : "2021-07-04T10:54:18.831288",
"modified_at" : "2021-07-04T10:54:18.831288",
"created_by" : "poweruser@rabobank.nl",
"modified_by" : "poweruser@rabobank.nl",
"_embedded" : {
"instance" : {
"name" : "Rabo OTA",
"instanceClusters" : [ {
"schemaRegistryUrls" : "https://schema.local3",
"cluster" : {
"name" : "Boxtel Cluster OTA",
"description" : "",
"location" : "Boxtel",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.boxtel.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.boxtel.local",
"bootstrapServers" : [ ],
"uid" : "543c3b7d55634eba83b1472775c131c4"
}
}, {
"schemaRegistryUrls" : "https://schema.local1,https://schema.local2",
"cluster" : {
"name" : "Best Cluster OTA",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.best.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.best.local",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver1:9093"
} ],
"uid" : "66c12e25ab06458eac988f0d700fbe81"
}
} ],
"description" : "Rabo OTA Instance",
"uid" : "b9301e9144324928911f7d83ec40c478",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
},
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"synchronize" : {
"href" : "..."
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
Retrieve an environment
The environments/{id}
resource is used to retrieve, update and delete individual environments.
A GET
request will retrieve the details of an environment.
Curl request
$ curl 'http://api.example.com/environments/46cfaf47d2d04d12923beefac3d0ba5a' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP response
HTTP/1.1 200 OK
Content-Length: 3135
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"properties" : { },
"name" : "raboprivenv1",
"shortName" : "raboprivenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Auto",
"visibility" : "private",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : true,
"autoApproved" : true,
"uid" : "46cfaf47d2d04d12923beefac3d0ba5a",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"instance" : {
"name" : "Rabo OTA",
"instanceClusters" : [ {
"schemaRegistryUrls" : "https://schema.local3",
"cluster" : {
"name" : "Boxtel Cluster OTA",
"description" : "",
"location" : "Boxtel",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.boxtel.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.boxtel.local",
"bootstrapServers" : [ ],
"uid" : "543c3b7d55634eba83b1472775c131c4"
}
}, {
"schemaRegistryUrls" : "https://schema.local1,https://schema.local2",
"cluster" : {
"name" : "Best Cluster OTA",
"description" : "",
"location" : "Best",
"billingCloudEnabled" : true,
"apiUrl" : "http://clusterapi-ota.best.local",
"clusterBrowseUrl" : "http://clusterbrowse-ota.best.local",
"bootstrapServers" : [ {
"bootstrapServer" : "bootstrapserver1:9093"
} ],
"uid" : "66c12e25ab06458eac988f0d700fbe81"
}
} ],
"description" : "Rabo OTA Instance",
"uid" : "b9301e9144324928911f7d83ec40c478",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
},
"owners" : {
"name" : "Environment-raboenv1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "aac290536035440e9a85f193e4affeb3",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"synchronize" : {
"href" : "..."
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
Links
Relation | Description |
---|---|
|
The Axual instance this environment is mapped to. |
|
The group of users allowed to access/update the environment. |
|
Existence of this link indicates that the currently authenticated user can edit this |
|
Existence of this link indicates that currently authenticated user can synchronize this |
Update an environment
Editing an Environment is a two step process a GET request to check the constraints followed by the PATCH request. Some fields can only be updated if the constraints allow them. For example shortName
and instance
.
Get Edit environment constraints
A GET
request is used to get the constraints for editing an environment
.
$ curl 'http://api.example.com/environments/a5f2383ccce249459b24b7cb189b40bc/edit-constraints' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /environments/a5f2383ccce249459b24b7cb189b40bc/edit-constraints HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 87
Content-Type: application/json;charset=UTF-8
{
"canEditInstance" : true,
"canEditShortName" : true,
"streamConfigsCount" : 0
}
A PATCH
request is used to update an environment. In the request, pass only the fields that need changing and ensure the fields can be updated in the constraints.
$ curl 'http://api.example.com/environments/46cfaf47d2d04d12923beefac3d0ba5a' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"description" : "Updated description"
}'
PATCH /environments/46cfaf47d2d04d12923beefac3d0ba5a HTTP/1.1
Content-Length: 43
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"description" : "Updated description"
}
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Delete environment endpoints
Deleting private environment is a two step process a GET request to check the constraints followed by the DELETE request.
Currently deleting a public environment is not supported. |
Delete private environment constraints
A GET
request is used to get the constraints for deleting private environments
.
$ curl 'http://api.example.com/environments/61b1b34b0c6744dcadb85f4c188517e5/deletion-constraints' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /environments/61b1b34b0c6744dcadb85f4c188517e5/deletion-constraints HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 107
{
"canDelete" : true,
"activeGrantsCount" : 0,
"appPrincipalsCount" : 0,
"streamConfigsCount" : 0
}
Delete private environment
A DELETE
request is used to delete a private environment.
$ curl 'http://api.example.com/environments/61b1b34b0c6744dcadb85f4c188517e5' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /environments/61b1b34b0c6744dcadb85f4c188517e5 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Synchronize an environment
A synchronize
operation is defined as the process of (re)-deploying all streams that are linked to
this environment on the Kafka clusters. This effectively syncs the configuration stored in the database
to every Kafka cluster that is part of this environment.
The operation is similar to instance synchronization except it is performed at environment level.
The process involves identifying streams that have valid configurations (StreamConfig
) for this
environment and deploying on the cluster.
This is a high-risk operation only allowed for certain roles. Check with your administrator for more details. |
A POST
request on /environments/uid/synchronize
is used to synchronize an environment. When successful,
a 204 No content
response is returned. Depending on the number of streams that need to be synced,
allow at least 30 seconds for the operation to complete.
Curl request
$ curl 'http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52/synchronize' -i -X POST \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
HTTP request
POST /environments/047ab08009fe4da8be6905b55552ab52/synchronize HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP response
HTTP/1.1 204 No Content
Search endpoints
/environments/search/findByName
Search for an environment by exact name.
Parameter | Description |
---|---|
|
Environment name to search for. |
GET /environments/search/findByName?name=raboenv1 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 908
{
"_embedded" : {
"environments" : [ {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/environments/search/findByNameContaining
Search for an environment by name containing search term.
Parameter | Description |
---|---|
|
Term to search for within environment name. |
GET /environments/search/findByNameContaining?name=raboenv1 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1112
{
"_embedded" : {
"environments" : [ {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"create" : {
"href" : "...",
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
/environments/search/findByShortName
Search for an environment by exact short name.
Parameter | Description |
---|---|
|
Environment short name to search for. |
GET /environments/search/findByShortName?shortName=raboenv1 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 908
{
"_embedded" : {
"environments" : [ {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/environments/search/findByInstance
Search for environments that are deployed on this instance.
Parameter | Description |
---|---|
|
Find environments mapped to this instance. Must be a valid instance URI. |
$ curl 'http://api.example.com/environments/search/findByInstance?instance=http%3A%2F%2Flocalhost%2Finstances%2Fb9301e9144324928911f7d83ec40c478' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 6186
{
"_embedded" : {
"environments" : [ {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboenv2",
"shortName" : "raboenv2",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv1",
"shortName" : "raboprivenv1",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "46cfaf47d2d04d12923beefac3d0ba5a",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv2",
"shortName" : "raboprivenv2",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "61b1b34b0c6744dcadb85f4c188517e5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv3",
"shortName" : "raboprivenv3",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "72c1b34b0c6744dcadb85f4c188518f6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv4",
"shortName" : "raboprivenv4",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "83c1b34b0c6744dcadb85f4c188518g5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboprivenv5",
"shortName" : "raboprivenv5",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "6u2577bclboz97ievex0fv5hvysemooh",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"name" : "raboenv_no_streams",
"shortName" : "raboenvns",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "a5f2383ccce249459b24b7cb189b40bc",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Applications
An Application is a piece of software that is capable of producing or consuming events from a data stream.
With release of 0.7.5, we have introduced a new field visibility
that defines the concept
of public
and private
application.
A public
application is visible to every authenticated user within a tenant. A private
application, on the other hand, is only visible to the team that owns it. Mostly applications
that are created for test purposes and are not intended to be deployed in production are marked
as private.
For now, this field is optional with a default value of public
, so this field can be ignored while
creating a new application.
The /applications
resource is used to list and create applications.
Application schema
The applications
resource uses the following json-schema:
GET /profile/applications HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 2283
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Application",
"properties" : {
"applicationType" : {
"title" : "Application type",
"readOnly" : false,
"type" : "string",
"enum" : [ "Custom", "Connector" ]
},
"visibility" : {
"title" : "Visibility",
"readOnly" : false,
"type" : "string",
"enum" : [ "public", "private" ]
},
"applicationClassVersion" : {
"title" : "Application class version",
"readOnly" : false,
"type" : "string"
},
"description" : {
"title" : "Description",
"readOnly" : false,
"type" : "string"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"owners" : {
"title" : "Owners",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"type" : {
"title" : "Type",
"readOnly" : false,
"type" : "string"
},
"allApplicationIds" : {
"title" : "All application ids",
"readOnly" : true,
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "object"
}
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
},
"applicationDefaults" : {
"title" : "Application defaults",
"readOnly" : false,
"type" : "object"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"applicationClass" : {
"title" : "Application class",
"readOnly" : false,
"type" : "string"
},
"name" : {
"title" : "Name",
"readOnly" : false,
"type" : "string"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"shortName" : {
"title" : "Short name",
"readOnly" : false,
"type" : "string"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"applicationId" : {
"title" : "Application id",
"readOnly" : true,
"type" : "string"
}
},
"definitions" : { },
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all applications
A GET
request will list all the public applications and the applications owned by the currently logged in user.
Curl request
$ curl 'http://api.example.com/applications' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /applications HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 19095
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"applications" : [ {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "39d82d7f34484b53ae1dd47ee8924502",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app3",
"visibility" : "private",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "39d82d7f34484b53ae1dd47ee8924512",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_priv_app3_2",
"visibility" : "private",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "f692ca5191764258b7257a6b2a7fb188",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "test_revoke",
"visibility" : "private",
"owners" : {
"name" : "Team Kad",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841869644c2ad8b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "39d82d7994484b53ae1de37ee8924512",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_auto_app3",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "4cc380171afc4c898b6f6c02caccf451",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_auto_app4",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "aec9e4570f1c4866bef77722e2830d4b",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app5",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "fdc9e4570f1c4866bef77722e2830d5g",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "dbc9e4670h1c4866deg78722e2930d2g",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app7",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "ead8f4670h1c4866deg78722e2930e3f",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app8",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "fbe9f4670h1c4866deg78722e2931e4g",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app9",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "ghi9f4670h1c4866deg78722e2931e4g",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app10",
"visibility" : "private",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "lmk9f4670h1c4866deg78722e2931e5g",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app11",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "ioi9f4670h1c4866deg78722e2921f5g",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "ing_app2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "c2e98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2f98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination3",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831a74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination4",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831cc4ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination5",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e92e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
} ]
},
"_links" : {
"first" : {
"href" : "..."
},
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"next" : {
"href" : "..."
},
"last" : {
"href" : "..."
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
},
"create" : {
"href" : "...",
"templated" : true,
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 26,
"totalPages" : 2,
"number" : 0
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can create a new Application |
Create Custom application
A POST
request is used to create a new application.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
name |
String |
The name of the Application. Must be unique per tenant. |
Must match the regular expression |
applicationId |
String |
The applicationId of the Application, usually a fully qualified class name. Must be unique. |
|
shortName |
String |
Unique human-readable name. Only Alphanumeric and underscore allowed. Must be unique per tenant. |
Must match the regular expression |
owners |
String |
A valid URI of an existing group, must not be null. |
Must not be null |
description |
String |
A short summary describing the application |
Size must be between 0 and 200 inclusive |
visibility |
String |
Defines the visibility of this application. Possible values are |
|
applicationType |
String |
Application Axual type. Possible values are |
Must not be null |
type |
String |
Application software. Possible values: Java, Pega, SAP, DotNet, Bridge |
Curl request
$ curl 'http://api.example.com/applications' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"applicationId" : "nl.rabobank.test.application,nl.rabobank.test.application2",
"name" : "Test Application",
"shortName" : "test_app",
"description" : "This is a test application",
"applicationType" : "CUSTOM",
"type" : "Java",
"visibility" : "PRIVATE",
"owners" : "http://api.example.com/groups/514d4oit834841869644c2ad8b439997"
}'
HTTP request
POST /applications HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Content-Length: 349
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"applicationId" : "nl.rabobank.test.application,nl.rabobank.test.application2",
"name" : "Test Application",
"shortName" : "test_app",
"description" : "This is a test application",
"applicationType" : "CUSTOM",
"type" : "Java",
"visibility" : "PRIVATE",
"owners" : "http://api.example.com/groups/514d4oit834841869644c2ad8b439997"
}
HTTP response
HTTP/1.1 201 Created
Location: http://api.example.com/applications/b41b8a8d7eaa48a9b513ce21aadbfee6
Create Connector application
A POST
request is used to create a new connector application.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
name |
String |
The name of the Application. Must be unique per tenant. |
Must match the regular expression |
applicationId |
String |
The applicationId of the Application, usually a fully qualified class name. Must be unique. |
|
shortName |
String |
Unique human-readable name. Only Alphanumeric and underscore allowed. Must be unique per tenant. |
Must match the regular expression |
owners |
String |
The group id that describes the group details and must not be null. |
Must not be null |
description |
String |
A short summary describing the application |
Size must be between 0 and 200 inclusive |
visibility |
String |
Defines the visibility of this application. Possible values are |
|
applicationType |
String |
Application Axual type. Possible values are |
Must not be null |
applicationClass |
String |
Meaningful only when |
|
applicationClassVersion |
String |
Meaningful only when |
|
type |
String |
When |
Curl request
$ curl 'http://api.example.com/applications' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"applicationId" : "com.axual.turbulence.connector.application1",
"name" : "Test Connector Application",
"shortName" : "test_cnnt_app",
"description" : "This is a connector test application",
"applicationType" : "CONNECTOR",
"type" : "sink",
"applicationClass" : "io.axual.distributor.logger.MessageLogger",
"applicationClassVersion" : "1.0.0",
"visibility" : "PRIVATE",
"owners" : "http://api.example.com/groups/514d4oit834841869644c2ad8b439997"
}'
HTTP request
POST /applications HTTP/1.1
realm: rabo
Host: api.example.com
Content-Length: 469
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"applicationId" : "com.axual.turbulence.connector.application1",
"name" : "Test Connector Application",
"shortName" : "test_cnnt_app",
"description" : "This is a connector test application",
"applicationType" : "CONNECTOR",
"type" : "sink",
"applicationClass" : "io.axual.distributor.logger.MessageLogger",
"applicationClassVersion" : "1.0.0",
"visibility" : "PRIVATE",
"owners" : "http://api.example.com/groups/514d4oit834841869644c2ad8b439997"
}
HTTP response
HTTP/1.1 201 Created
Location: http://api.example.com/applications/b5391717ecef4491bcfc92ece3692011
Create Default application configuration
A PATCH
request is used to create a default configuration for a connector application.
Curl request
$ curl 'http://api.example.com/applications/dbc9e4670h1c4866deg78722e2930d2g' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"applicationDefaults" : {
"test.app.id" : "io.axual.connect.app.id"
}
}'
HTTP request
PATCH /applications/dbc9e4670h1c4866deg78722e2930d2g HTTP/1.1
realm: rabo
Content-Length: 81
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"applicationDefaults" : {
"test.app.id" : "io.axual.connect.app.id"
}
}
HTTP response
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Retrieve an application
The applications/{id}
resource is used to retrieve, update and delete individual application.
A GET
request will retrieve the details of an application.
HTTP request
GET /applications/5ffc4240fcdf4a479a16f2b0b12ab909 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1768
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"name" : "raboApplication1",
"shortName" : "rabo_app1",
"description" : null,
"applicationType" : "Custom",
"type" : "Java",
"applicationClass" : null,
"applicationClassVersion" : null,
"applicationDefaults" : {
"defaults_key4" : "defaults_value4"
},
"visibility" : "public",
"allApplicationIds" : [ "nl.rabobank.app1" ],
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"applicationId" : "nl.rabobank.app1",
"_embedded" : {
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"createApplicationPrincipal" : {
"href" : "..."
},
"createApplicationAccess" : {
"href" : "..."
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can edit this Application |
|
Existence of this link indicates that the currently authenticated user can delete this Application |
|
Existence of this link indicates that the currently authenticated user can create the ApplicationPrincipal for this Application |
|
Existence of this link indicates that the currently authenticated user can request consuming or producing streams for this Application |
Retrieve a connector/plugin config
The applications/{id}/config
resource is used to retrieve connector config using ConnectPluginInfo
when
the application doesn’t have an application default connector config defined.
A GET
request will retrieve the details of a connector config using ConnectPluginInfo
.
HTTP request
GET /applications/dbc9e4670h1c4866deg78722e2930d2g/config HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1746
{
"pluginConfigs" : [ {
"name" : "connector.class",
"type" : "STRING",
"required" : true,
"defaultValue" : null,
"importance" : "HIGH",
"documentation" : "Name or alias of the class for this connector. Must be a subclass of org.apache.kafka.connect.connector.Connector. If the connector is org.apache.kafka.connect.file.FileStreamSinkConnector, you can either specify this full name, or use \\\"FileStreamSink\\\" or \\\"FileStreamSinkConnector\\\" to make the configuration a bit shorter",
"providedValue" : null
}, {
"name" : "key.converter",
"type" : "CLASS",
"required" : false,
"defaultValue" : null,
"importance" : "LOW",
"documentation" : null,
"providedValue" : null
}, {
"name" : "logger.name",
"type" : "STRING",
"required" : true,
"defaultValue" : null,
"importance" : "HIGH",
"documentation" : "The name of the SLF4J Logger to write the messages",
"providedValue" : null
}, {
"name" : "name",
"type" : "STRING",
"required" : true,
"defaultValue" : null,
"importance" : "HIGH",
"documentation" : "Globally unique name to use for this connector.",
"providedValue" : null
}, {
"name" : "tasks.max",
"type" : "INT",
"required" : false,
"defaultValue" : null,
"importance" : null,
"documentation" : null,
"providedValue" : null
}, {
"name" : "transforms",
"type" : "LIST",
"required" : false,
"defaultValue" : "",
"importance" : "LOW",
"documentation" : "Aliases for the transformations to be applied to records.",
"providedValue" : null
} ],
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Links
Snippet links not found for operation::default-config-info-by-application-without-defaults
Retrieve an application default connector config
The applications/{id}/config
resource is used to retrieve application default connector config when available.
The defaultValue
values come from connector default configuration.
The providedValue
values come from application default configuration.
A GET
request will retrieve the details of an application default connector config combined with ConnectPluginInfo
.
HTTP request
GET /applications/ead8f4670h1c4866deg78722e2930e3f/config HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1965
{
"pluginConfigs" : [ {
"name" : "connector.class",
"type" : "STRING",
"required" : true,
"defaultValue" : null,
"importance" : "HIGH",
"documentation" : "Name or alias of the class for this connector. Must be a subclass of org.apache.kafka.connect.connector.Connector. If the connector is org.apache.kafka.connect.file.FileStreamSinkConnector, you can either specify this full name, or use \\\"FileStreamSink\\\" or \\\"FileStreamSinkConnector\\\" to make the configuration a bit shorter",
"providedValue" : null
}, {
"name" : "defaultskey2",
"type" : null,
"required" : false,
"defaultValue" : null,
"importance" : null,
"documentation" : null,
"providedValue" : "defaultsvalue2"
}, {
"name" : "key.converter",
"type" : "CLASS",
"required" : false,
"defaultValue" : null,
"importance" : "LOW",
"documentation" : null,
"providedValue" : null
}, {
"name" : "logger.name",
"type" : "STRING",
"required" : true,
"defaultValue" : null,
"importance" : "HIGH",
"documentation" : "The name of the SLF4J Logger to write the messages",
"providedValue" : null
}, {
"name" : "name",
"type" : "STRING",
"required" : true,
"defaultValue" : null,
"importance" : "HIGH",
"documentation" : "Globally unique name to use for this connector.",
"providedValue" : null
}, {
"name" : "tasks.max",
"type" : "INT",
"required" : false,
"defaultValue" : null,
"importance" : null,
"documentation" : null,
"providedValue" : null
}, {
"name" : "transforms",
"type" : "LIST",
"required" : false,
"defaultValue" : "",
"importance" : "LOW",
"documentation" : "Aliases for the transformations to be applied to records.",
"providedValue" : "defaulttransforms_value"
} ],
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Links
Snippet links not found for operation::default-config-info-by-application-with-defaults
Update an application
A PATCH
request is used to update an application. In the request, pass only the field that needs changing.
$ curl 'http://api.example.com/applications/5ffc4240fcdf4a479a16f2b0b12ab909' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"name" : "Updated name"
}'
PATCH /applications/5ffc4240fcdf4a479a16f2b0b12ab909 HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Content-Length: 29
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"name" : "Updated name"
}
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Search endpoints
/applications/search/findByName
Search for an application by exact name
.
Parameter | Description |
---|---|
|
Application name to search for |
GET /applications/search/findByName?name=raboApplication1 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 1078
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"applications" : [ {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/applications/search/findByNameContaining
Search for an application by name
containing search term.
Parameter | Description |
---|---|
|
Term to search within application name. |
GET /applications/search/findByNameContaining?name=app HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 16852
{
"_embedded" : {
"applications" : [ {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "39d82d7f34484b53ae1dd47ee8924502",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app3",
"visibility" : "private",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "39d82d7f34484b53ae1dd47ee8924512",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_priv_app3_2",
"visibility" : "private",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "f692ca5191764258b7257a6b2a7fb188",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_auto_app3",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "4cc380171afc4c898b6f6c02caccf451",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_auto_app4",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "aec9e4570f1c4866bef77722e2830d4b",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app5",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "fdc9e4570f1c4866bef77722e2830d5g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "dbc9e4670h1c4866deg78722e2930d2g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app7",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "ead8f4670h1c4866deg78722e2930e3f",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app8",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "fbe9f4670h1c4866deg78722e2931e4g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app9",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "ghi9f4670h1c4866deg78722e2931e4g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app10",
"visibility" : "private",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "lmk9f4670h1c4866deg78722e2931e5g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app11",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "ioi9f4670h1c4866deg78722e2921f5g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "ing_app2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "c2e98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2f98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination3",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831a74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination4",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831cc4ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination5",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e92e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831c74ff1beb09510d0bf7e17",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
} ]
},
"_links" : {
"first" : {
"href" : "..."
},
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"next" : {
"href" : "..."
},
"last" : {
"href" : "..."
},
"create" : {
"href" : "...",
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 25,
"totalPages" : 2,
"number" : 0
}
}
/applications/search/findByNameContaining
Search for an application by name
containing search term and order by a nested property.
Parameter | Description |
---|---|
|
Term to search within application name. |
|
Property to sort on and the direction. |
GET /applications/search/findByNameContaining?name=app&sort=owners.name%2Casc HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 16943
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"applications" : [ {
"type" : "Java",
"shortName" : "rabo_app_pagination3",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831a74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination4",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831cc4ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination5",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e92e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "ing_app2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "c2e98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2f98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination8",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98ef831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination7",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831c74ff1beb09510d0bf7377",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831c74ff1beb09510d0bf7e17",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination9",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831c74cf1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination10",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "a2e98e1831c74ff1beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app_pagination11",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "d2e98e1831c74ff6beb09510d0bf7e77",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app8",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "fbe9f4670h1c4866deg78722e2931e4g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app3",
"visibility" : "private",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "39d82d7f34484b53ae1dd47ee8924512",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "39d82d7f34484b53ae1dd47ee8924502",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app7",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "ead8f4670h1c4866deg78722e2930e3f",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "dbc9e4670h1c4866deg78722e2930d2g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app10",
"visibility" : "private",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "lmk9f4670h1c4866deg78722e2931e5g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "SINK",
"shortName" : "rabo_app11",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "ioi9f4670h1c4866deg78722e2921f5g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}, {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
} ]
},
"_links" : {
"first" : {
"href" : "..."
},
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"next" : {
"href" : "..."
},
"last" : {
"href" : "..."
},
"create" : {
"href" : "...",
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 25,
"totalPages" : 2,
"number" : 0
}
}
/applications/search/findByShortName
Search for an application by exact short_name
.
Parameter | Description |
---|---|
|
Application short name to search for |
GET /applications/search/findByShortName?short_name=rabo_app1 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 163
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"applications" : [ ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/applications/search/findByApplicationId
Search for an application by applicationId
containing search term.
Parameter | Description |
---|---|
|
Application Id to search for |
GET /applications/search/findByApplicationId?applicationId=nl.rabobank.app1 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1768
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"name" : "raboApplication1",
"shortName" : "rabo_app1",
"description" : null,
"applicationType" : "Custom",
"type" : "Java",
"applicationClass" : null,
"applicationClassVersion" : null,
"applicationDefaults" : {
"defaults_key4" : "defaults_value4"
},
"visibility" : "public",
"allApplicationIds" : [ "nl.rabobank.app1" ],
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"applicationId" : "nl.rabobank.app1",
"_embedded" : {
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"createApplicationPrincipal" : {
"href" : "..."
},
"createApplicationAccess" : {
"href" : "..."
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
Delete endpoints
Deleting application is a two step process a GET request to check the constraints followed by the DELETE request
Delete application constraints
A GET
request is used to get the constraints for deleting Application
.
$ curl 'http://api.example.com/applications/5ffc4240fcdf4a479a16f2b0b12ab909/deletion-constraints' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /applications/5ffc4240fcdf4a479a16f2b0b12ab909/deletion-constraints HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 84
Content-Type: application/json;charset=UTF-8
{
"canDelete" : false,
"activeGrantsCount" : 2,
"activeDeploymentsCount" : 0
}
Delete application
A DELETE
request is used to delete an Application
.
$ curl 'http://api.example.com/applications/fdc9e4570f1c4866bef77722e2830d5g' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /applications/fdc9e4570f1c4866bef77722e2830d5g HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
ApplicationPrincipals
An ApplicationPrincipal
is a security principal (certificate or comparable) that uniquely
authenticates an Application
on an Environment
.
The /application_principals
resource is used to create and list application principals.
ApplicationPrincipals Schema
The /application_principals
resource uses the following json-schema:
GET /profile/application_principals HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 1736
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Application principal",
"properties" : {
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
},
"privateKeyUploaded" : {
"title" : "Private key uploaded",
"readOnly" : true,
"type" : "boolean"
},
"applicationPem" : {
"title" : "Application pem",
"readOnly" : false,
"type" : "string"
},
"principal" : {
"title" : "Principal",
"readOnly" : false,
"type" : "string"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"environment" : {
"title" : "Environment",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"principalChain" : {
"title" : "Principal chain",
"readOnly" : false,
"type" : "string"
},
"application" : {
"title" : "Application",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"privateKeyPem" : {
"title" : "Private key pem",
"readOnly" : true,
"type" : "string"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"expiresOn" : {
"title" : "Expires on",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
}
},
"definitions" : { },
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all application principals
HTTP method GET
is disabled for /application_principals
. Refer to search endpoints to find one
or more ApplicationPrincipal
for an Application
or an Environment
.
Create Application Principal
A POST
request is used to create a new ApplicationPrincipal
. The request should include reference to
a valid existing application and environment.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
[].principal |
String |
The principal of an Application for an Environment |
|
[].application |
String |
A valid URI of an existing application |
|
[].environment |
String |
A valid URI of an existing environment |
Curl request
$ curl 'http://api.example.com/application_principals/' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '[ {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
} ]'
HTTP request
POST /application_principals/ HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
Content-Length: 4098
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
[ {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
} ]
HTTP response
HTTP/1.1 201 Created
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 80
"http://api.example.com/application_principals/5328bb080dfb4cb59a85938a5a49810f"
Create Application Principal with Private key
A POST
request is used to create a new ApplicationPrincipal
with a private key. This is used for connector type of applications.
The request should include reference to
a valid existing application and environment.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
[].principal |
String |
The principal of an Application for an Environment |
|
[].privateKey |
String |
The private key of an Application for an Environment |
|
[].application |
String |
A valid URI of an existing application |
|
[].environment |
String |
A valid URI of an existing environment |
Curl request
$ curl 'http://api.example.com/application_principals/' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '[ {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/dbc9e4670h1c4866deg78722e2930d2g",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
"privateKey" : "-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQCdlpBfpoMac2y5\nrcM2VX9EjwGaO+kVqo5Y2ZZBiK97rDwFNyK6r4R5VQzpIZxJPhgIWy40VCPFgKIY\nzMUGnWQFY5j/HbnkxWKT/OVxJmBIiqvbOKTJH/130X1ARCtRc+2G7dTAtdYm76K1\n+I4oNvlrZJjnXYxdpQM2e2Jl1Kgv0jNXe8o7E2JvJPct2Zx/gW8GkXdwf79IWNaL\ns27u7rGpAOi2b+7dLrVdoWV6dMfAe817Mu1JTvFUWgU4aT4LQ5N8sVdwR5E+6NOk\nMLXk/B4HCWfCaaPtCOYlgjoSrV0nklbmuscs7Wpipm1/IbeXU+wanFYc0kZMjI2N\ntDNyN0IJkFJ0RWcgIBTqbhEbfcReSMTE96uUSEJzDwPvTetYHx+AFzWffAz81ndh\newfFMhwFNgV4gDOzewYMpnhyPHOS0UgBRDlogyP29z3l63xMTwSJWkMNsvRKmmZJ\nrCgD79T6zHu3weH2b8ecY0AhQu6PgJZiq+Azb/im1J2lB+XMIp7genUAJ9y46z87\nmyPQ+Gix04cqgsWSL4F/7AvkjzdWk2cMe4Rn7M0Xzcl1xYtx3mFZZn4Rxb0Y7chN\nQq8HApMpYH3AcJ3K4BROPpSsXVfg9gy9XmsrTzWCC558kf2H1GUFbL7kkNTaPue3\nUmuXgIzW/vct+0IqYILpsXzA9+XfgwIDAQABAoICAA3yTUSpz+B/ZpfoMOaWGnVO\n0q17r90jAwYJ+6pBFoazb3xmrMQo1GiIhmP7fYFd5XKX3zbyW1gXUkEvniA/vaJc\ndiXd053Tei3uq7+fzdWdsCfuk2bZVe1MtPEDF3JV+CeA1NtZPGKlwpioLqyQcPJ4\nLLANL2b6O5aOxN6OO3Q//hs38WXZCVUcyGNeZuNB6TmDljZ2l88nTZV/g8nRhheW\n5QGAVntsrtBigECeJS97xWupziY2vlTgwqWDauJEUMEwULS3ILuYj2JwjSh+x4mH\n447pGoDX0MZxCAKvJRdjdB1nWkk3mbqxT+94ZG8YFkUkoNpcIayUo9JuqD7rdQSP\n/PyxYgy7jmKh0flINuqdgwVZpz/8hjrGOfufYPrNfAZqjan1zt8hDQTyTI0V8Ngc\nXzSWMVddXObPyOrdlBbJRHvhQ5lpIh/TKqAURCKptpSarLdcwlQqiru6leDCNAwv\nAUPQ/212MrSl59p5T9RdvxikOfhFDalYcl3xywSjZowwRuSzgYXpRr8STKxxzlGB\nvO4rQYHPzdP3JvytFqPghSNSVt+M6qu1ph6ou70YHSpVuocvB5+6iHDDgr0vrSXE\nawm4EOSEI+J9F5/YkIE1UtOI6Aj5HHguAWJXBj0ZGiv/bpAVNr+eTx1Ga9qM8nx4\n/2LxlF0urRWZw+qfXL3BAoIBAQDaI0L8k460PSUVF/dL5jwqvSPZey+piHJGWfBr\n5wWslDYn/ABJYKj3NYFF4WDvnabXa8qTmxGOvMuwAwpkp3iEY7MB651tJ26CSCQ4\nYSYwYve/uuhlfQhtFiEihbj9jPebWJK1mQTU+SMOrxWU6UfkFTtsBqnB1ewAorWg\nAbqICUoW4Up10GOAsKRaRu6vhbReTRjM6/G2d3WlFiVsroVPbJeAAWCM7StQaio+\nUKfDJwv8TTC6nPLiYjXfwCLhMSmmD89rreWh8MvVefNTQ4sHcdLJe7reWYxYgOQ3\nXokPFDkbUOqZ1vwahDADYzzI0Nc0YgZW5vR8aYJkhnr7IzUlAoIBAQC48Nb2QXdl\ns9WUzCkKqhonUJhv5+85HIzE7EwnBaNgPAV+whLc1RHYXYGbIXmwZnGPW9gO8E9a\nnoVCCOLKEofhDQnbOH0xucESsGe1CeTj9gjlr0ASxqp7C2EnDBOBbd2g1KGX+IER\ny4YD3D1qeegG/Sntdh4G2x7W/omHRkz+uZ9EuJDd6VBZZwckGJ0kv4iUBAxn1BtL\ngTkFJwManqrQd/4Ceh4osUlXgmpMgjZWzXA+i2jrZh4uWTvvUFEh/GsAqVhXcrHS\nEkSTB8pVRmXq5WIefPNkQqfoXX3aa0KYgPK8TpJWu/oqzPLCzP12ioCFNDsFIx8o\ngFIqSniwhKWHAoIBACdMmQHmF5yTM34UXkI3TXmpr667yb9yTJwuEeluqpAH96XG\necq+dlJrOkn7q7ofnfJLgiiLlGMx0kR4l8PAhC7dw19CMo96vicMljHuFrI68kWB\nh+LY3s7AYOHWU5iib+11zKCY28z+wXkgw/Oa/4+w3467uJOqVaVbqvsTtKZTfhyX\nJBILpBGIQWPeSZwnq3Id06z/iQGFjhVa4w0sd+nyN20hUmKxS89mAQxO/ZpkC329\n7lyAcCWm6evQsrf9YnJ/gK/2mVtOhXqFSPgkQATsVbxk5Sqv2WAMgJEVH/4ud4db\nUZi7qZmhXQEPPOE09sCCNIAthbhwTcSMkdVy510CggEAQr3PpdEcaJyMsIU5LnsS\nsyt3x7LY9zBhcNOh69cyDZG7nfIl4oIWTZH5KuXax5lA1C6d+04oJRjeGGWiirBD\nTylobC+npqFVlwwIcSIf81CgB1vGcMA3V+5UYkYOaAAhImB57KEm2ygqtgvuMhXK\ncXM9hU/CKFE9gPMc6K+rK6YLXz6IMT143Lq8rf8f/toMTPZlD7dRHl+FF2Hr0dh+\n5nrXNUeiyKaqRCVxfSjkuVCseDXRaFpS/AECCyxeCzjP2M5EblKa76feDX2bPEkK\nkMm1LjGDmKQhek77Ey7wOp8WenSUhS6TaozJ8xkNQ5FaLjgaMJFrNi+Q92gmw/Uq\n0wKCAQA7eo+Wz6VBg7i//jrVaZl7MqmuqpaID6vXpAbmjU5BGEoOzxK9cIS0AMsL\npY5QzwQb+y9S35qpkaXsgndlyvdMBq58e5NN+Z8WEULuO85CW3rD6e1rWlXx6M3Y\nLFSKJQUjQ63FQJ+LX8nHylDkV/9T/sCFiYa1zv3AW2c7rz8eqXP9MabptpMqRfwZ\nUVlECszO2xb3zwg7WEnZu+DBNKsTIrKT8w/h3KvvWRbORpDOYcjW64V2NnjBP6Pc\nCUE2QsYVDOG/UDXjNanf3DnMCVVMJn06p+HQCDlATFnScu1qo++A7Dj4HTWmDtiU\nDsbI3yNePnNb5x1AZjii68cy9pLG\n-----END PRIVATE KEY-----"
} ]'
HTTP request
POST /application_principals/ HTTP/1.1
realm: rabo
Content-Length: 7437
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
[ {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/dbc9e4670h1c4866deg78722e2930d2g",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
"privateKey" : "-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQCdlpBfpoMac2y5\nrcM2VX9EjwGaO+kVqo5Y2ZZBiK97rDwFNyK6r4R5VQzpIZxJPhgIWy40VCPFgKIY\nzMUGnWQFY5j/HbnkxWKT/OVxJmBIiqvbOKTJH/130X1ARCtRc+2G7dTAtdYm76K1\n+I4oNvlrZJjnXYxdpQM2e2Jl1Kgv0jNXe8o7E2JvJPct2Zx/gW8GkXdwf79IWNaL\ns27u7rGpAOi2b+7dLrVdoWV6dMfAe817Mu1JTvFUWgU4aT4LQ5N8sVdwR5E+6NOk\nMLXk/B4HCWfCaaPtCOYlgjoSrV0nklbmuscs7Wpipm1/IbeXU+wanFYc0kZMjI2N\ntDNyN0IJkFJ0RWcgIBTqbhEbfcReSMTE96uUSEJzDwPvTetYHx+AFzWffAz81ndh\newfFMhwFNgV4gDOzewYMpnhyPHOS0UgBRDlogyP29z3l63xMTwSJWkMNsvRKmmZJ\nrCgD79T6zHu3weH2b8ecY0AhQu6PgJZiq+Azb/im1J2lB+XMIp7genUAJ9y46z87\nmyPQ+Gix04cqgsWSL4F/7AvkjzdWk2cMe4Rn7M0Xzcl1xYtx3mFZZn4Rxb0Y7chN\nQq8HApMpYH3AcJ3K4BROPpSsXVfg9gy9XmsrTzWCC558kf2H1GUFbL7kkNTaPue3\nUmuXgIzW/vct+0IqYILpsXzA9+XfgwIDAQABAoICAA3yTUSpz+B/ZpfoMOaWGnVO\n0q17r90jAwYJ+6pBFoazb3xmrMQo1GiIhmP7fYFd5XKX3zbyW1gXUkEvniA/vaJc\ndiXd053Tei3uq7+fzdWdsCfuk2bZVe1MtPEDF3JV+CeA1NtZPGKlwpioLqyQcPJ4\nLLANL2b6O5aOxN6OO3Q//hs38WXZCVUcyGNeZuNB6TmDljZ2l88nTZV/g8nRhheW\n5QGAVntsrtBigECeJS97xWupziY2vlTgwqWDauJEUMEwULS3ILuYj2JwjSh+x4mH\n447pGoDX0MZxCAKvJRdjdB1nWkk3mbqxT+94ZG8YFkUkoNpcIayUo9JuqD7rdQSP\n/PyxYgy7jmKh0flINuqdgwVZpz/8hjrGOfufYPrNfAZqjan1zt8hDQTyTI0V8Ngc\nXzSWMVddXObPyOrdlBbJRHvhQ5lpIh/TKqAURCKptpSarLdcwlQqiru6leDCNAwv\nAUPQ/212MrSl59p5T9RdvxikOfhFDalYcl3xywSjZowwRuSzgYXpRr8STKxxzlGB\nvO4rQYHPzdP3JvytFqPghSNSVt+M6qu1ph6ou70YHSpVuocvB5+6iHDDgr0vrSXE\nawm4EOSEI+J9F5/YkIE1UtOI6Aj5HHguAWJXBj0ZGiv/bpAVNr+eTx1Ga9qM8nx4\n/2LxlF0urRWZw+qfXL3BAoIBAQDaI0L8k460PSUVF/dL5jwqvSPZey+piHJGWfBr\n5wWslDYn/ABJYKj3NYFF4WDvnabXa8qTmxGOvMuwAwpkp3iEY7MB651tJ26CSCQ4\nYSYwYve/uuhlfQhtFiEihbj9jPebWJK1mQTU+SMOrxWU6UfkFTtsBqnB1ewAorWg\nAbqICUoW4Up10GOAsKRaRu6vhbReTRjM6/G2d3WlFiVsroVPbJeAAWCM7StQaio+\nUKfDJwv8TTC6nPLiYjXfwCLhMSmmD89rreWh8MvVefNTQ4sHcdLJe7reWYxYgOQ3\nXokPFDkbUOqZ1vwahDADYzzI0Nc0YgZW5vR8aYJkhnr7IzUlAoIBAQC48Nb2QXdl\ns9WUzCkKqhonUJhv5+85HIzE7EwnBaNgPAV+whLc1RHYXYGbIXmwZnGPW9gO8E9a\nnoVCCOLKEofhDQnbOH0xucESsGe1CeTj9gjlr0ASxqp7C2EnDBOBbd2g1KGX+IER\ny4YD3D1qeegG/Sntdh4G2x7W/omHRkz+uZ9EuJDd6VBZZwckGJ0kv4iUBAxn1BtL\ngTkFJwManqrQd/4Ceh4osUlXgmpMgjZWzXA+i2jrZh4uWTvvUFEh/GsAqVhXcrHS\nEkSTB8pVRmXq5WIefPNkQqfoXX3aa0KYgPK8TpJWu/oqzPLCzP12ioCFNDsFIx8o\ngFIqSniwhKWHAoIBACdMmQHmF5yTM34UXkI3TXmpr667yb9yTJwuEeluqpAH96XG\necq+dlJrOkn7q7ofnfJLgiiLlGMx0kR4l8PAhC7dw19CMo96vicMljHuFrI68kWB\nh+LY3s7AYOHWU5iib+11zKCY28z+wXkgw/Oa/4+w3467uJOqVaVbqvsTtKZTfhyX\nJBILpBGIQWPeSZwnq3Id06z/iQGFjhVa4w0sd+nyN20hUmKxS89mAQxO/ZpkC329\n7lyAcCWm6evQsrf9YnJ/gK/2mVtOhXqFSPgkQATsVbxk5Sqv2WAMgJEVH/4ud4db\nUZi7qZmhXQEPPOE09sCCNIAthbhwTcSMkdVy510CggEAQr3PpdEcaJyMsIU5LnsS\nsyt3x7LY9zBhcNOh69cyDZG7nfIl4oIWTZH5KuXax5lA1C6d+04oJRjeGGWiirBD\nTylobC+npqFVlwwIcSIf81CgB1vGcMA3V+5UYkYOaAAhImB57KEm2ygqtgvuMhXK\ncXM9hU/CKFE9gPMc6K+rK6YLXz6IMT143Lq8rf8f/toMTPZlD7dRHl+FF2Hr0dh+\n5nrXNUeiyKaqRCVxfSjkuVCseDXRaFpS/AECCyxeCzjP2M5EblKa76feDX2bPEkK\nkMm1LjGDmKQhek77Ey7wOp8WenSUhS6TaozJ8xkNQ5FaLjgaMJFrNi+Q92gmw/Uq\n0wKCAQA7eo+Wz6VBg7i//jrVaZl7MqmuqpaID6vXpAbmjU5BGEoOzxK9cIS0AMsL\npY5QzwQb+y9S35qpkaXsgndlyvdMBq58e5NN+Z8WEULuO85CW3rD6e1rWlXx6M3Y\nLFSKJQUjQ63FQJ+LX8nHylDkV/9T/sCFiYa1zv3AW2c7rz8eqXP9MabptpMqRfwZ\nUVlECszO2xb3zwg7WEnZu+DBNKsTIrKT8w/h3KvvWRbORpDOYcjW64V2NnjBP6Pc\nCUE2QsYVDOG/UDXjNanf3DnMCVVMJn06p+HQCDlATFnScu1qo++A7Dj4HTWmDtiU\nDsbI3yNePnNb5x1AZjii68cy9pLG\n-----END PRIVATE KEY-----"
} ]
HTTP response
HTTP/1.1 201 Created
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 80
"http://api.example.com/application_principals/f1176e987a504a75b3ca16f5b28b2400"
Create Multiple Application Principals
A POST
request is used to create multiple ApplicationPrincipal
. The request should include references to
a valid existing application and environment.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
[].principal |
String |
The principal of an Application for an Environment |
|
[].application |
String |
A valid URI of an existing application |
|
[].environment |
String |
A valid URI of an existing environment |
Curl request
$ curl 'http://api.example.com/application_principals/' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '[ {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}, {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}, {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
} ]'
HTTP request
POST /application_principals/ HTTP/1.1
Content-Length: 12290
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
[ {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}, {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}, {
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
} ]
HTTP response
HTTP/1.1 201 Created
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 238
"http://api.example.com/application_principals/5a697572295c4199ad572c9f23180f5e,http://api.example.com/application_principals/125fb105ac704eb1aa7d28a1aa900ee4,http://api.example.com/application_principals/02eb74a6f39e42ec86b34d698c407783"
Retrieve application principal
The application_principals/{id}
resource is used to retrieve a single principal of an application
for an environment.
A GET
request will retrieve the details of a ApplicationPrincipal
.
HTTP request
GET /application_principals/1e9ee6ce053c46b0932358c8503a26fd HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2542
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"principal" : "principal 1 test",
"applicationPem" : "principal 1 test",
"principalChain" : null,
"privateKeyPem" : null,
"privateKeyUploaded" : false,
"expiresOn" : null,
"uid" : "1e9ee6ce053c46b0932358c8503a26fd",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationPrincipal" : {
"href" : "...",
"title" : "A principal for application"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can delete this ApplicationPrincipal |
Update application principal
A PATCH
request is used to update a ApplicationPrincipal
. Only principal
field can be modified.
If application or environment needs to be updated, delete the ApplicationPrincipal
and create a new one.
$ curl 'http://api.example.com/application_principals/1e9ee6ce053c46b0932358c8503a26fd' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\n-----END CERTIFICATE-----\n"
}'
PATCH /application_principals/1e9ee6ce053c46b0932358c8503a26fd HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Content-Length: 1898
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"principal" : "-----BEGIN CERTIFICATE-----\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\n-----END CERTIFICATE-----\n"
}
HTTP/1.1 204 No Content
Delete application principal
A DELETE
request is used to delete an ApplicationPrincipal
.
$ curl 'http://api.example.com/application_principals/1e9ee6ce053c46b0932358c8503a26fd' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /application_principals/1e9ee6ce053c46b0932358c8503a26fd HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Validate application principal
Validates the provided application_principal pem’s content for validity.
POST /application_principals/validate HTTP/1.1
realm: rabo
Content-Length: 4008
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"contents" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"environment" : "https://api.example.com/api/environments/047ab08009fe4da8be6905b55552ab52"
}
HTTP/1.1 204 No Content
Validate application principal’s Private Key
Validates the provided application_principal’s private key.
POST /application_principals/validate_private_key HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Content-Length: 7255
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"certificate" : "-----BEGIN CERTIFICATE-----\nMIIFhjCCA26gAwIBAgICECwwDQYJKoZIhvcNAQELBQAwKzEpMCcGA1UEAwwgQXh1\nYWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcNMTkwNjEzMTQwNTMyWhcN\nMjExMTI5MTQwNTMyWjBjMQswCQYDVQQGEwJOTDEQMA4GA1UECAwHVXRyZWNodDEQ\nMA4GA1UEBwwHVXRyZWNodDEOMAwGA1UECgwFQXh1YWwxDjAMBgNVBAsMBUF4dWFs\nMRAwDgYDVQQDDAd0ZXN0IENOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnZaQX6aDGnNsua3DNlV/RI8BmjvpFaqOWNmWQYive6w8BTciuq+EeVUM6SGc\nST4YCFsuNFQjxYCiGMzFBp1kBWOY/x255MVik/zlcSZgSIqr2zikyR/9d9F9QEQr\nUXPthu3UwLXWJu+itfiOKDb5a2SY512MXaUDNntiZdSoL9IzV3vKOxNibyT3Ldmc\nf4FvBpF3cH+/SFjWi7Nu7u6xqQDotm/u3S61XaFlenTHwHvNezLtSU7xVFoFOGk+\nC0OTfLFXcEeRPujTpDC15PweBwlnwmmj7QjmJYI6Eq1dJ5JW5rrHLO1qYqZtfyG3\nl1PsGpxWHNJGTIyNjbQzcjdCCZBSdEVnICAU6m4RG33EXkjExPerlEhCcw8D703r\nWB8fgBc1n3wM/NZ3YXsHxTIcBTYFeIAzs3sGDKZ4cjxzktFIAUQ5aIMj9vc95et8\nTE8EiVpDDbL0SppmSawoA+/U+sx7t8Hh9m/HnGNAIULuj4CWYqvgM2/4ptSdpQfl\nzCKe4Hp1ACfcuOs/O5sj0PhosdOHKoLFki+Bf+wL5I83VpNnDHuEZ+zNF83JdcWL\ncd5hWWZ+EcW9GO3ITUKvBwKTKWB9wHCdyuAUTj6UrF1X4PYMvV5rK081gguefJH9\nh9RlBWy+5JDU2j7nt1Jrl4CM1v73LftCKmCC6bF8wPfl34MCAwEAAaN8MHowCQYD\nVR0TBAIwADAdBgNVHQ4EFgQUbFnI40k82TldvwpXAmngw+Gy4OYwHwYDVR0jBBgw\nFoAUa9IpV4tSNiwFCsZXuRp0eKwTH2YwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW\nMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAlMAVbb+M\nKx6ej6boH27b5fSZGCiXEanQ0u8uO1DeLJsagYwsb9EsCLQpVc5+M+rhMk++yVvr\n2Yb+UkTWfWcUwTcfLk3TEYe8X/8zqY+uDJOumNpSIgyF0kPeQ9KGNjaCZLa87Npb\n0dvXIabohJlEMGJt2/cAK19keC5VbxwKeSk95RUiSwgE8K4DbtyFUIIy8a1y+Mwu\nvlfIz/FVgQWlWjSZ0NUx7/oKgznDg5oRjiuD6yYM084soiW3RgxGQ/sxqUXJyc++\nFU3xwO3mVX1tjry/d42KRSxsLpM2+jAXawwzRWFjuFUExl1i1OgaGtU33MRo6siO\n0BPal3eBC5I7rGb8GOuYQmO5QLPpj8+sxCzqzKQOZ9ATLvdjM6v9EiRp5nuTXFh4\nV07qQ4hxs4KeRz9Oig5VpnHQ8/SGWFPV2TgEnPr3Lu6knNjvI8O9wwo1mF/Q3yUc\nHE1YdLJ9ctJ2KHbsPpWDO4Zk7+6LejkbscYzEOA2pUlQzpv1rZmOQcnhnhKHlppK\ni5ogPiczSIdmOqQ1jQNS7hzdWZCxpGdjsXtVrYRFUDRv9vqHieBSzuh/GI/PvW7d\nPNRKkMlItv+C4UczOBM1y3kMsHwFSvFfC++TBlA4PkSmtpgnMAXePUlck6H8irtD\naqeURSylqc7U1W1KbsDpI97UCxbVZnFPMhE=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UEAwwVQXh1\nYWwgRHVtbXkgUm9vdCAyMDE4MB4XDTE4MDUyOTExMDEzNFoXDTI4MDUyNjExMDEz\nNFowKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEw\nggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9uOuzJekmeo3hl8fjQlKS\nHApS3llcliq1YrXpkMbHAA9StHaMHPW+Dzr2/+cdfBAmN3sujCY8Paq15QI+TDOq\nKA5SByCBQKXx2qulBPcZs3mDMt+KxAaeWfwR4Nj0NNKbmw2HjDddo77joeVOuOX2\n4o1wXzmAAolVMIcRYA11EMWNUtYrHCzBa7RfYht2G5dE69ckrgfw1Nxs01Sbg+xP\nsK9aK/LHPUalYZNY+76x7vabEpzaPfpyKzDTWA20SPk0WfTf9/+K3o+urzDG8O/q\nw9xbBOzWohGmRyA/z841p1SD7inpZcyO/KeW1yTP2WyFxADwUrv2mEYXnma/Gdna\nG62IQYk/UMex9W8pT6tfwrg/36sSwr88yPR5dJxzjHUE+w/rYG3k+K+EqvZ5qOC5\n32AJ9BS2nbNuGpmRU1qoMCwpL7B2E/CKJLIdFcf/qmcnWJEXo+u34+fQZg8XaDCI\nXhUqAHz6YkjCiFGd/JwL1IqsfxFsV9wHTUbW2AumglU65ZrjhXrrzE7Hk9ng1spJ\ndOwfBihBNjnr0mKHY9leJ3chJ9HQ55/fEgcRNrj8EC69QCeAtpY5yOAjKpA03UvF\ngrDt8CIyIehNUwTXIhQSHZU4eZ0rzWf0vvMbhL2FvKtphbpnNKoXeNLv2IMZpT4B\nVwsqLqaIkl/I4FPpYBoSYwIDAQABo2YwZDAdBgNVHQ4EFgQUa9IpV4tSNiwFCsZX\nuRp0eKwTH2YwHwYDVR0jBBgwFoAUdKOPDqSFQ6Bfk0I/asBkByt5gsUwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB\nAKoNIqiOdjlUBNg7cvR9Su4KgGrsZf78pG1H2MlNxJjFM/80EiWEfze/EG2MLxFq\n8vToIHDjb0kVetYpdmfHNXTTlaaroBlXwyUYToPzQ985qr3LD8RhYZFAsiZCTtpJ\n4FT6sh/mccTyx8G8+ZS6mn/le2WPj/t6beNLgbdl5n8fghdQcmT/TqGXE50UftWt\nHSx3fsq2aKuNdVzhKzTin50IbiE9DV1dKo6B+ipOy/Dz5GMv3Z/3ntLTvxabCMOl\n7s7WsUE7VPABRSifUS80Z9Ai38faLSu+Ouzx40ceXwvlFQtJ2LYQ8Ru5Q63k2wB3\nEOE6cgAhiYExrz3fDDtUkui9vIfWfTPMnXR7xQ8YqK4Qqld2ESxvMQU2jzbZKSf+\n3sWnPvN4HTg0cfysmOdLGZwf3u8A9tMtxhUEtxUx7r76M4ekSKdNv1Nf5u5N/h7b\nAbEqSp1XADTxkE448i7hNJzn2Ce6JtFya231Ni0xyYKQIajP18jNypAw1eABYFkN\n53vQTUfqcbtcrCios1xRdDqfgkYaKZv7p63aoObFTf/mmG7sFjGAEPQscagOukwN\nwnkjCVifVbk5qJUaUWSLeYziI+HYkEA9P/h4o83nbf0YgBtOFoc0XWKmKagHifZN\nSEJ9kRCWzYaL2ChiL6jHGh26WT/hbNKeAlcxPnT4u/l1\n-----END CERTIFICATE-----\n",
"privateKey" : "-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQCdlpBfpoMac2y5\nrcM2VX9EjwGaO+kVqo5Y2ZZBiK97rDwFNyK6r4R5VQzpIZxJPhgIWy40VCPFgKIY\nzMUGnWQFY5j/HbnkxWKT/OVxJmBIiqvbOKTJH/130X1ARCtRc+2G7dTAtdYm76K1\n+I4oNvlrZJjnXYxdpQM2e2Jl1Kgv0jNXe8o7E2JvJPct2Zx/gW8GkXdwf79IWNaL\ns27u7rGpAOi2b+7dLrVdoWV6dMfAe817Mu1JTvFUWgU4aT4LQ5N8sVdwR5E+6NOk\nMLXk/B4HCWfCaaPtCOYlgjoSrV0nklbmuscs7Wpipm1/IbeXU+wanFYc0kZMjI2N\ntDNyN0IJkFJ0RWcgIBTqbhEbfcReSMTE96uUSEJzDwPvTetYHx+AFzWffAz81ndh\newfFMhwFNgV4gDOzewYMpnhyPHOS0UgBRDlogyP29z3l63xMTwSJWkMNsvRKmmZJ\nrCgD79T6zHu3weH2b8ecY0AhQu6PgJZiq+Azb/im1J2lB+XMIp7genUAJ9y46z87\nmyPQ+Gix04cqgsWSL4F/7AvkjzdWk2cMe4Rn7M0Xzcl1xYtx3mFZZn4Rxb0Y7chN\nQq8HApMpYH3AcJ3K4BROPpSsXVfg9gy9XmsrTzWCC558kf2H1GUFbL7kkNTaPue3\nUmuXgIzW/vct+0IqYILpsXzA9+XfgwIDAQABAoICAA3yTUSpz+B/ZpfoMOaWGnVO\n0q17r90jAwYJ+6pBFoazb3xmrMQo1GiIhmP7fYFd5XKX3zbyW1gXUkEvniA/vaJc\ndiXd053Tei3uq7+fzdWdsCfuk2bZVe1MtPEDF3JV+CeA1NtZPGKlwpioLqyQcPJ4\nLLANL2b6O5aOxN6OO3Q//hs38WXZCVUcyGNeZuNB6TmDljZ2l88nTZV/g8nRhheW\n5QGAVntsrtBigECeJS97xWupziY2vlTgwqWDauJEUMEwULS3ILuYj2JwjSh+x4mH\n447pGoDX0MZxCAKvJRdjdB1nWkk3mbqxT+94ZG8YFkUkoNpcIayUo9JuqD7rdQSP\n/PyxYgy7jmKh0flINuqdgwVZpz/8hjrGOfufYPrNfAZqjan1zt8hDQTyTI0V8Ngc\nXzSWMVddXObPyOrdlBbJRHvhQ5lpIh/TKqAURCKptpSarLdcwlQqiru6leDCNAwv\nAUPQ/212MrSl59p5T9RdvxikOfhFDalYcl3xywSjZowwRuSzgYXpRr8STKxxzlGB\nvO4rQYHPzdP3JvytFqPghSNSVt+M6qu1ph6ou70YHSpVuocvB5+6iHDDgr0vrSXE\nawm4EOSEI+J9F5/YkIE1UtOI6Aj5HHguAWJXBj0ZGiv/bpAVNr+eTx1Ga9qM8nx4\n/2LxlF0urRWZw+qfXL3BAoIBAQDaI0L8k460PSUVF/dL5jwqvSPZey+piHJGWfBr\n5wWslDYn/ABJYKj3NYFF4WDvnabXa8qTmxGOvMuwAwpkp3iEY7MB651tJ26CSCQ4\nYSYwYve/uuhlfQhtFiEihbj9jPebWJK1mQTU+SMOrxWU6UfkFTtsBqnB1ewAorWg\nAbqICUoW4Up10GOAsKRaRu6vhbReTRjM6/G2d3WlFiVsroVPbJeAAWCM7StQaio+\nUKfDJwv8TTC6nPLiYjXfwCLhMSmmD89rreWh8MvVefNTQ4sHcdLJe7reWYxYgOQ3\nXokPFDkbUOqZ1vwahDADYzzI0Nc0YgZW5vR8aYJkhnr7IzUlAoIBAQC48Nb2QXdl\ns9WUzCkKqhonUJhv5+85HIzE7EwnBaNgPAV+whLc1RHYXYGbIXmwZnGPW9gO8E9a\nnoVCCOLKEofhDQnbOH0xucESsGe1CeTj9gjlr0ASxqp7C2EnDBOBbd2g1KGX+IER\ny4YD3D1qeegG/Sntdh4G2x7W/omHRkz+uZ9EuJDd6VBZZwckGJ0kv4iUBAxn1BtL\ngTkFJwManqrQd/4Ceh4osUlXgmpMgjZWzXA+i2jrZh4uWTvvUFEh/GsAqVhXcrHS\nEkSTB8pVRmXq5WIefPNkQqfoXX3aa0KYgPK8TpJWu/oqzPLCzP12ioCFNDsFIx8o\ngFIqSniwhKWHAoIBACdMmQHmF5yTM34UXkI3TXmpr667yb9yTJwuEeluqpAH96XG\necq+dlJrOkn7q7ofnfJLgiiLlGMx0kR4l8PAhC7dw19CMo96vicMljHuFrI68kWB\nh+LY3s7AYOHWU5iib+11zKCY28z+wXkgw/Oa/4+w3467uJOqVaVbqvsTtKZTfhyX\nJBILpBGIQWPeSZwnq3Id06z/iQGFjhVa4w0sd+nyN20hUmKxS89mAQxO/ZpkC329\n7lyAcCWm6evQsrf9YnJ/gK/2mVtOhXqFSPgkQATsVbxk5Sqv2WAMgJEVH/4ud4db\nUZi7qZmhXQEPPOE09sCCNIAthbhwTcSMkdVy510CggEAQr3PpdEcaJyMsIU5LnsS\nsyt3x7LY9zBhcNOh69cyDZG7nfIl4oIWTZH5KuXax5lA1C6d+04oJRjeGGWiirBD\nTylobC+npqFVlwwIcSIf81CgB1vGcMA3V+5UYkYOaAAhImB57KEm2ygqtgvuMhXK\ncXM9hU/CKFE9gPMc6K+rK6YLXz6IMT143Lq8rf8f/toMTPZlD7dRHl+FF2Hr0dh+\n5nrXNUeiyKaqRCVxfSjkuVCseDXRaFpS/AECCyxeCzjP2M5EblKa76feDX2bPEkK\nkMm1LjGDmKQhek77Ey7wOp8WenSUhS6TaozJ8xkNQ5FaLjgaMJFrNi+Q92gmw/Uq\n0wKCAQA7eo+Wz6VBg7i//jrVaZl7MqmuqpaID6vXpAbmjU5BGEoOzxK9cIS0AMsL\npY5QzwQb+y9S35qpkaXsgndlyvdMBq58e5NN+Z8WEULuO85CW3rD6e1rWlXx6M3Y\nLFSKJQUjQ63FQJ+LX8nHylDkV/9T/sCFiYa1zv3AW2c7rz8eqXP9MabptpMqRfwZ\nUVlECszO2xb3zwg7WEnZu+DBNKsTIrKT8w/h3KvvWRbORpDOYcjW64V2NnjBP6Pc\nCUE2QsYVDOG/UDXjNanf3DnMCVVMJn06p+HQCDlATFnScu1qo++A7Dj4HTWmDtiU\nDsbI3yNePnNb5x1AZjii68cy9pLG\n-----END PRIVATE KEY-----"
}
HTTP/1.1 204 No Content
ApplicationPrincipals search endpoints
/application_principals/search/findByApplication
Returns all application principals for given Application
.
Parameter | Description |
---|---|
|
A valid URI of an existing Application |
GET /application_principals/search/findByApplication?application=http%3A%2F%2Flocalhost%2Fapplications%2F5ffc4240fcdf4a479a16f2b0b12ab909 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 3100
{
"_embedded" : {
"application_principals" : [ {
"principal" : "principal 1 test",
"applicationPem" : "principal 1 test",
"principalChain" : null,
"privateKeyPem" : null,
"privateKeyUploaded" : false,
"expiresOn" : null,
"uid" : "1e9ee6ce053c46b0932358c8503a26fd",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationPrincipal" : {
"href" : "...",
"title" : "A principal for application"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/application_principals/search/findByEnvironment
Returns all application principals for given Environment
.
Parameter | Description |
---|---|
|
A valid URI of an existing Environment |
GET /application_principals/search/findByEnvironment?environment=http%3A%2F%2Flocalhost%2Fenvironments%2F46cfaf47d2d04d12923beefac3d0ba5a HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 3135
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"application_principals" : [ {
"principal" : "CN=raboapp3,D=rabo,S=utrecht,C=NL",
"applicationPem" : "CN=raboapp3,D=rabo,S=utrecht,C=NL",
"principalChain" : null,
"privateKeyPem" : null,
"privateKeyUploaded" : false,
"expiresOn" : null,
"uid" : "177d7b6b14594e8d8e51186eff59408b",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboprivenv1",
"shortName" : "raboprivenv1",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "46cfaf47d2d04d12923beefac3d0ba5a",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"application" : {
"type" : "Java",
"shortName" : "rabo_auto_app3",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "4cc380171afc4c898b6f6c02caccf451",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationPrincipal" : {
"href" : "...",
"title" : "A principal for application"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/application_principals/search/findByApplicationAndEnvironment
Returns application principals for given Application
and Environment
.
Parameter | Description |
---|---|
|
A valid URI of an existing Application |
|
A valid URI of an existing Environment |
GET /application_principals/search/findByApplicationAndEnvironment?application=http%3A%2F%2Flocalhost%2Fapplications%2F5ffc4240fcdf4a479a16f2b0b12ab909&environment=http%3A%2F%2Flocalhost%2Fenvironments%2F047ab08009fe4da8be6905b55552ab52 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 3100
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"application_principals" : [ {
"principal" : "principal 1 test",
"applicationPem" : "principal 1 test",
"principalChain" : null,
"privateKeyPem" : null,
"privateKeyUploaded" : false,
"expiresOn" : null,
"uid" : "1e9ee6ce053c46b0932358c8503a26fd",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationPrincipal" : {
"href" : "...",
"title" : "A principal for application"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
ApplicationAccess
An ApplicationAccess
defines the access type held by an Application
on a Stream
. There
are two access types supported: PRODUCER
and CONSUMER
.
A PRODUCER
access type indicates that the application will produce messages to the stream.
A CONSUMER
access type indicates that the application will consume messages from the stream.
The /application_access
resource is used to create and list ApplicationAccess
.
An ApplicationAccess
contains a collection of StreamAuthorization
which describes the Environment
where the ApplicationAccess
is active. These authorizations can be managed at
/application_access/uid/authorizations
endpoint.
An Application
can have multiple ApplicationAccess
types (PRODUCER
and CONSUMER
) on a single Stream
.
ApplicationAccess Schema
The /application_access
resource uses the following json-schema:
GET /profile/application_access HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 1280
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Application access",
"properties" : {
"accessType" : {
"title" : "Access type",
"readOnly" : false,
"type" : "string",
"enum" : [ "PRODUCER", "CONSUMER" ]
},
"grants" : {
"title" : "Grants",
"readOnly" : true,
"type" : "string",
"format" : "uri"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"application" : {
"title" : "Application",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"stream" : {
"title" : "Stream",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
}
},
"definitions" : { },
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all application access
HTTP method GET
is disabled for /application_access
. Refer to search endpoints to find one or more
ApplicationAccess
for a Stream
or an Application
or both.
Create application access
A POST
request is used to create a new ApplicationAccess
. The request should include reference to
a valid existing stream and application.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
accessType |
String |
The access type of the application. Can be PRODUCER or CONSUMER only. |
Must not be null |
application |
String |
A valid URI of an existing |
Must not be null |
stream |
String |
A valid URI of an existing |
Must not be null |
Curl request
$ curl 'http://api.example.com/application_access' -i -X POST \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"accessType" : "PRODUCER",
"application" : "http://api.example.com/applications/5ffc4240fcdf4a479a16f2b0b12ab909",
"stream" : "http://api.example.com/streams/91105915be694c0d9dd2301ff54153f0"
}'
HTTP request
POST /application_access HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Content-Type: application/json;charset=UTF-8
Accept: application/hal+json
Content-Length: 201
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"accessType" : "PRODUCER",
"application" : "http://api.example.com/applications/5ffc4240fcdf4a479a16f2b0b12ab909",
"stream" : "http://api.example.com/streams/91105915be694c0d9dd2301ff54153f0"
}
HTTP response
HTTP/1.1 201 Created
Content-Length: 3194
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/application_access/439aaa31ce4943d2936f5a8706f4b57f
Last-Modified: Sun, 4 Jul 2021 10:54:28 GMT
{
"accessType" : "PRODUCER",
"uid" : "439aaa31ce4943d2936f5a8706f4b57f",
"created_at" : "2021-07-04T10:54:28.730278",
"modified_at" : "2021-07-04T10:54:28.730278",
"created_by" : "poweruser@rabobank.nl",
"modified_by" : "poweruser@rabobank.nl",
"_embedded" : {
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream3",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9dd2301ff54153f0",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
}
Retrieve application access
The application_access/{id}
resource is used to retrieve a single access of an application.
A GET
request will retrieve the details of a ApplicationAccess
.
HTTP request
GET /application_access/fedb6478bfd640caa02f5e5893c62bf0 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 5426
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"accessType" : "PRODUCER",
"uid" : "fedb6478bfd640caa02f5e5893c62bf0",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"grants" : [ {
"comment" : null,
"status" : "Pending",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv2",
"shortName" : "raboenv2",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "764c61795cc4438ca8ea5aca262c8e70",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ],
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
}
Links
Relation | Description |
---|---|
|
The |
|
The |
|
All |
|
Link to indicate that the currently authenticated user can create application access requests |
Update application access
HTTP method PATCH
and PUT
is disabled for /application_access
. Once an application
access is created, it cannot be modified. Instead delete and create a new one.
ApplicationAccess search endpoints
/application_access/search/findByApplication
Returns all application access for given Application
.
Parameter | Description |
---|---|
|
A valid URI of an existing Application |
GET /application_access/search/findByApplication?application=http%3A%2F%2Flocalhost%2Fapplications%2F5ffc4240fcdf4a479a16f2b0b12ab909 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 6368
{
"_embedded" : {
"application_access" : [ {
"accessType" : "PRODUCER",
"uid" : "fedb6478bfd640caa02f5e5893c62bf0",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"grants" : [ {
"comment" : null,
"status" : "Pending",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv2",
"shortName" : "raboenv2",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "764c61795cc4438ca8ea5aca262c8e70",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ],
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/application_access/search/findByStream
Returns all application access for given Stream
.
Parameter | Description |
---|---|
|
A valid URI of an existing Stream |
GET /application_access/search/findByStream?stream=http%3A%2F%2Flocalhost%2Fstreams%2F066f5944d16344f88c9214d240d139dc HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 23443
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"application_access" : [ {
"accessType" : "PRODUCER",
"uid" : "fedb6478bfd640caa02f5e5893c62bf0",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"grants" : [ {
"comment" : null,
"status" : "Pending",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv2",
"shortName" : "raboenv2",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "764c61795cc4438ca8ea5aca262c8e70",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ],
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
}, {
"accessType" : "CONSUMER",
"uid" : "ojxg60zh4pt1i83pdio7fql0zdpw4q85",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"application" : {
"type" : "Java",
"shortName" : "rabo_app2",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "39d82d7f34484b53ae1dd47ee8924502",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
}, {
"accessType" : "CONSUMER",
"uid" : "ojxg60zh4pt4203pdio7fql0zdpw4q85",
"created_at" : "2020-11-01T23:16:23.774",
"modified_at" : "2020-11-01T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"grants" : [ {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboprivenv5",
"shortName" : "raboprivenv5",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Auto",
"visibility" : "private",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : true,
"autoApproved" : true,
"uid" : "6u2577bclboz97ievex0fv5hvysemooh",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "420ly0dy72gi123r2m2n56m93ht25wy9",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ],
"application" : {
"type" : "Java",
"shortName" : "test_revoke",
"visibility" : "private",
"owners" : {
"name" : "Team Kad",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841869644c2ad8b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "39d82d7994484b53ae1de37ee8924512",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
}, {
"accessType" : "PRODUCER",
"uid" : "d2150841af85449c96d9556a8e0c9290",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"application" : {
"type" : "Java",
"shortName" : "rabo_auto_app4",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "aec9e4570f1c4866bef77722e2830d4b",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
}, {
"accessType" : "PRODUCER",
"uid" : "e3450841af85449c96d9556a8e0c9678",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"grants" : [ {
"comment" : null,
"status" : "Rejected",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "dd24e0110f7b45ec98d62f6ff8136ae7",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ],
"application" : {
"type" : "Java",
"shortName" : "rabo_app5",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "fdc9e4570f1c4866bef77722e2830d5g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/application_access/search/findByApplicationAndStream
Returns the access of an Application
for a Stream
.
Parameter | Description |
---|---|
|
A valid URI of an existing Stream |
|
A valid URI of an existing Application |
GET /application_access/search/findByApplicationAndStream?stream=http%3A%2F%2Flocalhost%2Fstreams%2F066f5944d16344f88c9214d240d139dc&application=http%3A%2F%2Flocalhost%2Fapplications%2F5ffc4240fcdf4a479a16f2b0b12ab909 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 6368
{
"_embedded" : {
"application_access" : [ {
"accessType" : "PRODUCER",
"uid" : "fedb6478bfd640caa02f5e5893c62bf0",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"grants" : [ {
"comment" : null,
"status" : "Pending",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv2",
"shortName" : "raboenv2",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "764c61795cc4438ca8ea5aca262c8e70",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ],
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/application_access/search/findByEnvironment
Returns all application access for given Environment
.
Parameter | Description |
---|---|
|
A valid URI of an existing Environment |
GET /application_access/search/findByEnvironment?environment=http%3A%2F%2Flocalhost%2Fenvironments%2F047ab08009fe4da8be6905b55552ab52 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 11282
{
"_embedded" : {
"application_access" : [ {
"accessType" : "PRODUCER",
"uid" : "fedb6478bfd640caa02f5e5893c62bf0",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"grants" : [ {
"comment" : null,
"status" : "Pending",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv2",
"shortName" : "raboenv2",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "764c61795cc4438ca8ea5aca262c8e70",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ],
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
}, {
"accessType" : "PRODUCER",
"uid" : "e3450841af85449c96d9556a8e0c9678",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"grants" : [ {
"comment" : null,
"status" : "Rejected",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "dd24e0110f7b45ec98d62f6ff8136ae7",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ],
"application" : {
"type" : "Java",
"shortName" : "rabo_app5",
"visibility" : "public",
"owners" : {
"name" : "Team App Admins",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4oit834841869644c2ad8b439997",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "fdc9e4570f1c4866bef77722e2830d5g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/application_access/search/findByGrantsContaining
Returns all application access for given ApplicationAccessGrant
.
Parameter | Description |
---|---|
|
A valid URI of an existing Application Access Grant |
GET /application_access/search/findByGrantsContaining?applicationAccessGrant=http%3A%2F%2Flocalhost%2Fapplication_access_grants%2F764c61795cc4438ca8ea5aca262c8e70 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 5426
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"accessType" : "PRODUCER",
"uid" : "fedb6478bfd640caa02f5e5893c62bf0",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"grants" : [ {
"comment" : null,
"status" : "Pending",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv2",
"shortName" : "raboenv2",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "764c61795cc4438ca8ea5aca262c8e70",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ],
"application" : {
"type" : "Java",
"shortName" : "rabo_app1",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccess" : {
"href" : "...",
"templated" : true,
"title" : "Access declarations for streams of an application"
},
"createApplicationAccessGrant" : {
"href" : "..."
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"grants" : {
"href" : "...",
"templated" : true
}
}
}
Managing ApplicationAccessGrant (Access per Environment)
In order to be able to request access for an ApplicationAccess
on one or more Environment
,
application owner needs to create an ApplicationAccessGrant
.
Create an ApplicationAccessGrant
A POST
is used to create an ApplicationAccessGrant
on one or more Environment
.
The request should include references to a valid existing environment.
HTTP request
POST /application_access/d2150841af85449c96d9556a8e0c9290/grants HTTP/1.1
realm: rabo
Content-Type: text/uri-list
Host: api.example.com
Content-Length: 62
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
http://localhost/environments/047ab08009fe4da8be6905b55552ab52
HTTP response
HTTP/1.1 201 Created
Location: http://api.example.com/application_access_grants/8e24957c57bf41a195d38c96f820880b
Cancel a pending ApplicationAccessGrant
To cancel a grant that was already requested (in Pending state), call DELETE
method on /application_access_grants/uid
endpoint. The URI of the environments should be included in the request body.
HTTP request
DELETE /application_access_grants/cc13e0110f7b45ec98d62f6ff8136ad6 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP response
HTTP/1.1 204 No Content
Approve a pending ApplicationAccessGrant
The endpoint /application_access/uid/authorizations is deprecated. Please refer to Approve a pending ApplicationAccessGrant for
requesting/approving an application access grant.
|
The StreamOwner
needs to approve a pending ApplicationAccessGrant
.
These can be done by using PUT
method on /application_access_grants/uid
.
HTTP request
PUT /application_access_grants/cc13e0110f7b45ec98d62f6ff8136ad6 HTTP/1.1
realm: rabo
Content-Type: text/uri-list
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP response
HTTP/1.1 204 No Content
Revoke/Deny an authorization request for an Environment
The endpoint /application_access/uid/authorizations is deprecated. Please refer to Revoke/Deny an authorization request for an Environment for
requesting/approving an application access grant.
|
StreamOwner
can DENY
or REVOKE
an ApplicationAccessGrant
by using DELETE
method on application_access/uid/grants
.
It’s also possible to specify a comment/reason beside the request.
EnvironmentOwner can REVOKE an ApplicationAccessGrant for their PRIVATE environments.
|
HTTP request
DELETE /application_access/fedb6478bfd640caa02f5e5893c62bf0/grants HTTP/1.1
realm: rabo
Host: api.example.com
Content-Length: 115
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"reason" : "Not allowed.",
"environment" : "http://localhost/environments/e11ee2dd976647109ca904dd8adc050f"
}
HTTP response
HTTP/1.1 204 No Content
Searching grants by Stream
In order to search for grants for a specific Stream call the endpoint application_access_grants/search/findByStream
.
Request parameters
Parameter | Description |
---|---|
|
The stream to search for |
HTTP request
GET /application_access_grants/search/findByStream?stream=http%3A%2F%2Flocalhost%2Fstreams%2F066f5944d16344f88c9214d240d139dc HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Length: 4953
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"application_access_grants" : [ {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv2",
"shortName" : "raboenv2",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "764c61795cc4438ca8ea5aca262c8e70",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Pending",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboprivenv5",
"shortName" : "raboprivenv5",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Auto",
"visibility" : "private",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : true,
"autoApproved" : true,
"uid" : "6u2577bclboz97ievex0fv5hvysemooh",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "420ly0dy72gi123r2m2n56m93ht25wy9",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Rejected",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "dd24e0110f7b45ec98d62f6ff8136ae7",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Searching actionable application access requests
In order to search for actionable application access requests for the user that is currently logged in.
Actionable items:
-
ApplicationAccessGrant which is not approved or denied yet
HTTP request
GET /application_access_grants/search/findActionable HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Length: 275
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"application_access_grants" : [ ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
Searching informative application access requests with a specific status type
In order to search for non-actionable (informative) application access requests for the user that is currently logged in for a specific status type.
Status types:
-
PENDING
-
APPROVED
-
REJECTED
-
CANCELLED
-
REVOKED
Non-actionable (informative) items:
-
Items pending
-
Approved
-
Denied
Request parameters
Parameter | Description |
---|---|
|
Any valid status as mentioned above. |
HTTP request
GET /application_access_grants/search/findInformative?status=PENDING HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1468
{
"_embedded" : {
"application_access_grants" : [ {
"comment" : null,
"status" : "Pending",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Searching informative application access requests for all status types
In order to search for non-actionable (informative) application access requests for the user that is currently logged in for all status types.
Non-actionable (informative) items:
-
Items pending
-
Approved
-
Denied
HTTP request
GET /application_access_grants/search/findAllInformative HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 12221
{
"_embedded" : {
"application_access_grants" : [ {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboprivenv5",
"shortName" : "raboprivenv5",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Auto",
"visibility" : "private",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : true,
"autoApproved" : true,
"uid" : "6u2577bclboz97ievex0fv5hvysemooh",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "420ly0dy72gi123r2m2n56m93ht25wy9",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboprivenv4",
"shortName" : "raboprivenv4",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Auto",
"visibility" : "private",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : true,
"autoApproved" : true,
"uid" : "83c1b34b0c6744dcadb85f4c188518g5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "875d61795cc4438ca8ea5aca262c8f80",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Rejected",
"environment" : {
"properties" : { },
"name" : "raboprivenv2",
"shortName" : "raboprivenv2",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Auto",
"visibility" : "private",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : true,
"autoApproved" : true,
"uid" : "61b1b34b0c6744dcadb85f4c188517e5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "984e61795cc4438ca8ea5aca262c8g91",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboprivenv5",
"shortName" : "raboprivenv5",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Auto",
"visibility" : "private",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : true,
"autoApproved" : true,
"uid" : "6u2577bclboz97ievex0fv5hvysemooh",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "oqqly0dy72gi1npr2mfl56m99mt25wy9",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Cancelled",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad4",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Pending",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv2",
"shortName" : "raboenv2",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "764c61795cc4438ca8ea5aca262c8e70",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "dd23e0110f7b45ec98d62f6ff8136ad6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Approved",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "fh33e0110f7b45ec98d62f6ff8137bf6",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}, {
"comment" : null,
"status" : "Rejected",
"environment" : {
"properties" : { },
"name" : "raboenv1",
"shortName" : "raboenv1",
"description" : "environment",
"color" : null,
"authorizationIssuer" : "Stream owner",
"visibility" : "public",
"retentionTime" : 604800000,
"partitions" : 12,
"private" : false,
"autoApproved" : false,
"uid" : "047ab08009fe4da8be6905b55552ab52",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"requestedBy" : null,
"processedAt" : null,
"processedBy" : null,
"requestedAt" : null,
"uid" : "dd24e0110f7b45ec98d62f6ff8136ae7",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationAccessGrant" : {
"href" : "...",
"templated" : true
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 10,
"totalPages" : 1,
"number" : 0
}
}
ApplicationDeployments
An ApplicationDeployment
stores the configs for complex application types like connector that is saved for
an Application
on an Environment
.
The /application_deployments
resource is used to create, update, delete, and list application deployments.
List all application deployments
HTTP method GET
is disabled for /application_deployments
. Refer to search endpoints to find one
or more ApplicationDeployment
for an Application
or an Environment
.
Create Application deployment
A POST
request is used to create a new ApplicationDeployment
. The request should include reference to
a valid existing application and environment.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
configs |
Object |
Configs for an |
|
environment |
String |
A valid URI of an existing |
|
application |
String |
A valid URI of an existing |
Curl request
$ curl 'http://api.example.com/application_deployments' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"configs" : {
"configKey" : "configValue"
},
"application" : "http://api.example.com/applications/lmk9f4670h1c4866deg78722e2931e5g",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}'
HTTP request
POST /application_deployments HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Content-Length: 235
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"configs" : {
"configKey" : "configValue"
},
"application" : "http://api.example.com/applications/lmk9f4670h1c4866deg78722e2931e5g",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}
HTTP response
HTTP/1.1 201 Created
Location: http://api.example.com/application_deployments/1537cab048c744cda078387e8ad9ca07
Retrieve application deployment
The application_deployments/{id}
resource is used to retrieve a single deployment of an application
for an environment.
A GET
request will retrieve the details of a ApplicationDeployment
.
HTTP request
GET /application_deployments/1e9ee6ce053c46b0932358c7403a56fd HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2437
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"configs" : {
"keyConfig1" : "valueConfig1"
},
"state" : "Undeployed",
"uid" : "1e9ee6ce053c46b0932358c7403a56fd",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"application" : {
"type" : "SINK",
"shortName" : "rabo_app6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "dbc9e4670h1c4866deg78722e2930d2g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationDeployment" : {
"href" : "..."
},
"start" : {
"href" : "..."
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can start this Application |
Restart connector’s task
The application_deployments/{id}/task/{taskId}/operation
resource is used to restart connector task.
A GET
request will restart the connector task using taskId
.
Request fields
Snippet request-fields not found for operation::restart-connector-task
HTTP request
PUT /application_deployments/1e9ee6ce053c46b0932358c7403a56fd/task/2/operation HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
Content-Type: application/x-www-form-urlencoded
action=RESTART_TASK
HTTP response
HTTP/1.1 204 No Content
Retrieve connector config from application deployment
The application_deployments/{id}/config
resource is used to retrieve a connector config.
A GET
request will retrieve the details of a ApplicationDeployment Connector Config
.
HTTP request
GET /application_deployments/1e9ee6ce053c46b0932358c7403a56fd/config HTTP/1.1
Accept: application/json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Length: 1940
Content-Type: application/json;charset=UTF-8
{
"pluginConfigs" : [ {
"name" : "connector.class",
"type" : "STRING",
"required" : true,
"defaultValue" : null,
"importance" : "HIGH",
"documentation" : "Name or alias of the class for this connector. Must be a subclass of org.apache.kafka.connect.connector.Connector. If the connector is org.apache.kafka.connect.file.FileStreamSinkConnector, you can either specify this full name, or use \\\"FileStreamSink\\\" or \\\"FileStreamSinkConnector\\\" to make the configuration a bit shorter",
"providedValue" : null
}, {
"name" : "key.converter",
"type" : "CLASS",
"required" : false,
"defaultValue" : null,
"importance" : "LOW",
"documentation" : null,
"providedValue" : null
}, {
"name" : "keyConfig1",
"type" : null,
"required" : false,
"defaultValue" : null,
"importance" : null,
"documentation" : null,
"providedValue" : "valueConfig1"
}, {
"name" : "logger.name",
"type" : "STRING",
"required" : true,
"defaultValue" : null,
"importance" : "HIGH",
"documentation" : "The name of the SLF4J Logger to write the messages",
"providedValue" : null
}, {
"name" : "name",
"type" : "STRING",
"required" : true,
"defaultValue" : null,
"importance" : "HIGH",
"documentation" : "Globally unique name to use for this connector.",
"providedValue" : null
}, {
"name" : "tasks.max",
"type" : "INT",
"required" : false,
"defaultValue" : null,
"importance" : null,
"documentation" : null,
"providedValue" : null
}, {
"name" : "transforms",
"type" : "LIST",
"required" : false,
"defaultValue" : "",
"importance" : "LOW",
"documentation" : "Aliases for the transformations to be applied to records.",
"providedValue" : null
} ],
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Links
Snippet links not found for operation::config-info-by-application-deployment-with-config
Retrieve default connector config from application deployment
The application_deployments/{id}/config
resource is used to retrieve a connector config.
A GET
request will retrieve the details of a Default Connector Config
.
HTTP request
GET /application_deployments/3g9ff6ce053c46b0932358c7403a58fz/config HTTP/1.1
Accept: application/json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Length: 339
Content-Type: application/json;charset=UTF-8
{
"pluginConfigs" : [ {
"name" : "defaults_key4",
"type" : null,
"required" : false,
"defaultValue" : null,
"importance" : null,
"documentation" : null,
"providedValue" : "defaults_value4"
} ],
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Links
Snippet links not found for operation::default-config-info-by-application-deployment-without-config
Update application deployment
A PUT
request is used to update a ApplicationDeployment
. Only configs
field can be modified.
If application or environment needs to be updated, delete the ApplicationDeployment
and create a new one.
$ curl 'http://api.example.com/application_deployments/1e9ee6ce053c46b0932358c7403a56fd' -i -X PUT \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"configs" : {
"key" : "value"
}
}'
PUT /application_deployments/1e9ee6ce053c46b0932358c7403a56fd HTTP/1.1
Content-Length: 43
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"configs" : {
"key" : "value"
}
}
HTTP/1.1 204 No Content
ETag: "0"
Location: http://api.example.com/application_deployments/1e9ee6ce053c46b0932358c7403a56fd
Delete application deployment
A DELETE
request is used to delete an ApplicationDeployment
.
$ curl 'http://api.example.com/application_deployments/3g9ff6ce053c46b0932358c7403a58ff' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /application_deployments/3g9ff6ce053c46b0932358c7403a58ff HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
ApplicationDeployments search endpoints
/application_deployments/search/findByApplicationAndEnvironment
Returns application deployments for given Application
and Environment
.
Parameter | Description |
---|---|
|
A valid URI of an existing Application |
|
A valid URI of an existing Environment |
GET /application_deployments/search/findByApplicationAndEnvironment?application=http%3A%2F%2Flocalhost%2Fapplications%2Fdbc9e4670h1c4866deg78722e2930d2g&environment=http%3A%2F%2Flocalhost%2Fenvironments%2F047ab08009fe4da8be6905b55552ab52 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2996
{
"_embedded" : {
"application_deployments" : [ {
"configs" : {
"keyConfig1" : "valueConfig1"
},
"state" : "Undeployed",
"uid" : "1e9ee6ce053c46b0932358c7403a56fd",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"application" : {
"type" : "SINK",
"shortName" : "rabo_app6",
"visibility" : "public",
"owners" : {
"name" : "Application-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"description" : null,
"uid" : "dbc9e4670h1c4866deg78722e2930d2g",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"applicationDeployment" : {
"href" : "..."
},
"start" : {
"href" : "..."
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"application" : {
"href" : "...",
"templated" : true,
"title" : "An application"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Delete application deployment
A DELETE
request is used to delete an ApplicationDeployment
.
$ curl 'http://api.example.com/application_deployments/3g9ff6ce053c46b0932358c7403a58ff' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /application_deployments/3g9ff6ce053c46b0932358c7403a58ff HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
ApplicationDeployments Perform action
/application_deployments/operation
Perform an action for an application deployment : The valid actions are: START, STOP, RESET, DELETE.
Parameter | Description |
---|---|
|
A valid action to perform on the deployment |
PUT /application_deployments/1e9ee6ce053c46b0932358c7403a56fd/operation HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
action=START
HTTP/1.1 204 No Content
ApplicationDeployments Get status
/application_deployments/status
Returns the real time status of the application_deployment , along with the status for the tasks associated to the application_deployment.
$ curl 'http://api.example.com/application_deployments/1e9ee6ce053c46b0932358c7403a56fd/status' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /application_deployments/1e9ee6ce053c46b0932358c7403a56fd/status HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 235
{
"connectorState" : {
"state" : "Undefined",
"workerId" : null,
"trace" : null
},
"taskStates" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Streams
A Stream is a continuous flow of similar events (messages) grouped together under a single identity.
The streams
resource is used to create and list Streams.
Stream Schema
The streams
resource uses the following json-schema:
GET /profile/streams HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 2204
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Stream",
"properties" : {
"confidentiality" : {
"title" : "Confidentiality",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"description" : {
"title" : "Description",
"readOnly" : false,
"type" : "string"
},
"keySchema" : {
"title" : "Key schema",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"owners" : {
"title" : "Owners",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
},
"valueSchema" : {
"title" : "Value schema",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"integrity" : {
"title" : "Integrity",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"valueType" : {
"title" : "Value type",
"readOnly" : false,
"type" : "string",
"enum" : [ "AVRO", "JSON", "String", "Binary", "Xml" ]
},
"name" : {
"title" : "Name",
"readOnly" : false,
"type" : "string"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"retentionPolicy" : {
"title" : "Retention policy",
"readOnly" : false,
"type" : "string",
"enum" : [ "delete", "compact" ]
},
"keyType" : {
"title" : "Key type",
"readOnly" : false,
"type" : "string",
"enum" : [ "AVRO", "JSON", "String", "Binary", "Xml" ]
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"properties" : {
"title" : "Properties",
"readOnly" : false,
"type" : "object"
}
},
"definitions" : { },
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all streams
A GET
request will list all the Streams visible to the currently logged in user.
Curl request
$ curl 'http://api.example.com/streams' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /streams HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 32437
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"streams" : [ {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream2",
"owners" : {
"name" : "Stream-raboApplication2",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "88eb98e0eff34fde923c15687e6d75d5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : {
"level" : "L2",
"description" : "This is level 2",
"color" : "yellow",
"uid" : "247ab03ffafe4da2bet905b5e352ab53",
"created_at" : "2019-06-08T23:16:23.774",
"modified_at" : "2019-06-08T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"confidentiality" : {
"level" : "L2",
"description" : "L2 confidentiality",
"color" : "blue",
"uid" : "648ab08009fe4da8be6905b55552ac43",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"retentionPolicy" : "delete",
"description" : null,
"uid" : "a549f500d879419c9f5efa5d3cada7b3",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream3",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9dd2301ff54153f0",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream4",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be694c0d9dd2301ff54153f0",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination1",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination2",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be614c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination3",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9dd2301ff54153fc",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination4",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "66605915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination5",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915becc4c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination6",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "311ac915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination7",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91195915be694c0d9dd2301ff54111f1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination8",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31bbb915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination9",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "41105915be694c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination10",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "21105915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination11",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "9110591abe694c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination12",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915ba694c0d9da2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination13",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9df2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination14",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be694c0d6dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination15",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be695c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination16",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be624c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
} ]
},
"_links" : {
"first" : {
"href" : "..."
},
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"next" : {
"href" : "..."
},
"last" : {
"href" : "..."
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
},
"create" : {
"href" : "...",
"templated" : true,
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 22,
"totalPages" : 2,
"number" : 0
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can create a new Stream |
Create stream
A POST
request is used to create a new stream. A message stored in a stream is a key-value pair.
The key is used internally by Kafka while value represents the payload of the message. The key and
value could be of different formats. These formats are described in below table.
Data format | Description |
---|---|
A JSON like data model with sophisticated schema description. |
|
|
Data structured in JSON format. |
|
A plain text data with no format. |
|
Low-level binary data |
The data format for key and value is specified by keyType
and valueType
fields. If AVRO
format is selected, a separate keySchema
and valueSchema
must be specified for complete
AVRO
definition. For all other data formats, these fields can be skipped.
It is possible to have different data formats for key
and value
.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
name |
String |
The name of the stream |
Must match the regular expression |
description |
String |
A summary text describing the purpose of this stream. |
Size must be between 0 and 200 inclusive |
properties |
Object |
A list of Stream specific variables in Key, Value format. |
|
owners |
String |
A valid URI of an existing group, must not be null. |
Must not be null |
retentionPolicy |
String |
Defines the policy to retain the messages on this stream. Possible values |
|
keyType |
String |
Key type of Stream. Can be one of |
Must not be null |
valueType |
String |
Value type of Stream. Can be one of |
Must not be null |
keySchema |
String |
A URI of an existing Schema. Only needed when |
|
valueSchema |
String |
A URI of an existing Schema. Only needed when |
|
integrity |
String |
A URI of an existing Integrity. Only needed when |
|
confidentiality |
String |
A URI of an existing Confidentiality. Only needed when |
Curl request
$ curl 'http://api.example.com/streams' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"name" : "general-applicationlog",
"description" : "Stream to capture application logs",
"keyType" : "AVRO",
"valueType" : "AVRO",
"retentionPolicy" : "delete",
"keySchema" : "http://api.example.com/schemas/4edccfd6aa744e698542da36f1f01114",
"valueSchema" : "http://api.example.com/schemas/8bc19be0c9cd4da296acd78e6022edf1",
"integrity" : "http://api.example.com/integrities/247ab08159fe4da8be6905b55552ab52",
"confidentiality" : "http://api.example.com/confidentialities/347ab08009fe4da8be6905b55552ab52",
"owners" : "http://api.example.com/groups/2d8e99afd6e047f69c9595b4f2525fa6"
}'
HTTP request
POST /streams HTTP/1.1
realm: rabo
Host: api.example.com
Content-Length: 606
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"name" : "general-applicationlog",
"description" : "Stream to capture application logs",
"keyType" : "AVRO",
"valueType" : "AVRO",
"retentionPolicy" : "delete",
"keySchema" : "http://api.example.com/schemas/4edccfd6aa744e698542da36f1f01114",
"valueSchema" : "http://api.example.com/schemas/8bc19be0c9cd4da296acd78e6022edf1",
"integrity" : "http://api.example.com/integrities/247ab08159fe4da8be6905b55552ab52",
"confidentiality" : "http://api.example.com/confidentialities/347ab08009fe4da8be6905b55552ab52",
"owners" : "http://api.example.com/groups/2d8e99afd6e047f69c9595b4f2525fa6"
}
HTTP response
HTTP/1.1 201 Created
Location: http://api.example.com/streams/b0ae36fc2114405f8475dd41cc358f94
Retrieve a stream
The streams/{id}
resource is used to retrieve, update and delete individual streams.
A GET
request will retrieve the details of a Stream.
HTTP request
GET /streams/066f5944d16344f88c9214d240d139dc HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2598
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"properties" : { },
"name" : "rabo-stream1",
"description" : null,
"keyType" : "AVRO",
"valueType" : "AVRO",
"retentionPolicy" : "delete",
"uid" : "066f5944d16344f88c9214d240d139dc",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : "strauthor@rabobank.nl",
"modified_by" : "strauthor@rabobank.nl",
"_embedded" : {
"valueSchema" : {
"name" : "nl.rabobank.beb.value-schema1",
"description" : "",
"uid" : "8bc19be0c9cd4da296acd78e6022edf1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
},
"keySchema" : {
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
},
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"members" : {
"href" : "...",
"templated" : true,
"title" : "Users belonging to this group"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
Links
Relation | Description |
---|---|
|
Version of the Key schema definition |
|
Version of the Value schema definition |
|
The group of users allowed to access/update the environment. |
|
UID of the Integrity level definition |
|
UID of the Confidentiality level definition |
|
Existence of this link indicates that the currently authenticated user can edit this Stream |
|
Existence of this link indicates that the currently authenticated user can delete this Stream |
Update a stream
A PATCH
request is used to update a stream. In the request, pass only the field that needs changing.
$ curl 'http://api.example.com/streams/066f5944d16344f88c9214d240d139dc' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"retentionTime" : 2000
}'
PATCH /streams/066f5944d16344f88c9214d240d139dc HTTP/1.1
realm: rabo
Host: api.example.com
Content-Length: 28
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"retentionTime" : 2000
}
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Stream search endpoints
/streams/search/findByName
Search for a stream by exact name.
Parameter | Description |
---|---|
|
Stream name to search for. |
GET /streams/search/findByName?name=rabo-stream1 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1713
{
"_embedded" : {
"streams" : [ {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/streams/search/findByNameContaining
Search for a stream by name containing search term.
Parameter | Description |
---|---|
|
Term to search within stream name. |
GET /streams/search/findByNameContaining?name=stream HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 30386
{
"_embedded" : {
"streams" : [ {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream2",
"owners" : {
"name" : "Stream-raboApplication2",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "88eb98e0eff34fde923c15687e6d75d5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : {
"level" : "L2",
"description" : "This is level 2",
"color" : "yellow",
"uid" : "247ab03ffafe4da2bet905b5e352ab53",
"created_at" : "2019-06-08T23:16:23.774",
"modified_at" : "2019-06-08T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"confidentiality" : {
"level" : "L2",
"description" : "L2 confidentiality",
"color" : "blue",
"uid" : "648ab08009fe4da8be6905b55552ac43",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"retentionPolicy" : "delete",
"description" : null,
"uid" : "a549f500d879419c9f5efa5d3cada7b3",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream3",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9dd2301ff54153f0",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream4",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be694c0d9dd2301ff54153f0",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination1",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination2",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be614c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination3",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9dd2301ff54153fc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination4",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "66605915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination5",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915becc4c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination6",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "311ac915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination7",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91195915be694c0d9dd2301ff54111f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination8",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31bbb915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination9",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "41105915be694c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination10",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "21105915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination11",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "9110591abe694c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination12",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915ba694c0d9da2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination13",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9df2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination14",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be694c0d6dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination15",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be695c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination16",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be624c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
} ]
},
"_links" : {
"first" : {
"href" : "..."
},
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"next" : {
"href" : "..."
},
"last" : {
"href" : "..."
},
"create" : {
"href" : "...",
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 22,
"totalPages" : 2,
"number" : 0
}
}
/streams/search/findByNameContaining
Search for a stream by name containing search term and order by a nested property.
Parameter | Description |
---|---|
|
Term to search within stream name. |
|
Property to sort on and the direction. |
GET /streams/search/findByNameContaining?name=stream&sort=owners.name%2Casc HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 30388
{
"_embedded" : {
"streams" : [ {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream2",
"owners" : {
"name" : "Stream-raboApplication2",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "88eb98e0eff34fde923c15687e6d75d5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : {
"level" : "L2",
"description" : "This is level 2",
"color" : "yellow",
"uid" : "247ab03ffafe4da2bet905b5e352ab53",
"created_at" : "2019-06-08T23:16:23.774",
"modified_at" : "2019-06-08T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"confidentiality" : {
"level" : "L2",
"description" : "L2 confidentiality",
"color" : "blue",
"uid" : "648ab08009fe4da8be6905b55552ac43",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"retentionPolicy" : "delete",
"description" : null,
"uid" : "a549f500d879419c9f5efa5d3cada7b3",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination9",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "41105915be694c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination15",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be695c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination11",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "9110591abe694c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination12",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915ba694c0d9da2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination13",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9df2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination14",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be694c0d6dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination10",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "21105915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination16",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be624c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination17",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9ddc301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination18",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be694c0d9dd2302cf54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream3",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9dd2301ff54153f0",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream4",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be694c0d9dd2301ff54153f0",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination1",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91105915be694c0d9dd2301ff54153f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination2",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31105915be614c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination4",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "66605915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination8",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "31bbb915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination7",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "91195915be694c0d9dd2301ff54111f1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}, {
"name" : "rabo-stream_pagination6",
"owners" : {
"name" : "Team Null",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "514d4e9a834841699644c2420b439553",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "311ac915be694c0d9dd2301ff54153f2",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
} ]
},
"_links" : {
"first" : {
"href" : "..."
},
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"next" : {
"href" : "..."
},
"last" : {
"href" : "..."
},
"create" : {
"href" : "...",
"title" : "Indication that an entity can be created"
}
},
"page" : {
"size" : 20,
"totalElements" : 22,
"totalPages" : 2,
"number" : 0
}
}
Delete stream
Deleting stream is a two step process a GET request to check the constraints followed by the DELETE request
Delete stream constraints
A GET
request is used to get the constraints for deleting Stream
.
$ curl 'http://api.example.com/streams/066f5944d16344f88c9214d240d139dc/deletion-constraints' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /streams/066f5944d16344f88c9214d240d139dc/deletion-constraints HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 80
{
"canDelete" : false,
"streamConfigsCount" : 3,
"activeGrantsCount" : 3
}
Delete stream
A DELETE
request is used to delete a Stream
.
$ curl 'http://api.example.com/streams/31105915be694c0d9dd2301ff54153f0' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /streams/31105915be694c0d9dd2301ff54153f0 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Browse stream
Browsing the content of a stream can include different search parameters.
A GET
request is used to browse the content of a Stream
.
The UID present in the request path needs to be a valid Stream Config uid and NOT a Stream uid !!!
|
$ curl 'http://api.example.com/streams/c082e097545948dcbd0cf993128d3fc2/browse?fromTime=1566803819&toTime=1566803820&query=text&page=0&pageSize=20' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /streams/c082e097545948dcbd0cf993128d3fc2/browse?fromTime=1566803819&toTime=1566803820&query=text&page=0&pageSize=20 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 121
Content-Type: application/json;charset=UTF-8
{
"messages" : [ ],
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
Browse stream access
A GET
request is used to determine if the user has the permissions to view the content of a stream.
The UID present in the request path needs to be a valid Stream Config uid and NOT a Stream uid !!!
|
$ curl 'http://api.example.com/streams/c082e097545948dcbd0cf993128d3fc2/browse-access' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /streams/c082e097545948dcbd0cf993128d3fc2/browse-access HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Stream browse config
A GET
request is used to obtain the information required to query messages on a specific cluster.
The UID present in the request path needs to be a valid Stream Config uid and NOT a Stream uid !!!
|
$ curl 'http://api.example.com/streams/c082e097545948dcbd0cf993128d3fc2/browse-config?selectedCluster=Boxtel' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /streams/c082e097545948dcbd0cf993128d3fc2/browse-config?selectedCluster=Boxtel HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 2108
{
"clusterDetails" : { },
"tenant" : "rabo",
"instance" : "ota",
"instanceCAs" : [ "-----BEGIN CERTIFICATE-----\\nMIIFJjCCAw6gAwIBAgIJAINuAirfnRU6MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV\\nBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODAeFw0xODA1MjkxMDM0MTRaFw0zODA1\\nMjQxMDM0MTRaMCAxHjAcBgNVBAMMFUF4dWFsIER1bW15IFJvb3QgMjAxODCCAiIw\\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVDjbhq3TGuQ6INTZ+dhSIgsdbq\\nw2nxF3myrS7v89bcNxMyLypWYTmR4OAYRXRBnW4KX6sTubPyL3ogPz6hXmfmPfAz\\n+X//HTIiybL3e3qwxqWphp09+JT6veEp/e/wEEjSMj5nsxkDEjj9JEQWu/1B+N+V\\nXOJkTYFy05ZgeWplkyLwT71myF047aISK27a+VebBMaPpvvetScbMSwxAbk51cGV\\nUC4gpwvnvsbp/CRuMV0dYzkeTmxgn860l3s8+7qUJoOrtiO0cDpv97SK9Ck9ef1k\\nR6KFttzxb/u+eMFi3RUErEGwE8P3thTseXRkp5hMwcyaSQv0wfLawlwcNFGOzsBx\\nfJS7QUIUpEyzRqj5Ppgaj530APxbgitLOfVLZ2DvcBcmnQns6OE+uwymuvAj8Ftj\\n6AFJXH2lmswHLl5uD9kIOwmpZg4NZLP2Qv+WOT6HLgI7Kv1z0OV2H7UlWA7hwQXl\\noQ6fJ2YLEhT+GM9xHKJ+DQCxvjWvtGUSb/Dk0j/R9mpSFfHvVJgE/xV+7F7Vlyw5\\n/cDpF3GZOTGQ/MFy4RqRrTtjnZw2/bZZyJ+Xb743OeQhABFUdadh8cmyehDregtr\\nalHxtjKxCxrT55OHCYhbCoz6nEnQURD7EPQhU5puUKalRq2ApDkveIk8uj0HQmQm\\nKyRuNX7M6vCoWnpxAgMBAAGjYzBhMB0GA1UdDgQWBBR0o48OpIVDoF+TQj9qwGQH\\nK3mCxTAfBgNVHSMEGDAWgBR0o48OpIVDoF+TQj9qwGQHK3mCxTAPBgNVHRMBAf8E\\nBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAbJanqR4P\\nmr05AyAu8vlrLsleXA8VAPDiaaYStYH5cIdBBWkaIxanLFDmbyQwKkKdkHQWV9X8\\n1P52q49T9RsoBsEOmwdiaCY2PEUz7Y3bFW0UeM+k65VlHlXWywRM6+O02t4TrJXH\\nF6h7vPon01OwhgW9Yil/Kr+yyZK50Ic+pm4UhHmtxY932cNaRCdae5tKsjabsP7Z\\nrdAksLia8mTp+HADkZJ1uODxyDh0S1WMKB5JoHYBrmtUr1NYLgRC6SinhK4r7rbi\\nEWuurE605Nm//jv3Czdy8gEsMDtXLZYY0iqGnD11MAJFXyQ6PG2eq1cXcsJNRojm\\n8D4ipfQ+z4bp9dDVR2DzVyTYe4yuhZuIe2phOhPc8KkBaXQRMHfVKyeEmzqEFLaM\\nkfaDZkRsrMZSqh+KJoxDG3h8UqssChX+cuZdsjRhNWRqfbB20I9Upwa+XooyCU4E\\nEkYyFTMchtvbYZEN/XvlPfhK5JB9eJ5rrcE8hKsP3gftchWWqCDedKugvZW/t5Vk\\nlc+z4IjiJFnRDfcr4Z5V2Hpseyno3AEK7aUdJlmuPnxoImFXfQ4jUguM/wznJHl7\\nXv9T0oaBVHM7Bd6PlES04Oho0KZXS6NryTsZn9GFV4qGZj5lEeOVl15AOfeIjP/I\\nokA2uUH/ZuJlR/BEmqbLt5HWPRNT/GgLfPY=\\n-----END CERTIFICATE-----\\n" ],
"stream" : "rabo-stream1",
"environment" : "raboenv1",
"keyType" : "AVRO",
"valueType" : "AVRO"
}
StreamConfigs
A StreamConfig
is a unique set of configurations of a Stream
for an Environment
.
The /stream_configs
resource is used to create and list StreamConfigs.
StreamConfig Schema
The /stream_configs
resource uses the following json-schema:
GET /profile/stream_configs HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 1629
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Stream config",
"properties" : {
"partitions" : {
"title" : "Partitions",
"readOnly" : false,
"type" : "integer"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"environment" : {
"title" : "Environment",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"stream" : {
"title" : "Stream",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"valueSchemaVersion" : {
"title" : "Value schema version",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"keySchemaVersion" : {
"title" : "Key schema version",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"retentionTime" : {
"title" : "Retention time",
"readOnly" : false,
"type" : "integer"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
},
"properties" : {
"title" : "Properties",
"readOnly" : false,
"type" : "object"
}
},
"definitions" : { },
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all stream configs
HTTP method GET
is disabled for /stream_configs
. Refer to search endpoints to find one or more
StreamConfig
for a Stream
or an Environment
or both.
Create stream config
A POST
request is used to create a new StreamConfig
. The request should include reference to
a valid existing stream, key schema version and value schema version. The schema version should be
of the same schema that is being used by the stream.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
retentionTime |
Number |
The time in milliseconds after which the messages can be deleted from all streams. This is an optional field. If not specified, default value is 7 days (604800000). |
Must be at least 1000. Must be at most 160704000000 |
partitions |
Number |
Defines the number of partitions configured for every stream of this tenant. This is an optional field. If not specified, default value is 12. |
Must be at least 1. Must be at most 120000 |
stream |
String |
A valid URI of an existing stream. |
Must not be null |
keySchemaVersion |
String |
A valid URI of an existing schema version. |
|
valueSchemaVersion |
String |
A valid URI of an existing schema version |
|
properties |
Object |
A list of Kafka specific properties in Key,Value format. |
Curl request
$ curl 'http://api.example.com/stream_configs' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"retentionTime" : 10000,
"partitions" : 12,
"stream" : "http://api.example.com/streams/a549f500d879419c9f5efa5d3cada7b3",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
"keySchemaVersion" : "http://api.example.com/schema_versions/5162f72742cd4c6db07b9a71a825fe4f",
"valueSchemaVersion" : "http://api.example.com/schema_versions/0aa818df699847d08c24f75a4a7399ed"
}'
HTTP request
POST /stream_configs HTTP/1.1
realm: rabo
Content-Length: 418
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"retentionTime" : 10000,
"partitions" : 12,
"stream" : "http://api.example.com/streams/a549f500d879419c9f5efa5d3cada7b3",
"environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
"keySchemaVersion" : "http://api.example.com/schema_versions/5162f72742cd4c6db07b9a71a825fe4f",
"valueSchemaVersion" : "http://api.example.com/schema_versions/0aa818df699847d08c24f75a4a7399ed"
}
HTTP response
HTTP/1.1 201 Created
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/stream_configs/d825a4fc967f4db4b5f4b8a6053f4fc9
Last-Modified: Sun, 4 Jul 2021 10:54:23 GMT
Content-Length: 4053
{
"properties" : {
"segment.ms" : "172800000"
},
"retentionTime" : 10000,
"partitions" : 12,
"uid" : "d825a4fc967f4db4b5f4b8a6053f4fc9",
"created_at" : "2021-07-04T10:54:23.862467",
"modified_at" : "2021-07-04T10:54:23.862467",
"created_by" : "poweruser@rabobank.nl",
"modified_by" : "poweruser@rabobank.nl",
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream2",
"owners" : {
"name" : "Stream-raboApplication2",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "88eb98e0eff34fde923c15687e6d75d5",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : {
"level" : "L2",
"description" : "This is level 2",
"color" : "yellow",
"uid" : "247ab03ffafe4da2bet905b5e352ab53",
"created_at" : "2019-06-08T23:16:23.774",
"modified_at" : "2019-06-08T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"confidentiality" : {
"level" : "L2",
"description" : "L2 confidentiality",
"color" : "blue",
"uid" : "648ab08009fe4da8be6905b55552ac43",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null
},
"retentionPolicy" : "delete",
"description" : null,
"uid" : "a549f500d879419c9f5efa5d3cada7b3",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"streamConfig" : {
"href" : "...",
"title" : "A configuration of a stream"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"valueSchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for value"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"keySchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for key"
}
}
}
Retrieve a stream config
The stream_configs/{id}
resource is used to retrieve, update and delete individual stream config.
A GET
request will retrieve the details of a StreamConfig
.
HTTP request
GET /stream_configs/c082e097545948dcbd0cf993128d3fc2 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 3353
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"properties" : { },
"retentionTime" : 10000,
"partitions" : 12,
"uid" : "c082e097545948dcbd0cf993128d3fc2",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"streamConfig" : {
"href" : "...",
"title" : "A configuration of a stream"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"valueSchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for value"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"keySchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for key"
}
}
}
Links
Relation | Description |
---|---|
|
Existence of this link indicates that the currently authenticated user can edit this StreamConfig |
|
Existence of this link indicates that the currently authenticated user can delete this StreamConfig |
Update a stream config
A PATCH
request is used to update a stream config. In the request, pass only the field that needs changing.
$ curl 'http://api.example.com/stream_configs/c082e097545948dcbd0cf993128d3fc2' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"retentionTime" : 40000
}'
PATCH /stream_configs/c082e097545948dcbd0cf993128d3fc2 HTTP/1.1
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Content-Length: 29
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"retentionTime" : 40000
}
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Delete stream config endpoints
Deleting stream config is a two step process a GET request to check the constraints followed by the DELETE request
Delete stream config constraints
A GET
request is used to get the constraints for deleting StreamConfig
.
$ curl 'http://api.example.com/stream_configs/c082e097545948dcbd0cf993128d3fc2/deletion-constraints' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
GET /stream_configs/c082e097545948dcbd0cf993128d3fc2/deletion-constraints HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 51
Content-Type: application/json;charset=UTF-8
{
"activeGrantsCount" : 0,
"canDelete" : true
}
Delete stream config
A DELETE
request is used to delete a stream config.
$ curl 'http://api.example.com/stream_configs/c082e097545948dcbd0cf993128d3fc2' -i -X DELETE \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /stream_configs/c082e097545948dcbd0cf993128d3fc2 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
StreamConfig search endpoints
/stream_configs/search/findByStream
Returns all stream configs for given Stream
.
Parameter | Description |
---|---|
|
A valid URI of an existing Stream |
GET /stream_configs/search/findByStream?stream=http%3A%2F%2Flocalhost%2Fstreams%2F066f5944d16344f88c9214d240d139dc HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 11726
{
"_embedded" : {
"stream_configs" : [ {
"properties" : { },
"retentionTime" : 10000,
"partitions" : 12,
"uid" : "c082e097545948dcbd0cf993128d3fc2",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"streamConfig" : {
"href" : "...",
"title" : "A configuration of a stream"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"valueSchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for value"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"keySchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for key"
}
}
}, {
"properties" : { },
"retentionTime" : 10000,
"partitions" : 12,
"uid" : "2f9ee6ce053c46b0932358c8503a2697",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboprivenv3",
"shortName" : "raboprivenv3",
"visibility" : "private",
"color" : null,
"description" : "environment",
"uid" : "72c1b34b0c6744dcadb85f4c188518f6",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"streamConfig" : {
"href" : "...",
"title" : "A configuration of a stream"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"valueSchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for value"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"keySchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for key"
}
}
}, {
"properties" : { },
"retentionTime" : 10000,
"partitions" : 12,
"uid" : "1e9ee6ce053c46b0932358c8503a2686",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboenv2",
"shortName" : "raboenv2",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "e11ee2dd976647109ca904dd8adc050f",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"streamConfig" : {
"href" : "...",
"title" : "A configuration of a stream"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"valueSchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for value"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"keySchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for key"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/stream_configs/search/findByEnvironment
Returns configurations of all available streams for given Environment
.
Parameter | Description |
---|---|
|
A valid URI of an existing Environment |
GET /stream_configs/search/findByEnvironment?environment=http%3A%2F%2Flocalhost%2Fenvironments%2F46cfaf47d2d04d12923beefac3d0ba5a HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 165
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"stream_configs" : [ ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
/stream_configs/search/findByStreamAndEnvironment
Returns the configuration of the given Stream
for given Environment
.
Parameter | Description |
---|---|
|
A valid URI of an existing Stream |
|
A valid URI of an existing Environment |
GET /stream_configs/search/findByStreamAndEnvironment?stream=http%3A%2F%2Flocalhost%2Fstreams%2F066f5944d16344f88c9214d240d139dc&environment=http%3A%2F%2Flocalhost%2Fenvironments%2F047ab08009fe4da8be6905b55552ab52 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 4098
{
"_embedded" : {
"stream_configs" : [ {
"properties" : { },
"retentionTime" : 10000,
"partitions" : 12,
"uid" : "c082e097545948dcbd0cf993128d3fc2",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"environment" : {
"name" : "raboenv1",
"shortName" : "raboenv1",
"visibility" : "public",
"color" : null,
"description" : "environment",
"uid" : "047ab08009fe4da8be6905b55552ab52",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"instance" : {
"href" : "...",
"templated" : true,
"title" : "An instance"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
}
}
},
"stream" : {
"name" : "rabo-stream1",
"owners" : {
"name" : "Stream-raboApplication1",
"emailAddress" : null,
"phoneNumber" : null,
"uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : null,
"created_by" : null,
"modified_by" : null
},
"integrity" : null,
"confidentiality" : null,
"retentionPolicy" : "delete",
"description" : null,
"uid" : "066f5944d16344f88c9214d240d139dc",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"confidentiality" : {
"href" : "...",
"templated" : true,
"title" : "The confidentiality configured for the object"
},
"keySchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for key"
},
"integrity" : {
"href" : "...",
"templated" : true,
"title" : "The integrity configured for the object"
},
"owners" : {
"href" : "...",
"templated" : true,
"title" : "The group responsible for this object"
},
"valueSchema" : {
"href" : "...",
"templated" : true,
"title" : "The AVRO schema configured for value"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"streamConfig" : {
"href" : "...",
"title" : "A configuration of a stream"
},
"edit" : {
"href" : "...",
"title" : "Indication that this entity can be edited"
},
"delete" : {
"href" : "...",
"title" : "Indication that this entity can be deleted"
},
"valueSchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for value"
},
"stream" : {
"href" : "...",
"templated" : true,
"title" : "A stream"
},
"environment" : {
"href" : "...",
"templated" : true,
"title" : "An environment"
},
"keySchemaVersion" : {
"href" : "...",
"templated" : true,
"title" : "A version of an AVRO schema configured for key"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"createStreamConfig" : {
"href" : "...",
"templated" : true
}
}
}
Schemas
A Schema is an AVRO definition formatted in JSON. Schemas are used by Streams of data type AVRO.
The schemas
resource is used to create and list Schemas.
JSON Schema
The schemas
resource uses the following json-schema:
GET /profile/schemas HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 941
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Schema",
"properties" : {
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"name" : {
"title" : "Name",
"readOnly" : false,
"type" : "string"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"description" : {
"title" : "Description",
"readOnly" : false,
"type" : "string"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
}
},
"definitions" : { },
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all schemas
A GET
request will list all the Schemas visible to the currently logged in user.
Curl request
$ curl 'http://api.example.com/schemas' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /schemas HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2445
{
"_embedded" : {
"schemas" : [ {
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "nl.rabobank.beb.value-schema1",
"description" : "",
"uid" : "8bc19be0c9cd4da296acd78e6022edf1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "nl.rabobank.beb.key-schema2",
"description" : "",
"uid" : "a32ead9183734d838e32c8454af9f3f5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "nl.rabobank.beb.value-schema2",
"description" : "",
"uid" : "dae551f956af48c1baa53281b5edca00",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "io.axual.qa.general.Random",
"description" : "Demo schema",
"uid" : "858d48056942069a916a8053e138s2e4",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 20,
"totalElements" : 5,
"totalPages" : 1,
"number" : 0
}
}
List all schema names only
Sometimes, fetching the schema names might be sufficient instead of fetching the complete object.
For e.g. in displaying drop-down forms. To get schema names only, use the same GET
call as above
but add a parameter projection
with value names
.
Request parameters
Parameter | Description |
---|---|
|
There is only 1 valid value: |
Curl request
$ curl 'http://api.example.com/schemas?projection=names' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /schemas?projection=names HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 2304
{
"_embedded" : {
"schemas" : [ {
"name" : "nl.rabobank.beb.key-schema1",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "nl.rabobank.beb.value-schema1",
"uid" : "8bc19be0c9cd4da296acd78e6022edf1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "nl.rabobank.beb.key-schema2",
"uid" : "a32ead9183734d838e32c8454af9f3f5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "nl.rabobank.beb.value-schema2",
"uid" : "dae551f956af48c1baa53281b5edca00",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "io.axual.qa.general.Random",
"uid" : "858d48056942069a916a8053e138s2e4",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 20,
"totalElements" : 5,
"totalPages" : 1,
"number" : 0
}
}
Create schema
A POST
request is used to create a new schema. To create a new AVRO definition, refer to SchemaVersion.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
name |
String |
A fully qualified Java classname of the Schema |
Must match the regular expression |
description |
String |
A short text describing the Schema |
Size must be between 0 and 500 inclusive |
Curl request
$ curl 'http://api.example.com/schemas' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"name" : "io.axual.aeb.test.Schema",
"description" : "This is a test schema"
}'
HTTP request
POST /schemas HTTP/1.1
realm: rabo
Content-Length: 84
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"name" : "io.axual.aeb.test.Schema",
"description" : "This is a test schema"
}
HTTP response
HTTP/1.1 201 Created
Last-Modified: Sun, 4 Jul 2021 10:54:21 GMT
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/schemas/40eb3d04cb244f17a88739c83c076b9c
Content-Length: 522
{
"name" : "io.axual.aeb.test.Schema",
"description" : "This is a test schema",
"uid" : "40eb3d04cb244f17a88739c83c076b9c",
"created_at" : "2021-07-04T10:54:21.458656",
"modified_at" : "2021-07-04T10:54:21.458656",
"created_by" : "poweruser@rabobank.nl",
"modified_by" : "poweruser@rabobank.nl",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}
Retrieve a schema
The schemas/{id}
resource is used to retrieve, update and delete individual schemas.
A GET
request will retrieve the details of a schema.
HTTP request
GET /schemas/4edccfd6aa744e698542da36f1f01114 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 460
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
{
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}
Update a schema
A PATCH
request is used to update a schema. In the request, pass only the field that needs changing.
$ curl 'http://api.example.com/schemas/4edccfd6aa744e698542da36f1f01114' -i -X PATCH \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"description" : "Updated description."
}'
PATCH /schemas/4edccfd6aa744e698542da36f1f01114 HTTP/1.1
Content-Length: 44
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"description" : "Updated description."
}
HTTP/1.1 204 No Content
ETag: "0"
Last-Modified: Thu, 7 Jun 2018 23:16:23 GMT
Schema search endpoints
/schemas/search/findByName
Search for a schema by exact name.
Parameter | Description |
---|---|
|
Schema name to search for. |
GET /schemas/search/findByName?name=nl.rabobank.beb.key-schema1 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 642
{
"_embedded" : {
"schemas" : [ {
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
/schemas/search/findByNameContaining
Search for a schema by name containing search term.
Parameter | Description |
---|---|
|
Term to search within schema name. |
GET /schemas/search/findByNameContaining?name=rabobank HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 1804
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"schemas" : [ {
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "nl.rabobank.beb.value-schema1",
"description" : "",
"uid" : "8bc19be0c9cd4da296acd78e6022edf1",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "nl.rabobank.beb.key-schema2",
"description" : "",
"uid" : "a32ead9183734d838e32c8454af9f3f5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"name" : "nl.rabobank.beb.value-schema2",
"description" : "",
"uid" : "dae551f956af48c1baa53281b5edca00",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
},
"page" : {
"size" : 20,
"totalElements" : 4,
"totalPages" : 1,
"number" : 0
}
}
Uploading a new schema for your tenant is a 2 steps process where first we verify if the schema is valid , non duplicate schema. Then upload the schema
Check a schema
A POST
request is used to check a schema.
Curl request
$ curl 'http://api.example.com/schemas/check' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"schema" : "{\"type\":\"record\",\"name\":\"Random\",\"namespace\":\"io.axual.qa.general\",\"doc\":\"Object type that is supposed to be filled with a Random value. This should be used when the Key is irrelevant.\",\"fields\":[{\"name\":\"random\",\"type\":\"string\",\"doc\":\"The random value.\"}]}"
}'
HTTP request
POST /schemas/check HTTP/1.1
realm: rabo
Content-Length: 306
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"schema" : "{\"type\":\"record\",\"name\":\"Random\",\"namespace\":\"io.axual.qa.general\",\"doc\":\"Object type that is supposed to be filled with a Random value. This should be used when the Key is irrelevant.\",\"fields\":[{\"name\":\"random\",\"type\":\"string\",\"doc\":\"The random value.\"}]}"
}
HTTP response
HTTP/1.1 200 OK
Content-Length: 75
Content-Type: application/json;charset=UTF-8
{
"versions" : [ "0.0.1" ],
"fullName" : "io.axual.qa.general.Random"
}
Upload a schema
A POST
request is used to upload a schema.
Curl request
$ curl 'http://api.example.com/schemas/upload' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"schema" : "{\"type\":\"record\",\"name\":\"Random\",\"namespace\":\"io.axual.qa.general\",\"doc\":\"Object type that is supposed to be filled with a Random value. This should be used when the Key is irrelevant.\",\"fields\":[{\"name\":\"random\",\"type\":\"string\",\"doc\":\"The random value.\"}]}",
"version" : "2",
"description" : "description"
}'
HTTP request
POST /schemas/upload HTTP/1.1
realm: rabo
Host: api.example.com
Content-Length: 358
Content-Type: application/json
Authorization: Bearer token
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"schema" : "{\"type\":\"record\",\"name\":\"Random\",\"namespace\":\"io.axual.qa.general\",\"doc\":\"Object type that is supposed to be filled with a Random value. This should be used when the Key is irrelevant.\",\"fields\":[{\"name\":\"random\",\"type\":\"string\",\"doc\":\"The random value.\"}]}",
"version" : "2",
"description" : "description"
}
HTTP response
HTTP/1.1 200 OK
Content-Length: 66
Content-Type: application/json;charset=UTF-8
{
"version" : "2",
"fullName" : "io.axual.qa.general.Random"
}
Schema Version
A Schema is an AVRO definition formatted in JSON. Schemas are used by Streams of data type AVRO.
The schemas
resource is used to create and list Schemas.
JSON Schema
The schemas
resource uses the following json-schema:
GET /profile/schema_versions HTTP/1.1
Accept: application/schema+json
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Length: 1078
Content-Type: application/schema+json;charset=UTF-8
{
"title" : "Schema version",
"properties" : {
"schema" : {
"title" : "Schema",
"readOnly" : false,
"type" : "string",
"format" : "uri"
},
"uid" : {
"title" : "Uid",
"readOnly" : true,
"type" : "string"
},
"schemaBody" : {
"title" : "Schema body",
"readOnly" : false,
"type" : "string"
},
"modified_by" : {
"title" : "Modified by",
"readOnly" : false,
"type" : "string"
},
"created_at" : {
"title" : "Created at",
"readOnly" : true,
"type" : "string",
"format" : "date-time"
},
"modified_at" : {
"title" : "Modified at",
"readOnly" : false,
"type" : "string",
"format" : "date-time"
},
"version" : {
"title" : "Version",
"readOnly" : false,
"type" : "string"
},
"created_by" : {
"title" : "Created by",
"readOnly" : true,
"type" : "string"
}
},
"definitions" : { },
"type" : "object",
"$schema" : "http://json-schema.org/draft-04/schema#"
}
List all schema versions
A GET
request will list all the schema versions visible to the currently logged in user.
Curl request
$ curl 'http://api.example.com/schema_versions' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /schema_versions HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 7906
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"schema_versions" : [ {
"version" : "v1",
"schemaBody" : "schemaBody",
"uid" : "b5c0a6b2fdd94d64925fd2fadb367891",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"schema" : {
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v1",
"schemaBody" : "schemaBody1",
"uid" : "c633a9d3badb4fa0861965246be64558",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"schema" : {
"name" : "nl.rabobank.beb.value-schema1",
"description" : "",
"uid" : "8bc19be0c9cd4da296acd78e6022edf1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v1",
"schemaBody" : "schemaBody",
"uid" : "5162f72742cd4c6db07b9a71a825fe4f",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"schema" : {
"name" : "nl.rabobank.beb.key-schema2",
"description" : "",
"uid" : "a32ead9183734d838e32c8454af9f3f5",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v1",
"schemaBody" : "schemaBody1",
"uid" : "0aa818df699847d08c24f75a4a7399ed",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"schema" : {
"name" : "nl.rabobank.beb.value-schema2",
"description" : "",
"uid" : "dae551f956af48c1baa53281b5edca00",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v2",
"schemaBody" : "schemaBody",
"uid" : "b5c0a6b2fdd94d64925fd2fadb367f2d",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"schema" : {
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v2",
"schemaBody" : "schemaBody1",
"uid" : "c633a9d3badb4fa0861965246be645a2",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"schema" : {
"name" : "nl.rabobank.beb.value-schema1",
"description" : "",
"uid" : "8bc19be0c9cd4da296acd78e6022edf1",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "0.0.1",
"schemaBody" : "{\"type\":\"record\",\"name\":\"Random\",\"namespace\":\"io.axual.qa.general\",\"doc\":\"Object type that is supposed to be filled with a Random value. This should be used when the Key is irrelevant.\",\"fields\":[{\"name\":\"random\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"The random value.\"}]}",
"uid" : "858d48056942069b916a8053e138s2f6",
"created_at" : "2018-09-20T00:00:00",
"modified_at" : "2018-09-20T00:00:00",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"schema" : {
"name" : "io.axual.qa.general.Random",
"description" : "Demo schema",
"uid" : "858d48056942069a916a8053e138s2e4",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 20,
"totalElements" : 7,
"totalPages" : 1,
"number" : 0
}
}
List all schema versions only
Sometimes, fetching the schema versions might be sufficient instead of fetching the complete object.
For e.g. in displaying drop-down forms. To get schema versions only, use the same GET
call as above
but add a parameter projection
with value versions
. Last modified date is also included to
help determine the latest version.
Request parameters
Parameter | Description |
---|---|
|
Only 1 valid value: |
Curl request
$ curl 'http://api.example.com/schema_versions?projection=versions' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /schema_versions?projection=versions HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 3868
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"schema_versions" : [ {
"version" : "v1",
"uid" : "b5c0a6b2fdd94d64925fd2fadb367891",
"modifiedAt" : "2018-06-07T23:16:23.774",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v1",
"uid" : "c633a9d3badb4fa0861965246be64558",
"modifiedAt" : "2018-06-07T23:16:23.774",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v1",
"uid" : "5162f72742cd4c6db07b9a71a825fe4f",
"modifiedAt" : "2018-06-07T23:16:23.774",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v1",
"uid" : "0aa818df699847d08c24f75a4a7399ed",
"modifiedAt" : "2018-06-07T23:16:23.774",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v2",
"uid" : "b5c0a6b2fdd94d64925fd2fadb367f2d",
"modifiedAt" : "2018-06-07T23:16:23.774",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v2",
"uid" : "c633a9d3badb4fa0861965246be645a2",
"modifiedAt" : "2018-06-07T23:16:23.774",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "0.0.1",
"uid" : "858d48056942069b916a8053e138s2f6",
"modifiedAt" : "2018-09-20T00:00:00",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
},
"search" : {
"href" : "...",
"title" : "Search endpoints for this entity"
}
},
"page" : {
"size" : 20,
"totalElements" : 7,
"totalPages" : 1,
"number" : 0
}
}
Schema Versions search endpoint
/schema_versions/search/findAllBySchema
Returns the schema versions of the given Schema
.
Request parameters
Parameter | Description |
---|---|
|
A valid URI of an existing Schema |
Curl request
$ curl 'http://api.example.com/schema_versions/search/findAllBySchema?schema=http%3A%2F%2Flocalhost%2Fschemas%2F4edccfd6aa744e698542da36f1f01114' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP request
GET /schema_versions/search/findAllBySchema?schema=http%3A%2F%2Flocalhost%2Fschemas%2F4edccfd6aa744e698542da36f1f01114 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Content-Length: 2183
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"schema_versions" : [ {
"version" : "v1",
"schemaBody" : "schemaBody",
"uid" : "b5c0a6b2fdd94d64925fd2fadb367891",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"schema" : {
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}, {
"version" : "v2",
"schemaBody" : "schemaBody",
"uid" : "b5c0a6b2fdd94d64925fd2fadb367f2d",
"created_at" : "2018-06-07T23:16:23.774",
"modified_at" : "2018-06-07T23:16:23.774",
"created_by" : null,
"modified_by" : null,
"_embedded" : {
"schema" : {
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
}
}
}
Create schema version
A POST
request is used to create a new schema. To create a new AVRO definition, refer to SchemaVersion.
Request fields
Path | Type | Description | Constraints |
---|---|---|---|
version |
String |
Version string for this schema |
Must not be empty. Size must be between 0 and 50 inclusive |
schemaBody |
String |
A JSON formatted string representing an AVRO schema. |
|
schema |
String |
A valid URI for an existing schema. |
Must not be null |
Curl request
$ curl 'http://api.example.com/schema_versions' -i -X POST \
-H 'realm: rabo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json' \
-H 'X-XSRF-TOKEN: XSRF-TOKEN' \
--cookie 'XSRF-TOKEN=XSRF-TOKEN' \
-d '{
"version" : "test-v1",
"schemaBody" : "{}",
"schema" : "http://api.example.com/schemas/4edccfd6aa744e698542da36f1f01114"
}'
HTTP request
POST /schema_versions HTTP/1.1
Content-Length: 130
realm: rabo
Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
Accept: application/hal+json
X-XSRF-TOKEN: XSRF-TOKEN
Cookie: XSRF-TOKEN=XSRF-TOKEN
{
"version" : "test-v1",
"schemaBody" : "{}",
"schema" : "http://api.example.com/schemas/4edccfd6aa744e698542da36f1f01114"
}
HTTP response
HTTP/1.1 201 Created
Content-Length: 900
Last-Modified: Sun, 4 Jul 2021 10:54:21 GMT
ETag: "0"
Content-Type: application/hal+json;charset=UTF-8
Location: http://api.example.com/schema_versions/eced67e20c604caca6af289c72f216f5
{
"version" : "test-v1",
"schemaBody" : "{}",
"uid" : "eced67e20c604caca6af289c72f216f5",
"created_at" : "2021-07-04T10:54:21.311551",
"modified_at" : "2021-07-04T10:54:21.311551",
"created_by" : "poweruser@rabobank.nl",
"modified_by" : "poweruser@rabobank.nl",
"_embedded" : {
"schema" : {
"name" : "nl.rabobank.beb.key-schema1",
"description" : "",
"uid" : "4edccfd6aa744e698542da36f1f01114",
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
}
}
}
},
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"schemaVersion" : {
"href" : "...",
"templated" : true
},
"schema" : {
"href" : "...",
"templated" : true,
"title" : "A schema"
}
}
}
Support Tier
Support Tier can be assigned to instances and is used to determine the support plan chosen for the instance.
List all support tiers
A GET
request will list all the support tiers.
Curl request
$ curl 'http://api.example.com/support_tiers' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /support_tiers HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 1110
Content-Type: application/hal+json;charset=UTF-8
{
"_embedded" : {
"support_tiers" : [ {
"name" : "GOLD",
"description" : "This is gold",
"uid" : "14cadc6238fc4695916a8053302743f5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
}, {
"name" : "SILVER",
"description" : "This is silver",
"uid" : "14cadc6238fc4695916a8053413843f5",
"_links" : {
"self" : {
"href" : "...",
"title" : "URI pointing to current request"
},
"supportTier" : {
"href" : "...",
"templated" : true
}
}
} ]
},
"_links" : {
"self" : {
"href" : "...",
"templated" : true,
"title" : "URI pointing to current request"
},
"profile" : {
"href" : "...",
"title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
}
},
"page" : {
"size" : 20,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
Auth
Management API acts as the Authorization service. All the requests passing through MGMT API are also authenticated against Keycloak or an OIDC provider.
The /auth
base path for authentication / authorization endpoints.
Billing (Deprecated)
The billing
resource uses the following json-schema:
Curl request
$ curl 'http://api.example.com/auth/billing' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP request
GET /auth/billing HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Generic auth
The auth endpoint can be used by all services to check if a user has authority to perform a certain action.
Curl request
$ curl 'http://api.example.com/auth?action=STREAM_CONFIG_VIEW&resourceType=STREAM_CONFIG&resourceUid=c082e097545948dcbd0cf993128d3fc2' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token'
HTTP request
GET /auth?action=STREAM_CONFIG_VIEW&resourceType=STREAM_CONFIG&resourceUid=c082e097545948dcbd0cf993128d3fc2 HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
HTTP response
HTTP/1.1 200 OK
Usage
The Usage stats of all the tenants can be accessed .
View Usage
A GET
request which will return the usage stats for all the tenants across instances.
Only BILLING_INTERNAL user has access to this endpoint.
Curl request
$ curl 'http://api.example.com/usage' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /usage HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 600
[ {
"name" : "rabo",
"groups" : 9,
"instance" : [ {
"name" : "ota",
"streamConfigsCount" : 4,
"supportTier" : "GOLD"
}, {
"name" : "prod",
"streamConfigsCount" : 0,
"supportTier" : null
}, {
"name" : "lst",
"streamConfigsCount" : 0,
"supportTier" : null
}, {
"name" : "ota2",
"streamConfigsCount" : 0,
"supportTier" : "GOLD"
} ]
}, {
"name" : "ing",
"groups" : 4,
"instance" : [ {
"name" : "prod",
"streamConfigsCount" : 1,
"supportTier" : null
} ]
}, {
"name" : "supertenant",
"groups" : 0,
"instance" : [ ]
} ]
View Instance info
A GET
request which will return the instance’s info for all the tenants.
Only BILLING_INTERNAL user has access to this endpoint.
Curl request
$ curl 'http://api.example.com/usage/instances' -i -X GET \
-H 'realm: rabo' \
-H 'Authorization: Bearer token' \
-H 'Accept: application/hal+json'
HTTP request
GET /usage/instances HTTP/1.1
realm: rabo
Host: api.example.com
Authorization: Bearer token
Accept: application/hal+json
HTTP response
HTTP/1.1 200 OK
Content-Length: 780
Content-Type: application/hal+json;charset=UTF-8
[ {
"instanceShortName" : "ota",
"connectUrls" : "https://connect1.url,https://connect2.url",
"connectEnabled" : true,
"tenantShortName" : "rabo"
}, {
"instanceShortName" : "prod",
"connectUrls" : null,
"connectEnabled" : false,
"tenantShortName" : "rabo"
}, {
"instanceShortName" : "lst",
"connectUrls" : null,
"connectEnabled" : false,
"tenantShortName" : "rabo"
}, {
"instanceShortName" : "prod",
"connectUrls" : null,
"connectEnabled" : false,
"tenantShortName" : "ing"
}, {
"instanceShortName" : "ota",
"connectUrls" : null,
"connectEnabled" : false,
"tenantShortName" : null
}, {
"instanceShortName" : "ota2",
"connectUrls" : "https://connect3.url,https://connect4.url",
"connectEnabled" : true,
"tenantShortName" : "rabo"
} ]