Management API Guide

Axual B.V. Version 6.14.0

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

GET

Used to retrieve a resource

POST

Used to create a new resource

PATCH

Used to update an existing resource, including partial updates

DELETE

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

200 OK

The request completed successfully

201 Created

A new resource has been created successfully. The resource’s URI is available from the response’s Location header

204 No Content

An update to an existing resource has been applied successfully

400 Bad Request

The request was malformed. The response body will include an error providing further information

404 Not Found

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:

Path Type Description

message

String

A description of the cause of the error

status

String

The HTTP error that occurred, e.g. BAD_REQUEST

errors

Array

A list of errors containing the description of the cause of the errors

For example, a request that attempts to create a Tenant without a body will produce a 400 Bad Request response:

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 175

{
  "status" : "BAD_REQUEST",
  "message" : "Bad request",
  "errors" : [ "Invalid request body. Please check API docs for building correct request." ],
  "subErrors" : null
}

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
Authorization: Bearer token
realm: tenanta
Host: api.example.com

The response will have the following format:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 75

{
  "name" : "axual-flux",
  "description" : null,
  "version" : "6.14.0"
}

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

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

page

The page to retrieve

size

Number of entries per page, default value is 20

HTTP request

GET /tenants?page=0&size=5 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1962

{
  "_embedded" : {
    "tenants" : [ {
      "properties" : {
        "replication.factor" : "1",
        "cleanup.policy" : "delete",
        "min.insync.replicas" : "1"
      },
      "name" : "TenantA",
      "shortName" : "tenanta",
      "logo" : "tenanta.png",
      "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
      "dataClassificationEnabled" : false,
      "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
      "retentionTime" : 604800000,
      "partitions" : 12,
      "supportedAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "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
  }
}
Relation Description

first

The first page of results

last

The last page of results

next

The next page of results

prev

The previous page of results

Response fields

Path Type Description

_embedded

Object

List of results

_links

Object

Links to other resources and pages

page

Object

Summary of current page results

page.size

Number

Number of results in current page

page.totalElements

Number

Total number of results available

page.totalPages

Number

Total pages available

page.number

Number

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

sort

The field to sort on. Multiple fields can be specified by adding &sort=PROPERTY. To change the direction append a , to the property name plus either asc or desc

HTTP request

GET /tenants?sort=shortName&size=5 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1962

{
  "_embedded" : {
    "tenants" : [ {
      "properties" : {
        "replication.factor" : "1",
        "cleanup.policy" : "delete",
        "min.insync.replicas" : "1"
      },
      "name" : "TenantA",
      "shortName" : "tenanta",
      "logo" : "tenanta.png",
      "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
      "dataClassificationEnabled" : false,
      "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
      "retentionTime" : 604800000,
      "partitions" : 12,
      "supportedAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "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 an 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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

Example POST request:

Curl request

$ curl 'http://api.example.com/applications' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --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
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1097

{
  "firstName" : "powerUser",
  "lastName" : "powerUser",
  "middleName" : null,
  "emailAddress" : {
    "email" : "poweruser@tenanta.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"
    },
    "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"
    }
  }
}

Get my groups

Returns all groups that currently authenticated user belongs to.

GET /group HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1190

{
  "_embedded" : {
    "groups" : [ {
      "name" : "Application-tenAApplication1",
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "_links" : {
        "members" : {
          "href" : "...",
          "templated" : true,
          "title" : "Users belonging to this group"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "Stream-tenAApplication2",
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "88eb98e0eff34fde923c15687e6d75d5",
      "_links" : {
        "members" : {
          "href" : "...",
          "templated" : true,
          "title" : "Users belonging to this group"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 2,
    "totalPages" : 1,
    "number" : 0
  }
}

Get the authenticated tenant

GET /tenant

Returns the tenant of the logged-in user.

GET /tenant HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1055

{
  "properties" : {
    "replication.factor" : "1",
    "cleanup.policy" : "delete",
    "min.insync.replicas" : "1"
  },
  "name" : "TenantA",
  "shortName" : "tenanta",
  "logo" : "tenanta.png",
  "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
  "dataClassificationEnabled" : false,
  "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
  "retentionTime" : 604800000,
  "partitions" : 12,
  "supportedAuthenticationMethods" : [ {
    "rank" : 0,
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS"
  }, {
    "rank" : 2,
    "protocol" : "SASL",
    "mechanism" : "OAUTH_BEARER"
  }, {
    "rank" : 1,
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  } ],
  "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"
    }
  }
}

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

Object

Links to other resources

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 2539

{
  "_links" : {
    "application_access_grants" : {
      "href" : "...",
      "templated" : true
    },
    "tenants" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create tenants"
    },
    "application_access" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create ApplicationAccess"
    },
    "integrities" : {
      "href" : "...",
      "templated" : true
    },
    "clusters" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create clusters"
    },
    "application_credentials" : {
      "href" : "...",
      "templated" : true
    },
    "application_principals" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create ApplicationPrincipals"
    },
    "environments" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create environments"
    },
    "support_tiers" : {
      "href" : "...",
      "templated" : true
    },
    "confidentialities" : {
      "href" : "...",
      "templated" : true
    },
    "schemas" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create schemas"
    },
    "application_deployments" : {
      "href" : "...",
      "templated" : true
    },
    "stream_configs" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create streams"
    },
    "instances" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create instances"
    },
    "schema_versions" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create schema versions"
    },
    "groups" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create groups"
    },
    "streams" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create streams"
    },
    "connect_plugins" : {
      "href" : "...",
      "templated" : true
    },
    "users" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create users"
    },
    "applications" : {
      "href" : "...",
      "templated" : true,
      "title" : "Access or create applications"
    },
    "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"
    }
  }
}
Relation Description

users

The Users resource

groups

The Groups resource

instances

The Instances resource

clusters

The Clusters resource

environments

The Environments resource

tenants

The Tenants resource

streams

The Streams resource

stream_configs

The StreamConfigs resource

schemas

The Schemas resource

schema_versions

The SchemaVersions resource

applications

The Applications resource

application_principals

The ApplicationPrincipals resource

application_access

The ApplicationAccess resource

application_access_grants

The ApplicationAccessGrant resource

user

Returns the authenticated user

group

Returns the groups that authenticated user belongs to

tenant

Returns the authenticated tenant

profile

The ALPS profile for the service

confidentialities

Returns the confidentiality levels

integrities

Returns the integrity

support_tiers

Returns the support tiers

application_deployments

The ApplicationDeployment resource

connect_plugins

The ConnectPluginsInfo resource

application_credentials

The ApplicationCredentials resource

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 'Authorization: Bearer token' \
    -H 'realm: tenanta'

HTTP request

GET /auth/billing HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

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 'Authorization: Bearer token' \
    -H 'realm: tenanta'

HTTP request

GET /auth?action=STREAM_CONFIG_VIEW&resourceType=STREAM_CONFIG&resourceUid=c082e097545948dcbd0cf993128d3fc2 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK

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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 1356

{
  "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 the service’s Clusters.

Curl request

$ curl 'http://api.example.com/clusters' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'

HTTP request

GET /clusters HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 4124

{
  "_embedded" : {
    "clusters" : [ {
      "name" : "Zone1 Cluster OTA",
      "description" : "",
      "location" : "Zone1",
      "billingCloudEnabled" : true,
      "apiUrl" : "http://clusterapi-ota.zone1.local",
      "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
      "bootstrapServers" : [ {
        "bootstrapServer" : "bootstrapserver1:9093"
      } ],
      "uid" : "66c12e25ab06458eac988f0d700fbe81",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "cluster" : {
          "href" : "...",
          "title" : "A cluster"
        }
      }
    }, {
      "name" : "Zone2 Cluster OTA",
      "description" : "",
      "location" : "Zone2",
      "billingCloudEnabled" : true,
      "apiUrl" : "http://clusterapi-ota.zone2.local",
      "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
      "bootstrapServers" : [ ],
      "uid" : "543c3b7d55634eba83b1472775c131c4",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "cluster" : {
          "href" : "...",
          "title" : "A cluster"
        }
      }
    }, {
      "name" : "Zone1 Cluster PROD",
      "description" : "",
      "location" : "Zone1",
      "billingCloudEnabled" : true,
      "apiUrl" : "http://clusterapi-prod.zone1.local",
      "clusterBrowseUrl" : "http://clusterbrowse-prod.zone1.local",
      "bootstrapServers" : [ ],
      "uid" : "db0766d053ca46d59b0a1af2817c535a",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "cluster" : {
          "href" : "...",
          "title" : "A cluster"
        }
      }
    }, {
      "name" : "Zone2 Cluster PROD",
      "description" : "",
      "location" : "Zone2",
      "billingCloudEnabled" : true,
      "apiUrl" : "http://clusterapi-prod.zone2.local",
      "clusterBrowseUrl" : "http://clusterbrowse-prod.zone2.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" : "Zone1 Cluster LST",
      "description" : "",
      "location" : "Zone1",
      "billingCloudEnabled" : false,
      "apiUrl" : "http://clusterapi-lst.zone1.local",
      "clusterBrowseUrl" : "http://clusterbrowse-lst.zone1.local",
      "bootstrapServers" : [ ],
      "uid" : "f2e75fe2226745bea34ea9f56621f78f",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "cluster" : {
          "href" : "...",
          "title" : "A cluster"
        }
      }
    }, {
      "name" : "Zone2 Cluster LST",
      "description" : "",
      "location" : "Zone2",
      "billingCloudEnabled" : false,
      "apiUrl" : "http://clusterapi-lst.zone2.local",
      "clusterBrowseUrl" : "http://clusterbrowse-lst.zone2.local",
      "bootstrapServers" : [ ],
      "uid" : "5fe719191cd44798ab70322830800dbc",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "cluster" : {
          "href" : "...",
          "title" : "A cluster"
        }
      }
    } ]
  },
  "_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" : 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 (?i)^[a-z0-9\.\-_ ]+$. Must not be empty. Size must be between 3 and 50 inclusive

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --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
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 367
Host: api.example.com
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
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Location: http://api.example.com/clusters/aa8410d078ba49c9a5eed2603bf3ce25
Content-Type: application/hal+json
Content-Length: 634

{
  "name" : "Test Cluster ACC",
  "description" : "Test cluster for ACC in Best DC",
  "location" : "Best",
  "billingCloudEnabled" : false,
  "apiUrl" : "http://testcluster.acc.best.local",
  "clusterBrowseUrl" : "http://testclusterbrowse.acc.best.local:9999",
  "bootstrapServers" : [ {
    "bootstrapServer" : "bootstrapserver2:9092"
  }, {
    "bootstrapServer" : "bootstrapserver1:9092"
  } ],
  "uid" : "aa8410d078ba49c9a5eed2603bf3ce25",
  "_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 'Authorization: Bearer token' \
    -H 'realm: tenanta'

HTTP request

GET /clusters/66c12e25ab06458eac988f0d700fbe81 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Content-Type: application/hal+json
Content-Length: 541

{
  "name" : "Zone1 Cluster OTA",
  "description" : "",
  "location" : "Zone1",
  "billingCloudEnabled" : true,
  "apiUrl" : "http://clusterapi-ota.zone1.local",
  "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "description" : "modified description"
}'
PATCH /clusters/66c12e25ab06458eac988f0d700fbe81 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 44
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "description" : "modified description"
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"

Cluster search endpoints

/clusters/search/findByName

Search for a cluster by exact name.

Parameter Description

name

Cluster name to search for.

GET /clusters/search/findByName?name=Zone1+Cluster+LST HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Content-Type: application/hal+json
Content-Length: 488

{
  "name" : "Zone1 Cluster LST",
  "description" : "",
  "location" : "Zone1",
  "billingCloudEnabled" : false,
  "apiUrl" : "http://clusterapi-lst.zone1.local",
  "clusterBrowseUrl" : "http://clusterbrowse-lst.zone1.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

name

Term to search within cluster name.

GET /clusters/search/findByNameContaining?name=best HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 258

{
  "_embedded" : {
    "clusters" : [ ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 0,
    "totalPages" : 0,
    "number" : 0
  }
}

Authentication Methods

Authentication Method represents an individual authentication method available for the system. Those authentication methods are driven by the clusters used by the system.

Usually a cluster supports SSL protocol as authentication method.

Additionally, clusters can support SASL protocol with SCRAM_SHA_256, SCRAM_SHA_512 or OAUTH_BEARER mechanism.

List all authentication methods

A GET request lists all authentication methods in the system. This operation can be done by an Axual admin or a Tenant admin only.

Curl request

$ curl 'http://api.example.com/authentication_methods' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'

HTTP request

GET /authentication_methods HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 237

[ {
  "protocol" : "SASL",
  "mechanism" : "OAUTH_BEARER"
}, {
  "protocol" : "SASL",
  "mechanism" : "SCRAM_SHA_256"
}, {
  "protocol" : "SASL",
  "mechanism" : "SCRAM_SHA_512"
}, {
  "protocol" : "SSL",
  "mechanism" : "MUTUAL_TLS"
} ]

Roles

Users can be assigned one or more roles.Each Role grants certain access to the Flux resources.

Valid Roles

Below are the list of roles that can be applied to any User of Flux.

Role Description

SUPER_ADMIN

Can manage Tenants, Instances and Clusters.

TENANT_ADMIN

Can do User and Group management.

APPLICATION_ADMIN

Can CREATE, READ, UPDATE applications within their own tenant.

APPLICATION_AUTHOR

Can CREATE new applications within their own tenant.

STREAM_ADMIN

Can CREATE, READ, UPDATE streams within their own tenant.

STREAM_AUTHOR

Can CREATE new streams within their own tenant.

ENVIRONMENT_ADMIN

Can CREATE, READ, UPDATE environments within their own tenant.

ENVIRONMENT_AUTHOR

Can CREATE new environments within their own tenant.

BILLING_VIEWER

Can VIEW billing info for their own tenant.

BILLING_INTERNAL

Can VIEW usage stats for all tenants.

GROUP_ADMIN role is deprecated now and all the group management has moved to TENANT_ADMIN role.

Assigning Roles to Users

To assign a role to any user, send a PATCH request to the endpoint /users/uid/roles. The request body should be an array of 1 or more roles as shown below:

HTTP request

PATCH /users/dc67596abe224691a363a230ca1e291e/roles HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 70
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

[ {
  "name" : "STREAM_ADMIN"
}, {
  "name" : "APPLICATION_AUTHOR"
} ]

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Request fields

Path Type Description Constraints

[].name

String

The name of the role to assign.

This operation will replace all existing roles with the new set of roles provided in the request.

If an invalid role is passed (not present in above table), a 400 Bad Request is returned.

{
  "status" : "BAD_REQUEST",
  "message" : "Bad request",
  "errors" : [ "Invalid request body. Please check API docs for building correct request." ],
  "subErrors" : null
}

Business rules when assigning roles

  1. Only TENANT_ADMIN users are allowed to assign roles for other users of same tenant.

  2. TENANT_ADMIN users can assign any roles except SUPER_ADMIN role.

  3. SUPER_ADMIN users can assign only SUPER_ADMIN role to users of super tenant.

Create the first tenant

After have created the realm in Keycloak

A POST request is used to create the first tenant for installation through the management API. Once tenant creation is successful, user creating the tenant will be given both SUPER_ADMIN and TENANT_ADMIN roles.

As a prerequisite, Admin Keycloak Console should be unrestricted before creating the tenant and can be restricted after the tenant is created.

Request fields

Path Type Description Constraints

tenantName

String

Full name of the tenant

tenantShortName

String

Short name of the tenant. Tenant short name must be same as the realm name

tenantUserEmail

String

Existing Users email in the keycloak realm

Curl request

$ curl 'http://api.example.com/initialize' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "tenantName" : "Test Tenant",
  "tenantShortName" : "test",
  "tenantUserEmail" : "user@tenanta.nl"
}'

HTTP request

POST /initialize HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 105
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "tenantName" : "Test Tenant",
  "tenantShortName" : "test",
  "tenantUserEmail" : "user@tenanta.nl"
}

HTTP response

HTTP/1.1 204 No Content

When the requested realm is not found in keycloak the Management API returns a 400 Bad Request.

HTTP response

HTTP/1.1 400 Bad Request
Content-Type: application/hal+json
Content-Length: 204

{
  "status" : "BAD_REQUEST",
  "message" : "Failed to create Tenant. Please try again or contact Axual administrator.",
  "errors" : [ "Error while validating realm in keycloak" ],
  "subErrors" : null
}

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. 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:

HTTP request

GET /profile/tenants HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 2676

{
  "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"
    },
    "supportedAuthenticationMethods" : {
      "title" : "Supported authentication methods",
      "readOnly" : false,
      "type" : "array",
      "uniqueItems" : true,
      "items" : {
        "$ref" : "#/definitions/tenantAuthenticationMethods"
      }
    },
    "modified_at" : {
      "title" : "Modified at",
      "readOnly" : false,
      "type" : "string",
      "format" : "date-time"
    },
    "properties" : {
      "title" : "Properties",
      "readOnly" : false,
      "type" : "object"
    }
  },
  "definitions" : {
    "tenantAuthenticationMethods" : {
      "type" : "object",
      "properties" : {
        "protocol" : {
          "title" : "Protocol",
          "readOnly" : false,
          "type" : "string"
        },
        "rank" : {
          "title" : "Rank",
          "readOnly" : false,
          "type" : "integer"
        },
        "mechanism" : {
          "title" : "Mechanism",
          "readOnly" : false,
          "type" : "string",
          "enum" : [ "MUTUAL_TLS", "SCRAM_SHA_256", "SCRAM_SHA_512", "OAUTH_BEARER" ]
        }
      }
    }
  },
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /tenants HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1963

{
  "_embedded" : {
    "tenants" : [ {
      "properties" : {
        "replication.factor" : "1",
        "cleanup.policy" : "delete",
        "min.insync.replicas" : "1"
      },
      "name" : "TenantA",
      "shortName" : "tenanta",
      "logo" : "tenanta.png",
      "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
      "dataClassificationEnabled" : false,
      "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
      "retentionTime" : 604800000,
      "partitions" : 12,
      "supportedAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "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" : 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 (?i)^[a-z0-9\.\-_ ]+$. Must not be empty. Size must be between 3 and 50 inclusive

shortName

String

Short name of the tenant

Must match the regular expression (?i)^[a-z0-9]+$. Must not be empty. Size must be between 3 and 12 inclusive

supportedAuthenticationMethods

Array

A list of supported authentication methods. If not specified, default value is SSL. Each authentication methods has a rank defining the order, 0 is the first.

Must not be empty. Must not be null

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "name" : "Test Tenant",
  "shortName" : "test",
  "retentionTime" : 50000,
  "partitions" : 12,
  "supportedAuthenticationMethods" : [ {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256",
    "rank" : 0
  } ]
}'

HTTP request

POST /tenants HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 223
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "name" : "Test Tenant",
  "shortName" : "test",
  "retentionTime" : 50000,
  "partitions" : 12,
  "supportedAuthenticationMethods" : [ {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256",
    "rank" : 0
  } ]
}

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:07:05 GMT
Location: http://api.example.com/tenants/cb7afc0f77c2480ea1f6bda669dd1fe4
Content-Type: application/hal+json
Content-Length: 1134

{
  "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,
  "supportedAuthenticationMethods" : [ {
    "rank" : 0,
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  } ],
  "uid" : "cb7afc0f77c2480ea1f6bda669dd1fe4",
  "created_at" : "2022-08-16T14:07:05.185501",
  "modified_at" : "2022-08-16T14:07:05.185501",
  "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 _embedded property, it means the contact for the current Tenant is not yet set. Otherwise, if it is present, the _embedded 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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /tenants/55ef719629a94a07b9bf8ac0f3c495e5 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 1282

{
  "properties" : {
    "replication.factor" : "1",
    "cleanup.policy" : "delete",
    "min.insync.replicas" : "1"
  },
  "name" : "TenantA",
  "shortName" : "tenanta",
  "logo" : "tenanta.png",
  "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
  "dataClassificationEnabled" : false,
  "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
  "retentionTime" : 604800000,
  "partitions" : 12,
  "supportedAuthenticationMethods" : [ {
    "rank" : 0,
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS"
  }, {
    "rank" : 2,
    "protocol" : "SASL",
    "mechanism" : "OAUTH_BEARER"
  }, {
    "rank" : 1,
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  } ],
  "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"
    }
  }
}
Relation Description

edit

Existence of this link indicates that the currently authenticated user can edit this Tenant

Update a tenant name

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "name" : "New Tenant"
}'
PATCH /tenants/55ef719629a94a07b9bf8ac0f3c495e5 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 27
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "name" : "New Tenant"
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "1"
Last-Modified: Tue, 16 Aug 2022 14:07:05 GMT

Update a tenant supported authentication methods

A PATCH request is used to update a tenant supportedAuthenticationMethods. These supportedAuthenticationMethods define which type of authentication will be required to any applications connecting to a tenant’s instance.

Each supportedAuthenticationMethods has a rank defining the order of importance, the lowest rank has the top priority.

Allowed values are:

Protocol Mechanism

SSL

MUTUAL_TLS

SASL

SCRAM_SHA_256

SASL

SCRAM_SHA_512

SASL

OAUTH_BEARER

$ curl 'http://api.example.com/tenants/55ef719629a94a07b9bf8ac0f3c495e5' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "supportedAuthenticationMethods" : [ {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256",
    "rank" : 2
  }, {
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS",
    "rank" : 1
  }, {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_512",
    "rank" : 0
  }, {
    "protocol" : "SASL",
    "mechanism" : "OAUTH_BEARER",
    "rank" : 3
  } ]
}'
PATCH /tenants/55ef719629a94a07b9bf8ac0f3c495e5 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 366
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "supportedAuthenticationMethods" : [ {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256",
    "rank" : 2
  }, {
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS",
    "rank" : 1
  }, {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_512",
    "rank" : 0
  }, {
    "protocol" : "SASL",
    "mechanism" : "OAUTH_BEARER",
    "rank" : 3
  } ]
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "1"
Last-Modified: Tue, 16 Aug 2022 14:07:05 GMT

Update a tenant featureConfig

A PATCH request is used to update a tenant featureConfig. These featureConfigs are used when running in a SaaS platform. Only an Axual admin can perform this action.

Path Type Description Constraints

featureConfig

String

Only super admin user is able to update the feature config for a tenant.

$ curl 'http://api.example.com/tenants/55ef719629a94a07b9bf8ac0f3c495e5' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "featureConfig" : "{\n  \"userLimit\": 2,\n  \"group\":1\n}"
}'
PATCH /tenants/55ef719629a94a07b9bf8ac0f3c495e5 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 66
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "featureConfig" : "{\n  \"userLimit\": 2,\n  \"group\":1\n}"
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "1"
Last-Modified: Tue, 16 Aug 2022 14:07:05 GMT

Update tenant shortname

A PATCH request is used to update the tenant. Once the tenant is created, tenant shortname cannot be updated.

PATCH /tenants/55ef719629a94a07b9bf8ac0f3c495e5 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 32
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "shortName" : "New Tenant"
}
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 171

{
  "errors" : [ {
    "entity" : "Tenant",
    "property" : "shortName",
    "invalidValue" : "New Tenant",
    "message" : "Tenant short-name can not be edited."
  } ]
}

Update a tenant’s feature config

A PATCH request is used to update a tenant. Only an Axual admin can perform this action.

Path Type Description Constraints

featureConfig

String

Only super admin user is able to update the feature config for a tenant.

$ curl 'http://api.example.com/tenants/55ef719629a94a07b9bf8ac0f3c495e5' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "featureConfig" : "{\n  \"userLimit\": 2,\n  \"group\":1\n}"
}'
PATCH /tenants/55ef719629a94a07b9bf8ac0f3c495e5 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 66
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "featureConfig" : "{\n  \"userLimit\": 2,\n  \"group\":1\n}"
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "1"
Last-Modified: Tue, 16 Aug 2022 14:07:05 GMT

Search endpoints

/tenants/search/findByName

Search for a tenant by exact name.

Parameter Description

name

Exact name to search for.

GET /tenants/search/findByName?name=TenantA HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1645

{
  "_embedded" : {
    "tenants" : [ {
      "properties" : {
        "replication.factor" : "1",
        "cleanup.policy" : "delete",
        "min.insync.replicas" : "1"
      },
      "name" : "TenantA",
      "shortName" : "tenanta",
      "logo" : "tenanta.png",
      "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
      "dataClassificationEnabled" : false,
      "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
      "retentionTime" : 604800000,
      "partitions" : 12,
      "supportedAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "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

name

Term to search for within tenant name.

GET /tenants/search/findByNameContaining?name=TenantA HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1744

{
  "_embedded" : {
    "tenants" : [ {
      "properties" : {
        "replication.factor" : "1",
        "cleanup.policy" : "delete",
        "min.insync.replicas" : "1"
      },
      "name" : "TenantA",
      "shortName" : "tenanta",
      "logo" : "tenanta.png",
      "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
      "dataClassificationEnabled" : false,
      "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
      "retentionTime" : 604800000,
      "partitions" : 12,
      "supportedAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "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

shortName

Tenant short name to search for.

GET /tenants/search/findByShortName?shortName=tenanta HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1645

{
  "_embedded" : {
    "tenants" : [ {
      "properties" : {
        "replication.factor" : "1",
        "cleanup.policy" : "delete",
        "min.insync.replicas" : "1"
      },
      "name" : "TenantA",
      "shortName" : "tenanta",
      "logo" : "tenanta.png",
      "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
      "dataClassificationEnabled" : false,
      "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
      "retentionTime" : 604800000,
      "partitions" : 12,
      "supportedAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "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"
    }
  }
}

Users

A User is a person logging into Self-Service. 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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 1908

{
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /users HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 11818

{
  "_embedded" : {
    "users" : [ {
      "firstName" : "supAdmin",
      "emailAddress" : {
        "email" : "supadmin@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "eb1f7f147df84179a151bdc21f5bb924",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "billingInternal",
      "emailAddress" : {
        "email" : "billingInternal@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "fc287f147df84179a151bdc21f5cc835",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "tenAdmin",
      "emailAddress" : {
        "email" : "tenadmin@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "ea0e7f147df84179a151bdc21f5bb813",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "billingViewer",
      "emailAddress" : {
        "email" : "billingViewer@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "ea0e7f147d224133a151bdc69f5bb613",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "envAdmin",
      "emailAddress" : {
        "email" : "envadmin@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "7cb463240b8049578b298c214c28512a",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "envAuthor",
      "emailAddress" : {
        "email" : "envauthor@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "strAdmin",
      "emailAddress" : {
        "email" : "stradmin@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "a0018341100c431d8a8117be2ad12d8a",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "strAuthor",
      "emailAddress" : {
        "email" : "strauthor@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "3cab41ad252e48a49631d1346d227a17",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "appAdmin",
      "emailAddress" : {
        "email" : "appadmin@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "caa51002633244ffbe36f4ccf8a8f501",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "appAuthor",
      "emailAddress" : {
        "email" : "appauthor@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "e235c8fe4264431bbdb3b40a2e5f8f62",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "powerUser",
      "emailAddress" : {
        "email" : "poweruser@tenanta.nl"
      },
      "lastName" : "powerUser",
      "uid" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "po1",
      "emailAddress" : {
        "email" : "po1@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "51234a7a81994d1ca35ca7894cde08c9",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "po2",
      "emailAddress" : {
        "email" : "po2@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "1ecbda9a995f4ab2a4c95716087b21c7",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "firstNameTest",
      "emailAddress" : {
        "email" : "testuser@tenanta.nl"
      },
      "lastName" : "lastNameTest",
      "uid" : "1759cc36cacd4df38ed1b0336e22e06d",
      "phoneNumber" : null,
      "middleName" : "van der",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "regular",
      "emailAddress" : {
        "email" : "regularuser@tenanta.nl"
      },
      "lastName" : "user",
      "uid" : "dc67596abe224691a363a230ca1e291e",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "kad",
      "emailAddress" : {
        "email" : "kadmember@tenanta.nl"
      },
      "lastName" : "member",
      "uid" : "007b994a6ab34165a93fd4c7a8db1388",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "appOwner",
      "emailAddress" : {
        "email" : "appowner@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "51234a7a81994d1ca35ca7894cde08c6",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "streamOwner",
      "emailAddress" : {
        "email" : "streamowner@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "1ecbda9a995f4ab2a4c95716087b21c8",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "envOwner",
      "emailAddress" : {
        "email" : "envowner@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
      "phoneNumber" : null,
      "middleName" : null,
      "_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"
    },
    "profile" : {
      "href" : "...",
      "title" : "Endpoints for schema metadata in ALPS/JSON Schema format"
    },
    "search" : {
      "href" : "...",
      "title" : "Search endpoints for this entity"
    },
    "create" : {
      "href" : "...",
      "title" : "Indication that an entity can be created"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 19,
    "totalPages" : 1,
    "number" : 0
  }
}
Relation Description

create

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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /users/dc67596abe224691a363a230ca1e291e HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 990

{
  "firstName" : "regular",
  "lastName" : "user",
  "middleName" : null,
  "emailAddress" : {
    "email" : "regularuser@tenanta.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"
    }
  }
}
Relation Description

edit

Existence of this link indicates that the currently authenticated user can edit the User

assign_roles

Existence of this link indicates that the currently authenticated user can assign roles to this user

delete

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 tussenvoegsel of the user

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "firstName" : "User",
  "lastName" : "Vrij",
  "middleName" : "van",
  "emailAddress" : "user.van.vrij@tenanta.nl",
  "password" : "notsecret",
  "phoneNumber" : "0612345678"
}'

HTTP request

POST /users HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 180
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "firstName" : "User",
  "lastName" : "Vrij",
  "middleName" : "van",
  "emailAddress" : "user.van.vrij@tenanta.nl",
  "password" : "notsecret",
  "phoneNumber" : "0612345678"
}

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:07:21 GMT
Location: http://api.example.com/users/eafd6eb05f87457194ca7d7693ed791a
Content-Type: application/hal+json
Content-Length: 1038

{
  "firstName" : "User",
  "lastName" : "Vrij",
  "middleName" : "van",
  "emailAddress" : {
    "email" : "user.van.vrij@tenanta.nl"
  },
  "phoneNumber" : "0612345678",
  "roles" : [ ],
  "uid" : "eafd6eb05f87457194ca7d7693ed791a",
  "created_at" : "2022-08-16T14:07:21.643191",
  "modified_at" : "2022-08-16T14:07:21.643191",
  "created_by" : "tenadmin@tenanta.nl",
  "modified_by" : "tenadmin@tenanta.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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "phoneNumber" : "+31063433333"
}'
PATCH /users/dc67596abe224691a363a230ca1e291e HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 36
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "phoneNumber" : "+31063433333"
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Thu, 07 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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /users/007b994a6ab34165a93fd4c7a8db1388 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Users search endpoints

/users/search/findByFirstName

Returns all users with firstName containing the given firstName.

Parameter Description

firstName

A name or part of name

GET /users/search/findByFirstName?firstName=poweruser HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 953

{
  "_embedded" : {
    "users" : [ {
      "firstName" : "powerUser",
      "emailAddress" : {
        "email" : "poweruser@tenanta.nl"
      },
      "lastName" : "powerUser",
      "uid" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
      "phoneNumber" : null,
      "middleName" : null,
      "_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" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}

/users/search/findByLastName

Returns all users with lastName containing the given lastName.

Parameter Description

lastName

A surname or part of surname

GET /users/search/findByLastName?lastName=lastNameTest HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 964

{
  "_embedded" : {
    "users" : [ {
      "firstName" : "firstNameTest",
      "emailAddress" : {
        "email" : "testuser@tenanta.nl"
      },
      "lastName" : "lastNameTest",
      "uid" : "1759cc36cacd4df38ed1b0336e22e06d",
      "phoneNumber" : null,
      "middleName" : "van der",
      "_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" : 1,
    "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=poweruser
realm: tenanta
Host: api.example.com
Authorization: Bearer token
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 953

{
  "_embedded" : {
    "users" : [ {
      "firstName" : "powerUser",
      "lastName" : "powerUser",
      "emailAddress" : {
        "email" : "poweruser@tenanta.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" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}

/users/search/findByRole

Returns all users with given roles. Pass the name of the role as parameter.

Parameter Description

role

The name of role

GET /users/search/findByRole?role=TENANT_ADMIN HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1543

{
  "_embedded" : {
    "users" : [ {
      "firstName" : "tenAdmin",
      "emailAddress" : {
        "email" : "tenadmin@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "ea0e7f147df84179a151bdc21f5bb813",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "user" : {
          "href" : "...",
          "templated" : true,
          "title" : "A user"
        },
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        }
      }
    }, {
      "firstName" : "powerUser",
      "emailAddress" : {
        "email" : "poweruser@tenanta.nl"
      },
      "lastName" : "powerUser",
      "uid" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
      "phoneNumber" : null,
      "middleName" : null,
      "_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

email

A valid email object

GET /users/search/findByEmailAddress?email=appowner%40tenanta.nl HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 745

{
  "_embedded" : {
    "users" : [ {
      "firstName" : "appOwner",
      "emailAddress" : {
        "email" : "appowner@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "51234a7a81994d1ca35ca7894cde08c6",
      "phoneNumber" : null,
      "middleName" : null,
      "_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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 1428

{
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /groups HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 5499

{
  "_embedded" : {
    "groups" : [ {
      "name" : "Application-tenAApplication1",
      "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-tenAApplication1",
      "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-tenAApplication2",
      "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-tenAenv1",
      "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-tenAprivenv2",
      "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" : "...",
      "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" : "...",
      "title" : "Indication that an entity can be created"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 9,
    "totalPages" : 1,
    "number" : 0
  }
}
Relation Description

create

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 (?i)^[a-z0-9\.\-_ ]+$. Must not be empty. Size must be between 3 and 80 inclusive

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "name" : "Team Amazing",
  "emailAddress" : "team.amazing@tenanta.nl",
  "phoneNumber" : "+31612345678",
  "members" : [ "http://api.example.com/users/9e66c8d7cd5c4e509ec0fe840ef37c62" ]
}'

HTTP request

POST /groups HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 192
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "name" : "Team Amazing",
  "emailAddress" : "team.amazing@tenanta.nl",
  "phoneNumber" : "+31612345678",
  "members" : [ "http://api.example.com/users/9e66c8d7cd5c4e509ec0fe840ef37c62" ]
}

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:07:06 GMT
Location: http://api.example.com/groups/a83f789e28704d17a5429b1bbd064841
Content-Type: application/hal+json
Content-Length: 1442

{
  "name" : "Team Amazing",
  "emailAddress" : {
    "email" : "team.amazing@tenanta.nl"
  },
  "phoneNumber" : "+31612345678",
  "uid" : "a83f789e28704d17a5429b1bbd064841",
  "created_at" : "2022-08-16T14:07:06.480493",
  "modified_at" : "2022-08-16T14:07:06.480493",
  "created_by" : "tenadmin@tenanta.nl",
  "modified_by" : "tenadmin@tenanta.nl",
  "_embedded" : {
    "members" : [ {
      "firstName" : "envAuthor",
      "emailAddress" : {
        "email" : "envauthor@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    } ]
  },
  "_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"
    }
  }
}
Relation Description

members

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
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Content-Type: application/hal+json
Content-Length: 2356

{
  "name" : "Application-tenAApplication1",
  "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",
      "emailAddress" : {
        "email" : "envauthor@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "firstName" : "appOwner",
      "emailAddress" : {
        "email" : "appowner@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "51234a7a81994d1ca35ca7894cde08c6",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "firstName" : "envAdmin",
      "emailAddress" : {
        "email" : "envadmin@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "7cb463240b8049578b298c214c28512a",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    } ]
  },
  "_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

name

String

The name of the group.

members

Array

Users belonging to this group. This field would be absent if group has no members.

Relation Description

members

The members of this Group can be found at this link. This link is also used add/remove users from this group.

edit

Existence of this link indicates that the currently authenticated user can edit the Group

delete

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "name" : "Team Medallion"
}'
PATCH /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 31
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "name" : "Team Medallion"
}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Content-Type: application/hal+json
Content-Length: 2235

{
  "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",
      "emailAddress" : {
        "email" : "envauthor@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "firstName" : "appOwner",
      "emailAddress" : {
        "email" : "appowner@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "51234a7a81994d1ca35ca7894cde08c6",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "firstName" : "envAdmin",
      "emailAddress" : {
        "email" : "envadmin@tenanta.nl"
      },
      "lastName" : "TenantA",
      "uid" : "7cb463240b8049578b298c214c28512a",
      "phoneNumber" : null,
      "middleName" : null,
      "_links" : {
        "tenant" : {
          "href" : "...",
          "title" : "A tenant"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    } ]
  },
  "_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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/deletion-constraints HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 102

{
  "canDelete" : false,
  "environmentsCount" : 0,
  "applicationsCount" : 23,
  "streamsCount" : 0
}

Delete group

A DELETE request is used to delete a Group.

$ curl 'http://api.example.com/groups/514d4oit834841869644c2ad8b439553' -i -X DELETE \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /groups/514d4oit834841869644c2ad8b439553 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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 'Content-Type: text/uri-list' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d 'http://localhost/users/dc67596abe224691a363a230ca1e291e'
POST /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/members HTTP/1.1
Content-Type: text/uri-list
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 55
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

http://localhost/users/dc67596abe224691a363a230ca1e291e
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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 'Content-Type: text/uri-list' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d 'http://localhost/users/dc67596abe224691a363a230ca1e291e'
PUT /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/members HTTP/1.1
Content-Type: text/uri-list
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 55
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

http://localhost/users/dc67596abe224691a363a230ca1e291e
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /groups/c339c5cf9b5a4f6b8342c6ea2f9b6775/members/51234a7a81994d1ca35ca7894cde08c6 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Group search endpoints

/groups/search/findByName

Search for a group by exact name.

Parameter Description

name

Stream name to search for.

$ curl 'http://api.example.com/groups/search/findByName?name=tenanta-stream1' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
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

name

Term to search within group name.

$ curl 'http://api.example.com/groups/search/findByNameContaining?name=group' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
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

user

A valid URI of a user

$ curl 'http://api.example.com/groups/search/findByMembersContains?user=http%3A%2F%2Flocalhost%2Fusers%2F007b994a6ab34165a93fd4c7a8db1388' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 792

{
  "_embedded" : {
    "groups" : [ {
      "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"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}

Instances

An Instance represents a single installation of Axual Event Bus (AEB). An 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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 3603

{
  "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"
    },
    "enabledAuthenticationMethods" : {
      "title" : "Enabled authentication methods",
      "readOnly" : false,
      "type" : "array",
      "uniqueItems" : true,
      "items" : {
        "$ref" : "#/definitions/instanceAuthenticationMethods"
      }
    },
    "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",
      "uniqueItems" : true,
      "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"
        }
      }
    },
    "instanceAuthenticationMethods" : {
      "type" : "object",
      "properties" : {
        "protocol" : {
          "title" : "Protocol",
          "readOnly" : false,
          "type" : "string"
        },
        "rank" : {
          "title" : "Rank",
          "readOnly" : true,
          "type" : "integer"
        },
        "mechanism" : {
          "title" : "Mechanism",
          "readOnly" : false,
          "type" : "string",
          "enum" : [ "MUTUAL_TLS", "SCRAM_SHA_256", "SCRAM_SHA_512", "OAUTH_BEARER" ]
        }
      }
    },
    "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 the Instances available.

Curl request

$ curl 'http://api.example.com/instances' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'

HTTP request

GET /instances HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 5927

{
  "_embedded" : {
    "instances" : [ {
      "name" : "TenantA OTA",
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS",
        "rank" : 0
      }, {
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER",
        "rank" : 2
      }, {
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256",
        "rank" : 1
      } ],
      "instanceClusters" : [ {
        "cluster" : {
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "description" : "TenantA 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" : "TenantA Prod",
      "shortName" : "prod",
      "enabledAuthenticationMethods" : [ ],
      "instanceClusters" : [ {
        "cluster" : {
          "name" : "Zone1 Cluster PROD",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-prod.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-prod.zone1.local",
          "bootstrapServers" : [ ],
          "uid" : "db0766d053ca46d59b0a1af2817c535a"
        },
        "schemaRegistryUrls" : "https://schema.local4"
      } ],
      "description" : "TenantA 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" : "TenantA LST",
      "shortName" : "lst",
      "enabledAuthenticationMethods" : [ {
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS",
        "rank" : 0
      } ],
      "instanceClusters" : [ {
        "cluster" : {
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local7"
      } ],
      "description" : "TenantA 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" : "TenantA OTA2",
      "shortName" : "ota2",
      "enabledAuthenticationMethods" : [ {
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256",
        "rank" : 0
      } ],
      "instanceClusters" : [ {
        "cluster" : {
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local6"
      } ],
      "description" : "Second TenantA 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" : "...",
      "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" : "...",
      "title" : "Indication that an entity can be shown in menu"
    },
    "create" : {
      "href" : "...",
      "title" : "Indication that an entity can be created"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 4,
    "totalPages" : 1,
    "number" : 0
  }
}
Relation Description

show

Existence of show link indicates that currently authenticated user should be shown the Instances menu option.

create

Existence of create link indicates that currently authenticated user can create new Instance.

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 (?i)^[a-z0-9\.\-_ ]+$. Must not be empty. Size must be between 3 and 50 inclusive

shortName

String

A short name of the instance.

Must match the regular expression (?i)^[a-z0-9]+$. Must not be empty. Size must be between 2 and 12 inclusive

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

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.

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

caCerts

Array

Collection of CA certificates that should be in the chain of client certificates used for produce/consume. These CA certificates are also used to talk to Schema Registry when browsing the stream

supportTier

String

A valid URI of Support Tier for the instance

enabledAuthenticationMethods

Array

A list of enabled authentication methods. If not specified, default value is SSL.

Must not be empty. Must not be null

properties

Object

A list of Instance specific variables in Key,Value format.

Curl request

$ curl 'http://api.example.com/instances' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --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"
  } ],
  "enabledAuthenticationMethods" : [ {
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS"
  }, {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  } ],
  "apiUrl" : "http://boxtel-lst.instance.local",
  "shortName" : "lst",
  "connectEnabled" : false
}'

HTTP request

POST /instances HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 2554
Host: api.example.com
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"
  } ],
  "enabledAuthenticationMethods" : [ {
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS"
  }, {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  } ],
  "apiUrl" : "http://boxtel-lst.instance.local",
  "shortName" : "lst",
  "connectEnabled" : false
}

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:08:19 GMT
Location: http://api.example.com/instances/cf78e7a0982f4f4fa7a455a7cf7448d1
Content-Type: application/hal+json
Content-Length: 3795

{
  "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",
  "enabledAuthenticationMethods" : [ {
    "rank" : 0,
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS"
  }, {
    "rank" : 1,
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  } ],
  "connectEnabled" : false,
  "connectUrls" : null,
  "uid" : "cf78e7a0982f4f4fa7a455a7cf7448d1",
  "created_at" : "2022-08-16T14:08:19.617775",
  "modified_at" : "2022-08-16T14:08:19.617775",
  "created_by" : "tenadmin@tenanta.nl",
  "modified_by" : "tenadmin@tenanta.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 clean up segments beyond the retention window. Possible values are delete, compact. Default value is delete.

min.insync.replicas

The number of in-sync replicas that must be available 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.

create-stream.disable-time

Time duration after which Management API will allow recreating a stream-config that has been deleted previously. Default value is 0, time unit is minutes.

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 'Authorization: Bearer token' \
    -H 'realm: tenanta'

HTTP request

GET /instances/b9301e9144324928911f7d83ec40c478 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 3994

{
  "properties" : {
    "replication.factor" : "2",
    "num.partitions" : "3",
    "create-stream.disable-time" : "1",
    "min.insync.replicas" : "1",
    "retention.ms" : "172800000",
    "segment.ms" : "172800000"
  },
  "name" : "TenantA OTA",
  "description" : "TenantA 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=-----END CERTIFICATE-----\n",
    "expiresOn" : null
  } ],
  "shortName" : "ota",
  "enabledAuthenticationMethods" : [ {
    "rank" : 0,
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS"
  }, {
    "rank" : 2,
    "protocol" : "SASL",
    "mechanism" : "OAUTH_BEARER"
  }, {
    "rank" : 1,
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  } ],
  "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
    }
  }
}
Relation Description

synchronize

Existence of this link indicates that currently authenticated user can synchronize this Instance.

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 request

$ curl 'http://api.example.com/instances/b9301e9144324928911f7d83ec40c478' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "description" : "modified description"
}'

HTTP request

PATCH /instances/b9301e9144324928911f7d83ec40c478 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 44
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "description" : "modified description"
}

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "1"
Last-Modified: Tue, 16 Aug 2022 14:08:20 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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "connectEnabled" : true,
  "connectUrls" : "test-connect-worker-1,test-connect-worker-2"
}'

HTTP request

PATCH /instances/b9301e9144324928911f7d83ec40c478 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 94
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "connectEnabled" : true,
  "connectUrls" : "test-connect-worker-1,test-connect-worker-2"
}

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "1"
Last-Modified: Tue, 16 Aug 2022 14:08:19 GMT

Update an instance enabled authentication methods

A PATCH request is used to update an instance enabledAuthenticationMethods.

Allowed values are the supportedAuthenticationMethods for the instance’s Tenant.

Each enabledAuthenticationMethods has a rank defining the order of priority, the rank comes from the Tenant’s supportedAuthenticationMethods.

Curl request

$ curl 'http://api.example.com/instances/b9301e9144324928911f7d83ec40c478' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "enabledAuthenticationMethods" : [ {
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS"
  }, {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  }, {
    "protocol" : "SASL",
    "mechanism" : "OAUTH_BEARER"
  } ]
}'

HTTP request

PATCH /instances/b9301e9144324928911f7d83ec40c478 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 234
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "enabledAuthenticationMethods" : [ {
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS"
  }, {
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  }, {
    "protocol" : "SASL",
    "mechanism" : "OAUTH_BEARER"
  } ]
}

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "1"
Last-Modified: Tue, 16 Aug 2022 14:08:20 GMT

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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'

HTTP request

POST /instances/b9301e9144324928911f7d83ec40c478/synchronize HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Delete Instance endpoints

Deleting an instance is a two-step process, a GET request to check the constraints followed by the DELETE request.

Delete instance constraints

A GET request is used to get the constraints for deleting an instance.The constraint indicates that an instance could be deleted if there are no environments defined for it.

Curl request
$ curl 'http://api.example.com/instances/6e37bcf4d4a44334924aa0f961286668/deletion-constraints' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP request
GET /instances/6e37bcf4d4a44334924aa0f961286668/deletion-constraints HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 82

{
  "canDelete" : true,
  "activeEnvironmentsCount" : 0,
  "envShortNames" : [ ]
}

Delete an instance

A DELETE request is used to delete an instance.

Curl request
$ curl 'http://api.example.com/instances/6e37bcf4d4a44334924aa0f961286668' -i -X DELETE \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
HTTP request
DELETE /instances/6e37bcf4d4a44334924aa0f961286668 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Instance search endpoints

/instances/search/findByName

Search for an instance by exact name.

Request parameters
Parameter Description

name

Instance name to search for.

HTTP request
GET /instances/search/findByName?name=TenantA+OTA HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 3840

{
  "properties" : {
    "replication.factor" : "2",
    "num.partitions" : "3",
    "create-stream.disable-time" : "1",
    "min.insync.replicas" : "1",
    "retention.ms" : "172800000",
    "segment.ms" : "172800000"
  },
  "name" : "TenantA OTA",
  "description" : "TenantA 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=-----END CERTIFICATE-----\n",
    "expiresOn" : null
  } ],
  "shortName" : "ota",
  "enabledAuthenticationMethods" : [ {
    "rank" : 0,
    "protocol" : "SSL",
    "mechanism" : "MUTUAL_TLS"
  }, {
    "rank" : 2,
    "protocol" : "SASL",
    "mechanism" : "OAUTH_BEARER"
  }, {
    "rank" : 1,
    "protocol" : "SASL",
    "mechanism" : "SCRAM_SHA_256"
  } ],
  "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.

Request parameters
Parameter Description

name

Term to search within instance name.

HTTP request
GET /instances/search/findByNameContaining?name=aeb HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 259

{
  "_embedded" : {
    "instances" : [ ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 0,
    "totalPages" : 0,
    "number" : 0
  }
}

ConnectPlugins

A ConnectPlugin stores the plugin class, type, version, and optional config explanation available for an Instance.

The /connect_plugins resource is used to return a unique list of connector plugins, not bound to any environment (axual-connect instance).

List all connect plugins

A GET request will list all the plugins available regardless of the plugin version to the currently logged-in user.

Curl request

$ curl 'http://api.example.com/connect_plugins' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'

HTTP request

GET /connect_plugins HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 3207

{
  "_embedded" : {
    "connect_plugins" : [ {
      "instance" : {
        "tenant" : {
          "shortName" : "tenanta",
          "_links" : {
            "contact" : {
              "href" : "...",
              "templated" : true,
              "title" : "Business contact of this tenant"
            },
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            }
          }
        },
        "_links" : {
          "supportTier" : {
            "href" : "...",
            "templated" : true
          },
          "self" : {
            "href" : "...",
            "templated" : true,
            "title" : "URI pointing to current request"
          }
        }
      },
      "pluginConfigs" : [ {
        "name" : "transforms",
        "type" : "LIST"
      }, {
        "name" : "tasks.max",
        "type" : "INT"
      }, {
        "name" : "key.converter",
        "type" : "CLASS"
      }, {
        "name" : "logger.name",
        "type" : "STRING"
      }, {
        "name" : "connector.class",
        "type" : "STRING"
      }, {
        "name" : "name",
        "type" : "STRING"
      } ],
      "pluginClass" : "io.axual.test.sink.plugin",
      "pluginType" : "SINK",
      "uid" : "197691609c2fe4f129cfc79f18d5d1269",
      "_links" : {
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "instance" : {
        "tenant" : {
          "shortName" : "tenanta",
          "_links" : {
            "contact" : {
              "href" : "...",
              "templated" : true,
              "title" : "Business contact of this tenant"
            },
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            }
          }
        },
        "_links" : {
          "supportTier" : {
            "href" : "...",
            "templated" : true
          },
          "self" : {
            "href" : "...",
            "templated" : true,
            "title" : "URI pointing to current request"
          }
        }
      },
      "pluginConfigs" : [ ],
      "pluginClass" : "io.axual.test.source.plugin",
      "pluginType" : "SOURCE",
      "uid" : "427691609c2f20f129bd179f45d5d1269",
      "_links" : {
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    } ]
  },
  "_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" : 2,
    "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 'Content-Type: application/json' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /connect_plugins/search/findEnvironmentsByApplication?application=http%3A%2F%2Flocalhost%2Fapplications%2Fdbc9e4670h1c4866deg78722e2930d2g HTTP/1.1
Content-Type: application/json
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 10102

{
  "_embedded" : {
    "environmentWithStatuses" : [ {
      "status" : "Undefined",
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv1",
          "shortName" : "tenantaenv1",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "047ab08009fe4da8be6905b55552ab52",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : "io.axual.test.sink.plugin",
          "name" : "tenantaApplication6",
          "type" : "SINK",
          "shortName" : "tenanta_app6",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "",
          "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "status" : "Undefined",
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv3",
          "shortName" : "tenantaenv3",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "156ab08009fe4da8be6905b55552ab63",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : "io.axual.test.sink.plugin",
          "name" : "tenantaApplication6",
          "type" : "SINK",
          "shortName" : "tenanta_app6",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "",
          "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "status" : "Undefined",
      "_embedded" : {
        "environment" : {
          "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"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : "io.axual.test.sink.plugin",
          "name" : "tenantaApplication6",
          "type" : "SINK",
          "shortName" : "tenanta_app6",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "",
          "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "status" : "Undefined",
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv_no_streams",
          "shortName" : "tenantaenvns",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "a5f2383ccce249459b24b7cb189b40bc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : "io.axual.test.sink.plugin",
          "name" : "tenantaApplication6",
          "type" : "SINK",
          "shortName" : "tenanta_app6",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "",
          "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "status" : "Undefined",
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv2",
          "shortName" : "tenantaenv2",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "e11ee2dd976647109ca904dd8adc050f",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : "io.axual.test.sink.plugin",
          "name" : "tenantaApplication6",
          "type" : "SINK",
          "shortName" : "tenanta_app6",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "",
          "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    } ]
  },
  "_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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /confidentialities HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1492

{
  "_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"
        }
      }
    }, {
      "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"
        }
      }
    } ]
  },
  "_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"
    },
    "create" : {
      "href" : "...",
      "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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "level" : "L2",
  "description" : "This is Level 2",
  "color" : "blue"
}'

HTTP request

POST /confidentialities HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 77
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "level" : "L2",
  "description" : "This is Level 2",
  "color" : "blue"
}

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:07:07 GMT
Location: http://api.example.com/confidentialities/c839be5b389a48fe8fc1c28e5e6cd6c0
Content-Type: application/hal+json
Content-Length: 768

{
  "level" : "l2",
  "description" : "This is Level 2",
  "color" : "blue",
  "uid" : "c839be5b389a48fe8fc1c28e5e6cd6c0",
  "created_at" : "2022-08-16T14:07:07.213992",
  "modified_at" : "2022-08-16T14:07:07.213992",
  "created_by" : "tenadmin@tenanta.nl",
  "modified_by" : "tenadmin@tenanta.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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /confidentialities/347ab08009fe4da8be6905b55552ab52 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 733

{
  "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"
    }
  }
}
Relation Description

edit

Existence of this link indicates that the currently authenticated user can edit this Confidentiality level

delete

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "description" : "Updated description"
}'
PATCH /confidentialities/347ab08009fe4da8be6905b55552ab52 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 43
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "description" : "Updated description"
}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
Content-Type: application/hal+json
Content-Length: 732

{
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /confidentialities/648ab08009fe4da8be6905b55552ac43/deletion-constraints HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /confidentialities/347ab08009fe4da8be6905b55552ab52 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /integrities HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1457

{
  "_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"
        }
      }
    }, {
      "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"
        }
      }
    } ]
  },
  "_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"
    },
    "create" : {
      "href" : "...",
      "title" : "Indication that an entity can be created"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 2,
    "totalPages" : 1,
    "number" : 0
  }
}
Relation Description

create

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "level" : "Level 1",
  "description" : "This is level 1",
  "color" : "green"
}'

HTTP request

POST /integrities HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 83
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "level" : "Level 1",
  "description" : "This is level 1",
  "color" : "green"
}

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:07:23 GMT
Location: http://api.example.com/integrities/4de792537b404d01b8f6049bff945ff2
Content-Type: application/hal+json
Content-Length: 762

{
  "level" : "level 1",
  "description" : "This is level 1",
  "color" : "green",
  "uid" : "4de792537b404d01b8f6049bff945ff2",
  "created_at" : "2022-08-16T14:07:23.756368",
  "modified_at" : "2022-08-16T14:07:23.756368",
  "created_by" : "tenadmin@tenanta.nl",
  "modified_by" : "tenadmin@tenanta.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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /integrities/247ab08159fe4da8be6905b55552ab52 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 717

{
  "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"
    }
  }
}
Relation Description

edit

Existence of this link indicates thatthe currently authenticated user can edit this Integrity level

delete

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "description" : "Updated description",
  "color" : "purple",
  "level" : "level-one"
}'
PATCH /integrities/247ab08159fe4da8be6905b55552ab52 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 90
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "description" : "Updated description",
  "color" : "purple",
  "level" : "level-one"
}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
Content-Type: application/hal+json
Content-Length: 729

{
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /integrities/247ab03ffafe4da2bet905b5e352ab53/deletion-constraints HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /integrities/247ab08159fe4da8be6905b55552ab52 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 2269

{
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /environments HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 9003

{
  "_embedded" : {
    "environments" : [ {
      "name" : "tenantaenv1",
      "shortName" : "tenantaenv1",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "047ab08009fe4da8be6905b55552ab52",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaenv2",
      "shortName" : "tenantaenv2",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "e11ee2dd976647109ca904dd8adc050f",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaprivenv1",
      "shortName" : "tenantaprivenv1",
      "visibility" : "private",
      "color" : null,
      "description" : "environment",
      "uid" : "46cfaf47d2d04d12923beefac3d0ba5a",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaprivenv2",
      "shortName" : "tenantaprivenv2",
      "visibility" : "private",
      "color" : null,
      "description" : "environment",
      "uid" : "61b1b34b0c6744dcadb85f4c188517e5",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaprivenv3",
      "shortName" : "tenantaprivenv3",
      "visibility" : "private",
      "color" : null,
      "description" : "environment",
      "uid" : "72c1b34b0c6744dcadb85f4c188518f6",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaprivenv4",
      "shortName" : "tenantaprivenv4",
      "visibility" : "private",
      "color" : null,
      "description" : "environment",
      "uid" : "83c1b34b0c6744dcadb85f4c188518g5",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaprivenv5",
      "shortName" : "tenantaprivenv5",
      "visibility" : "private",
      "color" : null,
      "description" : "environment",
      "uid" : "6u2577bclboz97ievex0fv5hvysemooh",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaenv3",
      "shortName" : "tenantaenv3",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "156ab08009fe4da8be6905b55552ab63",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "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"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaenv_no_streams",
      "shortName" : "tenantaenvns",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "a5f2383ccce249459b24b7cb189b40bc",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaenv_only_app_grant",
      "shortName" : "tenantaenvgrant",
      "visibility" : "private",
      "color" : null,
      "description" : "environment with just application_access_grant and no mapping to application_access",
      "uid" : "a5f2383420e249459b24b7cb189b40bc",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    } ]
  },
  "_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"
    },
    "create" : {
      "href" : "...",
      "title" : "Indication that an entity can be created"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 11,
    "totalPages" : 1,
    "number" : 0
  }
}
Relation Description

create

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 (?i)^[a-z0-9\.\-_ ]+$. Must not be empty. Size must be between 3 and 50 inclusive

shortName

String

The short name of the environment. Used in stream names internally. Must be lower-case.

Must match the regular expression (?i)^[a-z0-9]+$. Must not be empty. Size must be between 3 and 20 inclusive

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 ApplicationAccess on this environment. Possible values are Stream owner and Automatic. Must be Automatic if visibility is Private.

visibility

String

Defines the visibility of this environment. Possible values are Public and Private

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --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
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 466
Host: api.example.com
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
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:08:18 GMT
Location: http://api.example.com/environments/bd3b751a2ffd4a398419127a10044844
Content-Type: application/hal+json
Content-Length: 3621

{
  "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" : "bd3b751a2ffd4a398419127a10044844",
  "created_at" : "2022-08-16T14:08:18.283662",
  "modified_at" : "2022-08-16T14:08:18.283662",
  "created_by" : "poweruser@tenanta.nl",
  "modified_by" : "poweruser@tenanta.nl",
  "_embedded" : {
    "owners" : {
      "name" : "Application-tenAApplication1",
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "_links" : {
        "members" : {
          "href" : "...",
          "templated" : true,
          "title" : "Users belonging to this group"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "instance" : {
      "name" : "TenantA OTA",
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS",
        "rank" : 0
      }, {
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER",
        "rank" : 2
      }, {
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256",
        "rank" : 1
      } ],
      "instanceClusters" : [ {
        "cluster" : {
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "description" : "TenantA OTA Instance",
      "uid" : "b9301e9144324928911f7d83ec40c478",
      "_links" : {
        "supportTier" : {
          "href" : "...",
          "templated" : true
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }
  },
  "_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"
    },
    "owners" : {
      "href" : "...",
      "templated" : true,
      "title" : "The group responsible for this object"
    },
    "instance" : {
      "href" : "...",
      "templated" : true,
      "title" : "An instance"
    }
  }
}

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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 3506

{
  "properties" : { },
  "name" : "tenantaprivenv1",
  "shortName" : "tenantaprivenv1",
  "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" : {
    "owners" : {
      "name" : "Environment-tenAenv1",
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "_links" : {
        "members" : {
          "href" : "...",
          "templated" : true,
          "title" : "Users belonging to this group"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "instance" : {
      "name" : "TenantA OTA",
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS",
        "rank" : 0
      }, {
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER",
        "rank" : 2
      }, {
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256",
        "rank" : 1
      } ],
      "instanceClusters" : [ {
        "cluster" : {
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "description" : "TenantA OTA Instance",
      "uid" : "b9301e9144324928911f7d83ec40c478",
      "_links" : {
        "supportTier" : {
          "href" : "...",
          "templated" : true
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }
  },
  "_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"
    },
    "owners" : {
      "href" : "...",
      "templated" : true,
      "title" : "The group responsible for this object"
    },
    "instance" : {
      "href" : "...",
      "templated" : true,
      "title" : "An instance"
    }
  }
}
Relation Description

instance

The Axual instance this environment is mapped to.

owners

The group of users allowed to access/update the environment.

edit

Existence of this link indicates that the currently authenticated user can edit this Environment

synchronize

Existence of this link indicates that currently authenticated user can synchronize this Environment.

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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /environments/a5f2383ccce249459b24b7cb189b40bc/edit-constraints HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 87

{
  "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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "description" : "Updated description"
}'
PATCH /environments/46cfaf47d2d04d12923beefac3d0ba5a HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 43
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "description" : "Updated description"
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Thu, 07 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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /environments/61b1b34b0c6744dcadb85f4c188517e5/deletion-constraints HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 136

{
  "canDelete" : true,
  "activeGrantsCount" : 0,
  "appPrincipalsCount" : 0,
  "appCredentialsCount" : 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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /environments/61b1b34b0c6744dcadb85f4c188517e5 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'

HTTP request

POST /environments/047ab08009fe4da8be6905b55552ab52/synchronize HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Search endpoints

/environments/search/findByName

Search for an environment by exact name.

Parameter Description

name

Environment name to search for.

GET /environments/search/findByName?name=tenantaenv1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 914

{
  "_embedded" : {
    "environments" : [ {
      "name" : "tenantaenv1",
      "shortName" : "tenantaenv1",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "047ab08009fe4da8be6905b55552ab52",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

/environments/search/findByNameContaining

Search for an environment by name containing search term.

Parameter Description

name

Term to search for within environment name.

GET /environments/search/findByNameContaining?name=tenantaenv1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1118

{
  "_embedded" : {
    "environments" : [ {
      "name" : "tenantaenv1",
      "shortName" : "tenantaenv1",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "047ab08009fe4da8be6905b55552ab52",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    } ]
  },
  "_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

shortName

Environment short name to search for.

GET /environments/search/findByShortName?shortName=tenantaenv1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 914

{
  "_embedded" : {
    "environments" : [ {
      "name" : "tenantaenv1",
      "shortName" : "tenantaenv1",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "047ab08009fe4da8be6905b55552ab52",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

/environments/search/findByInstance

Search for environments that are deployed on this instance.

Parameter Description

instance

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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 4794

{
  "_embedded" : {
    "environments" : [ {
      "name" : "tenantaenv1",
      "shortName" : "tenantaenv1",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "047ab08009fe4da8be6905b55552ab52",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaenv2",
      "shortName" : "tenantaenv2",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "e11ee2dd976647109ca904dd8adc050f",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaprivenv1",
      "shortName" : "tenantaprivenv1",
      "visibility" : "private",
      "color" : null,
      "description" : "environment",
      "uid" : "46cfaf47d2d04d12923beefac3d0ba5a",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaprivenv3",
      "shortName" : "tenantaprivenv3",
      "visibility" : "private",
      "color" : null,
      "description" : "environment",
      "uid" : "72c1b34b0c6744dcadb85f4c188518f6",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaenv_no_streams",
      "shortName" : "tenantaenvns",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "a5f2383ccce249459b24b7cb189b40bc",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    }, {
      "name" : "tenantaenv_only_app_grant",
      "shortName" : "tenantaenvgrant",
      "visibility" : "private",
      "color" : null,
      "description" : "environment with just application_access_grant and no mapping to application_access",
      "uid" : "a5f2383420e249459b24b7cb189b40bc",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

/environments/search/findByApplication

Search for environments that are used by this application.

Parameter Description

application

Find environments with this application active. Must be a valid application URI.

$ curl 'http://api.example.com/environments/search/findByApplication?application=http%3A%2F%2Flocalhost%2Fapplications%2F5ffc4240fcdf4a479a16f2b0b12ab909' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 22175

{
  "_embedded" : {
    "environmentsWithStatuses" : [ {
      "active" : true,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv1",
          "shortName" : "tenantaenv1",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "047ab08009fe4da8be6905b55552ab52",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv2",
          "shortName" : "tenantaenv2",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "e11ee2dd976647109ca904dd8adc050f",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv1",
          "shortName" : "tenantaprivenv1",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "46cfaf47d2d04d12923beefac3d0ba5a",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv2",
          "shortName" : "tenantaprivenv2",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "61b1b34b0c6744dcadb85f4c188517e5",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv3",
          "shortName" : "tenantaprivenv3",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "72c1b34b0c6744dcadb85f4c188518f6",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv4",
          "shortName" : "tenantaprivenv4",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "83c1b34b0c6744dcadb85f4c188518g5",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv5",
          "shortName" : "tenantaprivenv5",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "6u2577bclboz97ievex0fv5hvysemooh",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv3",
          "shortName" : "tenantaenv3",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "156ab08009fe4da8be6905b55552ab63",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "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"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv_no_streams",
          "shortName" : "tenantaenvns",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "a5f2383ccce249459b24b7cb189b40bc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv_only_app_grant",
          "shortName" : "tenantaenvgrant",
          "visibility" : "private",
          "color" : null,
          "description" : "environment with just application_access_grant and no mapping to application_access",
          "uid" : "a5f2383420e249459b24b7cb189b40bc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "application" : {
              "href" : "...",
              "templated" : true,
              "title" : "An application"
            }
          }
        },
        "stream" : null
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

/environments/search/findByStream

Search for environments that are used by this stream.

Parameter Description

stream

Find environments with this stream active. Must be a valid stream URI.

$ curl 'http://api.example.com/environments/search/findByStream?stream=http%3A%2F%2Flocalhost%2Fstreams%2F066f5944d16344f88c9214d240d139dc' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 30786

{
  "_embedded" : {
    "environmentsWithStatuses" : [ {
      "active" : true,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv1",
          "shortName" : "tenantaenv1",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "047ab08009fe4da8be6905b55552ab52",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : true,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv2",
          "shortName" : "tenantaenv2",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "e11ee2dd976647109ca904dd8adc050f",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv1",
          "shortName" : "tenantaprivenv1",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "46cfaf47d2d04d12923beefac3d0ba5a",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv2",
          "shortName" : "tenantaprivenv2",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "61b1b34b0c6744dcadb85f4c188517e5",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : true,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv3",
          "shortName" : "tenantaprivenv3",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "72c1b34b0c6744dcadb85f4c188518f6",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv4",
          "shortName" : "tenantaprivenv4",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "83c1b34b0c6744dcadb85f4c188518g5",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaprivenv5",
          "shortName" : "tenantaprivenv5",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "6u2577bclboz97ievex0fv5hvysemooh",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv3",
          "shortName" : "tenantaenv3",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "156ab08009fe4da8be6905b55552ab63",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "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"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv_no_streams",
          "shortName" : "tenantaenvns",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "a5f2383ccce249459b24b7cb189b40bc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    }, {
      "active" : false,
      "_embedded" : {
        "environment" : {
          "name" : "tenantaenv_only_app_grant",
          "shortName" : "tenantaenvgrant",
          "visibility" : "private",
          "color" : null,
          "description" : "environment with just application_access_grant and no mapping to application_access",
          "uid" : "a5f2383420e249459b24b7cb189b40bc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            }
          }
        },
        "application" : null,
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "self" : {
              "href" : "...",
              "title" : "URI pointing to current request"
            },
            "stream" : {
              "href" : "...",
              "templated" : true,
              "title" : "A stream"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            }
          }
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

/environments/search/findByPluginClass

Search for environments that are used by this plugin class.

Parameter Description

pluginClass

Connector plugin class name

$ curl 'http://api.example.com/environments/search/findByPluginClass?pluginClass=io.axual.test.sink.plugin' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 490

{
  "envPluginVersionMap" : {
    "tenantaenv1" : "1.0.0",
    "tenantaprivenv1" : "1.0.0",
    "tenantaenvgrant" : "1.0.0",
    "tenantaprivenv2" : "1.0.2",
    "tenantaprivenv3" : "1.0.0",
    "tenantaprivenv4" : "1.0.2",
    "tenantaenv2" : "1.0.0",
    "tenantaprivenv5" : "1.0.1",
    "tenantaenv3" : "1.0.2",
    "tenantaenvns" : "1.0.0",
    "envdefault" : "1.0.2"
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

Monitoring Information of an environment

The monitoring-information/{environmentShortName} resource is used to retrieve the TenantShortName, InstanceShortName, EnvironmentShortName, Cluster’s Topic and Group Pattern for this environment.

List All Monitoring Information

A GET request will retrieve the details of the monitoring information based on the provided environment’s short name.

Curl request

$ curl 'http://api.example.com/monitoring-information/tenantaenv1' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'

HTTP request

GET /monitoring-information/tenantaenv1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 538

{
  "tenantShortName" : "tenanta",
  "instanceShortName" : "ota",
  "envShortName" : "tenantaenv1",
  "clusterMonitoringInfoList" : [ {
    "clusterName" : "Zone2 Cluster OTA",
    "clusterPatterns" : {
      "topic" : "{tenant}-{instance}-{environment}-{topic}",
      "group" : "{tenant}-{instance}-{environment}-{group}"
    }
  }, {
    "clusterName" : "Zone1 Cluster OTA",
    "clusterPatterns" : {
      "topic" : "{tenant}-{instance}-{environment}-{topic}",
      "group" : "{tenant}-{instance}-{environment}-{group}"
    }
  } ]
}

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. Most 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:

HTTP request

GET /profile/applications HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 3590

{
  "title" : "Application",
  "properties" : {
    "applicationType" : {
      "title" : "Application type",
      "readOnly" : false,
      "type" : "string",
      "enum" : [ "Custom", "Connector" ]
    },
    "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" : "object",
      "$ref" : "#/definitions/group"
    },
    "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"
    },
    "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" : false,
      "type" : "string"
    }
  },
  "definitions" : {
    "emailAddress" : {
      "type" : "object",
      "properties" : {
        "email" : {
          "title" : "Email",
          "readOnly" : true,
          "type" : "string"
        }
      }
    },
    "group" : {
      "type" : "object",
      "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"
        }
      }
    }
  },
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /applications HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 17828

{
  "_embedded" : {
    "applications" : [ {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication2",
      "type" : "Java",
      "shortName" : "tenanta_app2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication2 description.",
      "uid" : "39d82d7f34484b53ae1dd47ee8924502",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication3",
      "type" : "Java",
      "shortName" : "tenanta_app3",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication3 description.",
      "uid" : "39d82d7f34484b53ae1dd47ee8924512",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaPrivApp3",
      "type" : "Java",
      "shortName" : "tenanta_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" : "tenantaPrivApp3 description.",
      "uid" : "f692ca5191764258b7257a6b2a7fb188",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "testRevoke",
      "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" : "",
      "uid" : "39d82d7994484b53ae1de37ee8924512",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaAutoApplication3",
      "type" : "Java",
      "shortName" : "tenanta_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" : "",
      "uid" : "4cc380171afc4c898b6f6c02caccf451",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaAutoApplication4",
      "type" : "Java",
      "shortName" : "tenanta_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" : "",
      "uid" : "aec9e4570f1c4866bef77722e2830d4b",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication5",
      "type" : "Java",
      "shortName" : "tenanta_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" : "",
      "uid" : "fdc9e4570f1c4866bef77722e2830d5g",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication6",
      "type" : "SINK",
      "shortName" : "tenanta_app6",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication7",
      "type" : "SINK",
      "shortName" : "tenanta_app7",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ead8f4670h1c4866deg78722e2930e3f",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication8",
      "type" : "SINK",
      "shortName" : "tenanta_app8",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "fbe9f4670h1c4866deg78722e2931e4g",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication9",
      "type" : "SINK",
      "shortName" : "tenanta_app9",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ghi9f4670h1c4866deg78722e2931e4g",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication10",
      "type" : "SINK",
      "shortName" : "tenanta_app10",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "lmk9f4670h1c4866deg78722e2931e5g",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication11",
      "type" : "SINK",
      "shortName" : "tenanta_app11",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ioi9f4670h1c4866deg78722e2921f5g",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication12",
      "type" : "SINK",
      "shortName" : "tenanta_app12",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "dhi9f4200h1c4230deg74322e2931e49",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication13",
      "type" : "SINK",
      "shortName" : "tenanta_app13",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ebd8f4670h1c4866deg78722e2930e3f",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantbApplication2",
      "type" : "Java",
      "shortName" : "tenantb_app2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination1",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination2",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination3",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination3",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    } ]
  },
  "_links" : {
    "first" : {
      "href" : "..."
    },
    "self" : {
      "href" : "...",
      "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" : "...",
      "title" : "Indication that an entity can be created"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 28,
    "totalPages" : 2,
    "number" : 0
  }
}
Relation Description

create

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 (?i)^[a-z0-9\.\-_ ]+$. Must not be empty. Size must be between 3 and 50 inclusive

applicationId

String

The applicationId of the Application, usually a fully qualified class name. Must be unique.

shortName

String

Unique human-readable name for the application. Only Alphanumeric and underscore allowed. Must be unique per tenant.

Must match the regular expression (?i)^[a-z0-9_]+$. Must not be empty. Size must be between 3 and 60 inclusive

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 Public and Private

applicationType

String

Application Axual type. Possible values are Custom and Connector.

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "applicationId" : "nl.tenanta.test.application,nl.tenanta.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
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 347
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "applicationId" : "nl.tenanta.test.application,nl.tenanta.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
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://api.example.com/applications/2d2dc75d377f4d729c3af2ad2cc335b2

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 (?i)^[a-z0-9\.\-_ ]+$. Must not be empty. Size must be between 3 and 50 inclusive

applicationId

String

The applicationId of the Application, usually a fully qualified class name. Must be unique.

shortName

String

Unique human-readable name for the application. Only Alphanumeric and underscore allowed. Must be unique per tenant.

Must match the regular expression (?i)^[a-z0-9_]+$. Must not be empty. Size must be between 3 and 60 inclusive

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 Public and Private

applicationType

String

Application Axual type. Possible values are Custom and Connector.

Must not be null

applicationClass

String

Meaningful only when applicationType=CONNECTOR. Specify the connector used in Axual Connect.

applicationClassVersion

String

Meaningful only when applicationType=CONNECTOR. Specify the connector version used in Axual Connect.

type

String

When applicationType=CUSTOM possible values are Java, Pega, SAP, DotNet, Bridge. When applicationType=CONNECTOR possible values are SINK, SOURCE.

Curl request

$ curl 'http://api.example.com/applications' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --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
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 469
Host: api.example.com
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
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://api.example.com/applications/48af001ee6804b9494d57aa7262363be

Create Default application configuration (Deprecated)

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "applicationDefaults" : {
    "test.app.id" : "io.axual.connect.app.id"
  }
}'

HTTP request

PATCH /applications/dbc9e4670h1c4866deg78722e2930d2g HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 81
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "applicationDefaults" : {
    "test.app.id" : "io.axual.connect.app.id"
  }
}

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Thu, 07 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
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 3642

{
  "name" : "tenantaApplication1",
  "shortName" : "tenanta_app1",
  "description" : "tenantaApplication1 description.",
  "applicationType" : "Custom",
  "type" : "Java",
  "applicationClass" : null,
  "visibility" : "public",
  "owners" : {
    "name" : "Application-tenAApplication1",
    "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",
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "lastName" : "TenantA",
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "phoneNumber" : null,
        "middleName" : null,
        "_links" : {
          "tenant" : {
            "href" : "...",
            "title" : "A tenant"
          },
          "self" : {
            "href" : "...",
            "templated" : true,
            "title" : "URI pointing to current request"
          }
        }
      }, {
        "firstName" : "appOwner",
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "lastName" : "TenantA",
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "phoneNumber" : null,
        "middleName" : null,
        "_links" : {
          "tenant" : {
            "href" : "...",
            "title" : "A tenant"
          },
          "self" : {
            "href" : "...",
            "templated" : true,
            "title" : "URI pointing to current request"
          }
        }
      }, {
        "firstName" : "envAdmin",
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "lastName" : "TenantA",
        "uid" : "7cb463240b8049578b298c214c28512a",
        "phoneNumber" : null,
        "middleName" : null,
        "_links" : {
          "tenant" : {
            "href" : "...",
            "title" : "A tenant"
          },
          "self" : {
            "href" : "...",
            "templated" : true,
            "title" : "URI pointing to current request"
          }
        }
      } ]
    },
    "_links" : {
      "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"
      }, {
        "href" : "...",
        "templated" : true,
        "title" : "Users belonging to this group"
      }, {
        "href" : "...",
        "templated" : true,
        "title" : "Users belonging to this group"
      } ]
    }
  },
  "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1",
  "_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"
    }
  }
}
Relation Description

edit

Existence of this link indicates that the currently authenticated user can edit this Application

delete

Existence of this link indicates that the currently authenticated user can delete this Application

createApplicationPrincipal

Existence of this link indicates that the currently authenticated user can create the ApplicationPrincipal for this Application

createApplicationAccess

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 default connector config define in the plugin class for a specific environment.

A GET request will retrieve the details of a connector/plugin config using a specific Environment resource.

If the environment has not configured this plugin class, the response will be empty.

Request parameters

Parameter Description

environment

A valid URI of an existing Environment

HTTP request

GET /applications/dbc9e4670h1c4866deg78722e2930d2g/config?environment=http%3A%2F%2Flocalhost%2Fenvironments%2F047ab08009fe4da8be6905b55552ab52 HTTP/1.1
Content-Type: application/json
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 2019

{
  "pluginConfigs" : [ {
    "name" : "connector.class",
    "type" : "STRING",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : 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",
    "pluginConfigState" : null
  }, {
    "name" : "key.converter",
    "type" : "CLASS",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "LOW",
    "documentation" : null,
    "pluginConfigState" : null
  }, {
    "name" : "logger.name",
    "type" : "STRING",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "HIGH",
    "documentation" : "The name of the SLF4J Logger to write the messages",
    "pluginConfigState" : null
  }, {
    "name" : "name",
    "type" : "STRING",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "HIGH",
    "documentation" : "Globally unique name to use for this connector.",
    "pluginConfigState" : null
  }, {
    "name" : "tasks.max",
    "type" : "INT",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "LOW",
    "documentation" : null,
    "pluginConfigState" : null
  }, {
    "name" : "transforms",
    "type" : "LIST",
    "required" : true,
    "defaultValue" : "",
    "providedValue" : "",
    "importance" : "LOW",
    "documentation" : "Aliases for the transformations to be applied to records.",
    "pluginConfigState" : null
  } ],
  "unsupportedPluginConfigFound" : false,
  "newMandatoryPluginConfigFound" : false,
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}
Relation Description

self

URI pointing to current request

If the environment is not passed, the first instance will be used for searching the plugin config.

HTTP request

GET /applications/dbc9e4670h1c4866deg78722e2930d2g/config HTTP/1.1
Content-Type: application/json
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 2019

{
  "pluginConfigs" : [ {
    "name" : "connector.class",
    "type" : "STRING",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : 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",
    "pluginConfigState" : null
  }, {
    "name" : "key.converter",
    "type" : "CLASS",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "LOW",
    "documentation" : null,
    "pluginConfigState" : null
  }, {
    "name" : "logger.name",
    "type" : "STRING",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "HIGH",
    "documentation" : "The name of the SLF4J Logger to write the messages",
    "pluginConfigState" : null
  }, {
    "name" : "name",
    "type" : "STRING",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "HIGH",
    "documentation" : "Globally unique name to use for this connector.",
    "pluginConfigState" : null
  }, {
    "name" : "tasks.max",
    "type" : "INT",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "LOW",
    "documentation" : null,
    "pluginConfigState" : null
  }, {
    "name" : "transforms",
    "type" : "LIST",
    "required" : true,
    "defaultValue" : "",
    "providedValue" : "",
    "importance" : "LOW",
    "documentation" : "Aliases for the transformations to be applied to records.",
    "pluginConfigState" : null
  } ],
  "unsupportedPluginConfigFound" : false,
  "newMandatoryPluginConfigFound" : false,
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}
Relation Description

self

URI pointing to current request

Retrieve an application default connector config (Deprecated)

Use Retrieve a connector/plugin config instead.

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.

Update an application

A PATCH request is used to update an application. In the request, pass only the field that needs changing.

Curl request

$ curl 'http://api.example.com/applications/39d82d7994484b53ae1de37ee8924512' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "name" : "updated_name"
}'

HTTP request

PATCH /applications/39d82d7994484b53ae1de37ee8924512 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 29
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "name" : "updated_name"
}

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Sun, 01 Nov 2020 23:16:23 GMT

Update an application Shortname

Changing the application shortname is not allowed when one of the below conditions is matched.

  • application has deployment configured (either started or stopped)

  • application has credential configured

  • application has principal configured

Curl request
$ curl 'http://api.example.com/applications/5ffc4240fcdf4a479a16f2b0b12ab909' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "shortName" : "updated_name"
}'
HTTP request
PATCH /applications/5ffc4240fcdf4a479a16f2b0b12ab909 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 34
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "shortName" : "updated_name"
}
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 264

{
  "errors" : [ {
    "entity" : "Application",
    "property" : "shortName",
    "invalidValue" : "updated_name",
    "message" : "Application ShortName cannot be edited as there are existing Credentials, Deployments, or Principals for this application."
  } ]
}

Update an application id

When updating the applicationId you should consider the following risks:

  • existing consumers will stop reading since the applicationId has changed

  • the new applicationID will make the new consumer read from the earliest offset available on the stream

Curl request
$ curl 'http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924502' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "applicationId" : "updated_applicationId"
}'
HTTP request
PATCH /applications/39d82d7f34484b53ae1dd47ee8924502 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 47
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "applicationId" : "updated_applicationId"
}
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "1"
Last-Modified: Tue, 16 Aug 2022 14:07:30 GMT

Search endpoints

/applications/search/findByAttributes

A GET request is used to retrieve all applications based on paging parameters.

Request parameters
Parameter Description

sort

Property to sort on and the direction.

page

Navigate through different pages.

size

Property to define the page size.

HTTP request
GET /applications/search/findByAttributes?sort=name,asc&page=0&size=5 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 20305

{
  "_embedded" : {
    "applications" : [ {
      "name" : "tenantaApplication1",
      "shortName" : "tenanta_app1",
      "description" : "tenantaApplication1 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication10",
      "shortName" : "tenanta_app10",
      "description" : "",
      "applicationType" : "Connector",
      "type" : "SINK",
      "applicationClass" : "io.axual.test.sink.plugin",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app10" ],
      "uid" : "lmk9f4670h1c4866deg78722e2931e5g",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app10",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "createApplicationDeployment" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication11",
      "shortName" : "tenanta_app11",
      "description" : "",
      "applicationType" : "Connector",
      "type" : "SINK",
      "applicationClass" : "io.axual.test.sink.plugin",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app11" ],
      "uid" : "ioi9f4670h1c4866deg78722e2921f5g",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app11",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "createApplicationDeployment" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication12",
      "shortName" : "tenanta_app12",
      "description" : "",
      "applicationType" : "Connector",
      "type" : "SINK",
      "applicationClass" : "io.axual.test.sink.plugin",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app12" ],
      "uid" : "dhi9f4200h1c4230deg74322e2931e49",
      "created_at" : "2021-02-02T13:16:23.774",
      "modified_at" : "2021-02-02T13:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app12",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "createApplicationDeployment" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication13",
      "shortName" : "tenanta_app13",
      "description" : "",
      "applicationType" : "Connector",
      "type" : "SINK",
      "applicationClass" : "io.axual.test.sink.plugin",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app13" ],
      "uid" : "ebd8f4670h1c4866deg78722e2930e3f",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app13",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "createApplicationDeployment" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 5,
    "totalElements" : 5,
    "totalPages" : 1,
    "number" : 0
  }
}

A GET request will retrieve an application by name. The parameter name is not case-sensitive. This endpoint replaces the /applications/search/findByName.

Request parameters
Parameter Description

name

Application name to search for.

HTTP request
GET /applications/search/findByAttributes?name=tenantaApplication1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 20306

{
  "_embedded" : {
    "applications" : [ {
      "name" : "tenantaApplication1",
      "shortName" : "tenanta_app1",
      "description" : "tenantaApplication1 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication10",
      "shortName" : "tenanta_app10",
      "description" : "",
      "applicationType" : "Connector",
      "type" : "SINK",
      "applicationClass" : "io.axual.test.sink.plugin",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app10" ],
      "uid" : "lmk9f4670h1c4866deg78722e2931e5g",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app10",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "createApplicationDeployment" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication11",
      "shortName" : "tenanta_app11",
      "description" : "",
      "applicationType" : "Connector",
      "type" : "SINK",
      "applicationClass" : "io.axual.test.sink.plugin",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app11" ],
      "uid" : "ioi9f4670h1c4866deg78722e2921f5g",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app11",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "createApplicationDeployment" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication12",
      "shortName" : "tenanta_app12",
      "description" : "",
      "applicationType" : "Connector",
      "type" : "SINK",
      "applicationClass" : "io.axual.test.sink.plugin",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app12" ],
      "uid" : "dhi9f4200h1c4230deg74322e2931e49",
      "created_at" : "2021-02-02T13:16:23.774",
      "modified_at" : "2021-02-02T13:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app12",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "createApplicationDeployment" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication13",
      "shortName" : "tenanta_app13",
      "description" : "",
      "applicationType" : "Connector",
      "type" : "SINK",
      "applicationClass" : "io.axual.test.sink.plugin",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app13" ],
      "uid" : "ebd8f4670h1c4866deg78722e2930e3f",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app13",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "createApplicationDeployment" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 5,
    "totalPages" : 1,
    "number" : 0
  }
}

A GET request will retrieve an application by shortName. The parameter shortName is not case-sensitive. This endpoint replaces the /applications/search/findByShortName.

Request parameters
Parameter Description

shortName

Application short name to search for.

HTTP request
GET /applications/search/findByAttributes?shortName=tenanta_app3 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 4210

{
  "_embedded" : {
    "applications" : [ {
      "name" : "tenantaApplication3",
      "shortName" : "tenanta_app3",
      "description" : "tenantaApplication3 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app3" ],
      "uid" : "39d82d7f34484b53ae1dd47ee8924512",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app3",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}

A GET request will retrieve an application by applicationType. The parameter applicationType is not case-sensitive. This endpoint replaces the /applications/search/findByApplicationType.

Request parameters
Parameter Description

applicationType

Application type to search for.

HTTP request
GET /applications/search/findByAttributes?applicationType=CUSTOM HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 73909

{
  "_embedded" : {
    "applications" : [ {
      "name" : "tenantaApplication1",
      "shortName" : "tenanta_app1",
      "description" : "tenantaApplication1 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication2",
      "shortName" : "tenanta_app2",
      "description" : "tenantaApplication2 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app2" ],
      "uid" : "39d82d7f34484b53ae1dd47ee8924502",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app2",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication3",
      "shortName" : "tenanta_app3",
      "description" : "tenantaApplication3 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app3" ],
      "uid" : "39d82d7f34484b53ae1dd47ee8924512",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app3",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaPrivApp3",
      "shortName" : "tenanta_priv_app3_2",
      "description" : "tenantaPrivApp3 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "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,
        "_embedded" : {
          "members" : [ {
            "firstName" : "appAdmin",
            "emailAddress" : {
              "email" : "appadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "caa51002633244ffbe36f4ccf8a8f501",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appAuthor",
            "emailAddress" : {
              "email" : "appauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "e235c8fe4264431bbdb3b40a2e5f8f62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "f692ca5191764258b7257a6b2a7fb188",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "testRevoke",
      "shortName" : "test_revoke",
      "description" : "",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "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,
        "_embedded" : {
          "members" : [ {
            "firstName" : "kad",
            "emailAddress" : {
              "email" : "kadmember@tenanta.nl"
            },
            "lastName" : "member",
            "uid" : "007b994a6ab34165a93fd4c7a8db1388",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app.revoke" ],
      "uid" : "39d82d7994484b53ae1de37ee8924512",
      "created_at" : "2020-11-01T23:16:23.774",
      "modified_at" : "2020-11-01T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app.revoke",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaAutoApplication3",
      "shortName" : "tenanta_auto_app3",
      "description" : "",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "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,
        "_embedded" : {
          "members" : [ {
            "firstName" : "appAdmin",
            "emailAddress" : {
              "email" : "appadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "caa51002633244ffbe36f4ccf8a8f501",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appAuthor",
            "emailAddress" : {
              "email" : "appauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "e235c8fe4264431bbdb3b40a2e5f8f62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.auto.app3" ],
      "uid" : "4cc380171afc4c898b6f6c02caccf451",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.auto.app3",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaAutoApplication4",
      "shortName" : "tenanta_auto_app4",
      "description" : "",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "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,
        "_embedded" : {
          "members" : [ {
            "firstName" : "appAdmin",
            "emailAddress" : {
              "email" : "appadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "caa51002633244ffbe36f4ccf8a8f501",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appAuthor",
            "emailAddress" : {
              "email" : "appauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "e235c8fe4264431bbdb3b40a2e5f8f62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.auto.app4" ],
      "uid" : "aec9e4570f1c4866bef77722e2830d4b",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.auto.app4",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication5",
      "shortName" : "tenanta_app5",
      "description" : "",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "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,
        "_embedded" : {
          "members" : [ {
            "firstName" : "appAdmin",
            "emailAddress" : {
              "email" : "appadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "caa51002633244ffbe36f4ccf8a8f501",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appAuthor",
            "emailAddress" : {
              "email" : "appauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "e235c8fe4264431bbdb3b40a2e5f8f62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app5" ],
      "uid" : "fdc9e4570f1c4866bef77722e2830d5g",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app5",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantbApplication2",
      "shortName" : "tenantb_app2",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2e98e1831c74ff1beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination1",
      "shortName" : "tenanta_app_pagination1",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "c2e98e1831c74ff1beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination2",
      "shortName" : "tenanta_app_pagination2",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2f98e1831c74ff1beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination3",
      "shortName" : "tenanta_app_pagination3",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2e98e1831a74ff1beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination4",
      "shortName" : "tenanta_app_pagination4",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2e98e1831cc4ff1beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination5",
      "shortName" : "tenanta_app_pagination5",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2e92e1831c74ff1beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination6",
      "shortName" : "tenanta_app_pagination6",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2e98e1831c74ff1beb09510d0bf7e17",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination7",
      "shortName" : "tenanta_app_pagination7",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2e98e1831c74ff1beb09510d0bf7377",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination8",
      "shortName" : "tenanta_app_pagination8",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2e98ef831c74ff1beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination9",
      "shortName" : "tenanta_app_pagination9",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2e98e1831c74cf1beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination10",
      "shortName" : "tenanta_app_pagination10",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "a2e98e1831c74ff1beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenanta_app_pagination11",
      "shortName" : "tenanta_app_pagination11",
      "description" : null,
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "d2e98e1831c74ff6beb09510d0bf7e77",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 20,
    "totalPages" : 1,
    "number" : 0
  }
}

A GET request will retrieve an application by visibility.

Request parameters
Parameter Description

visibility

Application visibility to search for.

HTTP request
GET /applications/search/findByAttributes?visibility=PRIVATE HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 13763

{
  "_embedded" : {
    "applications" : [ {
      "name" : "tenantaApplication3",
      "shortName" : "tenanta_app3",
      "description" : "tenantaApplication3 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app3" ],
      "uid" : "39d82d7f34484b53ae1dd47ee8924512",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app3",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaPrivApp3",
      "shortName" : "tenanta_priv_app3_2",
      "description" : "tenantaPrivApp3 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "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,
        "_embedded" : {
          "members" : [ {
            "firstName" : "appAdmin",
            "emailAddress" : {
              "email" : "appadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "caa51002633244ffbe36f4ccf8a8f501",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appAuthor",
            "emailAddress" : {
              "email" : "appauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "e235c8fe4264431bbdb3b40a2e5f8f62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ ],
      "uid" : "f692ca5191764258b7257a6b2a7fb188",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "testRevoke",
      "shortName" : "test_revoke",
      "description" : "",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "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,
        "_embedded" : {
          "members" : [ {
            "firstName" : "kad",
            "emailAddress" : {
              "email" : "kadmember@tenanta.nl"
            },
            "lastName" : "member",
            "uid" : "007b994a6ab34165a93fd4c7a8db1388",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app.revoke" ],
      "uid" : "39d82d7994484b53ae1de37ee8924512",
      "created_at" : "2020-11-01T23:16:23.774",
      "modified_at" : "2020-11-01T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app.revoke",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication10",
      "shortName" : "tenanta_app10",
      "description" : "",
      "applicationType" : "Connector",
      "type" : "SINK",
      "applicationClass" : "io.axual.test.sink.plugin",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app10" ],
      "uid" : "lmk9f4670h1c4866deg78722e2931e5g",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app10",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "createApplicationDeployment" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 4,
    "totalPages" : 1,
    "number" : 0
  }
}

A GET request will retrieve an application by applicationId. The parameter applicationType is of type list. This endpoint replaces /applications/search/findByApplicationId.

Request parameters
Parameter Description

applicationId

Application id list to search for.

HTTP request
GET /applications/search/findByAttributes?applicationId=nl.tenanta.app1,nl.tenanta.app2 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 8157

{
  "_embedded" : {
    "applications" : [ {
      "name" : "tenantaApplication1",
      "shortName" : "tenanta_app1",
      "description" : "tenantaApplication1 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    }, {
      "name" : "tenantaApplication2",
      "shortName" : "tenanta_app2",
      "description" : "tenantaApplication2 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app2" ],
      "uid" : "39d82d7f34484b53ae1dd47ee8924502",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app2",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 2,
    "totalPages" : 1,
    "number" : 0
  }
}

A GET request can be used to search an application based on multiple params. name, shortName, applicationType and visibility are optional parameters.

Request parameters
Parameter Description

name

Application name to search for.

shortName

Application short name to search for.

applicationType

Application type to search for.

visibility

Application visibility to search for.

HTTP request
GET /applications/search/findByAttributes?name=tenantaApplication3&shortName=tenanta_app3&applicationType=CUSTOM&visibility=PRIVATE HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 4210

{
  "_embedded" : {
    "applications" : [ {
      "name" : "tenantaApplication3",
      "shortName" : "tenanta_app3",
      "description" : "tenantaApplication3 description.",
      "applicationType" : "Custom",
      "type" : "Java",
      "applicationClass" : null,
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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",
            "emailAddress" : {
              "email" : "envauthor@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "appOwner",
            "emailAddress" : {
              "email" : "appowner@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "51234a7a81994d1ca35ca7894cde08c6",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          }, {
            "firstName" : "envAdmin",
            "emailAddress" : {
              "email" : "envadmin@tenanta.nl"
            },
            "lastName" : "TenantA",
            "uid" : "7cb463240b8049578b298c214c28512a",
            "phoneNumber" : null,
            "middleName" : null,
            "_links" : {
              "tenant" : {
                "href" : "...",
                "title" : "A tenant"
              },
              "self" : {
                "href" : "...",
                "templated" : true,
                "title" : "URI pointing to current request"
              }
            }
          } ]
        },
        "_links" : {
          "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"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          }, {
            "href" : "...",
            "templated" : true,
            "title" : "Users belonging to this group"
          } ]
        }
      },
      "allApplicationIds" : [ "nl.tenanta.app3" ],
      "uid" : "39d82d7f34484b53ae1dd47ee8924512",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : "2018-06-07T23:16:23.774",
      "created_by" : null,
      "modified_by" : null,
      "applicationId" : "nl.tenanta.app3",
      "_links" : {
        "edit" : {
          "href" : "...",
          "title" : "Indication that this entity can be edited"
        },
        "createApplicationPrincipal" : {
          "href" : "..."
        },
        "createApplicationAccess" : {
          "href" : "..."
        },
        "delete" : {
          "href" : "...",
          "title" : "Indication that this entity can be deleted"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}

/applications/search/findByName

The endpoint is deprecated. Please refer to /applications/search/findByAttributes for searching an application.

Search for an application by exact name.

Request parameters
Parameter Description

name

Application name to search for

HTTP request
GET /applications/search/findByName?name=tenantaApplication1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1034

{
  "_embedded" : {
    "applications" : [ {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

/applications/search/findByNameContaining

Search for an application by name containing search term.

Request parameters
Parameter Description

name

Term to search within application name.

HTTP request
GET /applications/search/findByNameContaining?name=app HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 15749

{
  "_embedded" : {
    "applications" : [ {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication2",
      "type" : "Java",
      "shortName" : "tenanta_app2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication2 description.",
      "uid" : "39d82d7f34484b53ae1dd47ee8924502",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication3",
      "type" : "Java",
      "shortName" : "tenanta_app3",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication3 description.",
      "uid" : "39d82d7f34484b53ae1dd47ee8924512",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaPrivApp3",
      "type" : "Java",
      "shortName" : "tenanta_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" : "tenantaPrivApp3 description.",
      "uid" : "f692ca5191764258b7257a6b2a7fb188",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaAutoApplication3",
      "type" : "Java",
      "shortName" : "tenanta_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" : "",
      "uid" : "4cc380171afc4c898b6f6c02caccf451",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaAutoApplication4",
      "type" : "Java",
      "shortName" : "tenanta_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" : "",
      "uid" : "aec9e4570f1c4866bef77722e2830d4b",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication5",
      "type" : "Java",
      "shortName" : "tenanta_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" : "",
      "uid" : "fdc9e4570f1c4866bef77722e2830d5g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication6",
      "type" : "SINK",
      "shortName" : "tenanta_app6",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication7",
      "type" : "SINK",
      "shortName" : "tenanta_app7",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ead8f4670h1c4866deg78722e2930e3f",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication8",
      "type" : "SINK",
      "shortName" : "tenanta_app8",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "fbe9f4670h1c4866deg78722e2931e4g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication9",
      "type" : "SINK",
      "shortName" : "tenanta_app9",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ghi9f4670h1c4866deg78722e2931e4g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication10",
      "type" : "SINK",
      "shortName" : "tenanta_app10",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "lmk9f4670h1c4866deg78722e2931e5g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication11",
      "type" : "SINK",
      "shortName" : "tenanta_app11",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ioi9f4670h1c4866deg78722e2921f5g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication12",
      "type" : "SINK",
      "shortName" : "tenanta_app12",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "dhi9f4200h1c4230deg74322e2931e49",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication13",
      "type" : "SINK",
      "shortName" : "tenanta_app13",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ebd8f4670h1c4866deg78722e2930e3f",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantbApplication2",
      "type" : "Java",
      "shortName" : "tenantb_app2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination1",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination2",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination3",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination3",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination4",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination4",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    } ]
  },
  "_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"
    }, {
      "href" : "...",
      "title" : "Indication that an entity can be created"
    } ]
  },
  "page" : {
    "size" : 20,
    "totalElements" : 27,
    "totalPages" : 2,
    "number" : 0
  }
}

/applications/search/findByNameContaining

Search for an application by name containing search term and order by a nested property.

Request parameters
Parameter Description

name

Term to search within application name.

sort

Property to sort on and the direction.

HTTP request
GET /applications/search/findByNameContaining?name=app&sort=owners.name%2Casc HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 15838

{
  "_embedded" : {
    "applications" : [ {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication10",
      "type" : "SINK",
      "shortName" : "tenanta_app10",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "lmk9f4670h1c4866deg78722e2931e5g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication11",
      "type" : "SINK",
      "shortName" : "tenanta_app11",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ioi9f4670h1c4866deg78722e2921f5g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication12",
      "type" : "SINK",
      "shortName" : "tenanta_app12",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "dhi9f4200h1c4230deg74322e2931e49",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication13",
      "type" : "SINK",
      "shortName" : "tenanta_app13",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ebd8f4670h1c4866deg78722e2930e3f",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication2",
      "type" : "Java",
      "shortName" : "tenanta_app2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication2 description.",
      "uid" : "39d82d7f34484b53ae1dd47ee8924502",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication3",
      "type" : "Java",
      "shortName" : "tenanta_app3",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication3 description.",
      "uid" : "39d82d7f34484b53ae1dd47ee8924512",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication6",
      "type" : "SINK",
      "shortName" : "tenanta_app6",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication7",
      "type" : "SINK",
      "shortName" : "tenanta_app7",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ead8f4670h1c4866deg78722e2930e3f",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication8",
      "type" : "SINK",
      "shortName" : "tenanta_app8",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "fbe9f4670h1c4866deg78722e2931e4g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication9",
      "type" : "SINK",
      "shortName" : "tenanta_app9",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ghi9f4670h1c4866deg78722e2931e4g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination1",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination10",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination10",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination11",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination11",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination2",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination3",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination3",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination4",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination4",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination5",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination5",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination6",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination6",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination7",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination7",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    } ]
  },
  "_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"
    }, {
      "href" : "...",
      "title" : "Indication that an entity can be created"
    } ]
  },
  "page" : {
    "size" : 20,
    "totalElements" : 27,
    "totalPages" : 2,
    "number" : 0
  }
}

/applications/search/findByShortName

The endpoint is deprecated. Please refer to /applications/search/findByAttributes for searching an application.

Search for an application by exact short_name.

Request parameters
Parameter Description

shortName

Application short name to search for

HTTP request
GET /applications/search/findByShortName?shortName=tenanta_app1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1034

{
  "_embedded" : {
    "applications" : [ {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

/applications/search/findByApplicationId

The endpoint is deprecated. Please refer to /applications/search/findByAttributes for searching an application.

Search for an application by applicationId containing search term.

Request parameters
Parameter Description

applicationId

Application Id to search for

HTTP request
GET /applications/search/findByApplicationId?applicationId=nl.tenanta.app1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 3642

{
  "name" : "tenantaApplication1",
  "shortName" : "tenanta_app1",
  "description" : "tenantaApplication1 description.",
  "applicationType" : "Custom",
  "type" : "Java",
  "applicationClass" : null,
  "visibility" : "public",
  "owners" : {
    "name" : "Application-tenAApplication1",
    "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",
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "lastName" : "TenantA",
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "phoneNumber" : null,
        "middleName" : null,
        "_links" : {
          "tenant" : {
            "href" : "...",
            "title" : "A tenant"
          },
          "self" : {
            "href" : "...",
            "templated" : true,
            "title" : "URI pointing to current request"
          }
        }
      }, {
        "firstName" : "appOwner",
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "lastName" : "TenantA",
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "phoneNumber" : null,
        "middleName" : null,
        "_links" : {
          "tenant" : {
            "href" : "...",
            "title" : "A tenant"
          },
          "self" : {
            "href" : "...",
            "templated" : true,
            "title" : "URI pointing to current request"
          }
        }
      }, {
        "firstName" : "envAdmin",
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "lastName" : "TenantA",
        "uid" : "7cb463240b8049578b298c214c28512a",
        "phoneNumber" : null,
        "middleName" : null,
        "_links" : {
          "tenant" : {
            "href" : "...",
            "title" : "A tenant"
          },
          "self" : {
            "href" : "...",
            "templated" : true,
            "title" : "URI pointing to current request"
          }
        }
      } ]
    },
    "_links" : {
      "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"
      }, {
        "href" : "...",
        "templated" : true,
        "title" : "Users belonging to this group"
      }, {
        "href" : "...",
        "templated" : true,
        "title" : "Users belonging to this group"
      } ]
    }
  },
  "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1",
  "_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"
    }
  }
}

/applications/search/findByApplicationType

The endpoint is deprecated. Please refer to /applications/search/findByAttributes for searching an application.

Search for an application by applicationType term.

search all custom applications
The endpoint is deprecated. Please refer to /applications/search/findByAttributes for searching an application.
Request parameters
Parameter Description

applicationType

Type of applications to search for.

size

Property to define the page size.

HTTP request
GET /applications/search/findByApplicationType?applicationType=CUSTOM&size=10 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 8982

{
  "_embedded" : {
    "applications" : [ {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication2",
      "type" : "Java",
      "shortName" : "tenanta_app2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication2 description.",
      "uid" : "39d82d7f34484b53ae1dd47ee8924502",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication3",
      "type" : "Java",
      "shortName" : "tenanta_app3",
      "visibility" : "private",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication3 description.",
      "uid" : "39d82d7f34484b53ae1dd47ee8924512",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaPrivApp3",
      "type" : "Java",
      "shortName" : "tenanta_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" : "tenantaPrivApp3 description.",
      "uid" : "f692ca5191764258b7257a6b2a7fb188",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "testRevoke",
      "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" : "",
      "uid" : "39d82d7994484b53ae1de37ee8924512",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaAutoApplication3",
      "type" : "Java",
      "shortName" : "tenanta_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" : "",
      "uid" : "4cc380171afc4c898b6f6c02caccf451",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaAutoApplication4",
      "type" : "Java",
      "shortName" : "tenanta_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" : "",
      "uid" : "aec9e4570f1c4866bef77722e2830d4b",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantaApplication5",
      "type" : "Java",
      "shortName" : "tenanta_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" : "",
      "uid" : "fdc9e4570f1c4866bef77722e2830d5g",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenantbApplication2",
      "type" : "Java",
      "shortName" : "tenantb_app2",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    }, {
      "applicationClass" : null,
      "name" : "tenanta_app_pagination1",
      "type" : "Java",
      "shortName" : "tenanta_app_pagination1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "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"
        }
      }
    } ]
  },
  "_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" : 10,
    "totalElements" : 20,
    "totalPages" : 2,
    "number" : 0
  }
}
search all connector applications
The endpoint is deprecated. Please refer to /applications/search/findByAttributes for searching an application.
Request parameters
Parameter Description

applicationType

Type of applications to search for.

size

Property to define the page size.

HTTP request
GET /applications/search/findByApplicationType?applicationType=CONNECTOR&size=2 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 2221

{
  "_embedded" : {
    "applications" : [ {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication6",
      "type" : "SINK",
      "shortName" : "tenanta_app6",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    }, {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication7",
      "type" : "SINK",
      "shortName" : "tenanta_app7",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "ead8f4670h1c4866deg78722e2930e3f",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    } ]
  },
  "_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" : 2,
    "totalElements" : 8,
    "totalPages" : 4,
    "number" : 0
  }
}

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 request
$ curl 'http://api.example.com/applications/5ffc4240fcdf4a479a16f2b0b12ab909/deletion-constraints' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP request
GET /applications/5ffc4240fcdf4a479a16f2b0b12ab909/deletion-constraints HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 84

{
  "canDelete" : false,
  "activeGrantsCount" : 2,
  "activeDeploymentsCount" : 0
}

Delete application

A DELETE request is used to delete an Application.

Curl request
$ curl 'http://api.example.com/applications/fdc9e4570f1c4866bef77722e2830d5g' -i -X DELETE \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
HTTP request
DELETE /applications/fdc9e4570f1c4866bef77722e2830d5g HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

ApplicationCredentials

An ApplicationCredential is an additional authentication mechanism to the platform which authenticates an Application on an Environment.

The /application_credentials resource is used to create and list application credentials.

ApplicationCredentials Schema

The /application_credentials resource uses the following json-schema:

HTTP request

GET /profile/application_credentials HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 1481

{
  "title" : "Application credential",
  "properties" : {
    "uid" : {
      "title" : "Uid",
      "readOnly" : true,
      "type" : "string"
    },
    "environment" : {
      "title" : "Environment",
      "readOnly" : false,
      "type" : "string",
      "format" : "uri"
    },
    "application" : {
      "title" : "Application",
      "readOnly" : false,
      "type" : "string",
      "format" : "uri"
    },
    "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"
    },
    "type" : {
      "title" : "Type",
      "readOnly" : false,
      "type" : "string",
      "enum" : [ "SCRAM_SHA_256", "SCRAM_SHA_512" ]
    },
    "modified_at" : {
      "title" : "Modified at",
      "readOnly" : false,
      "type" : "string",
      "format" : "date-time"
    },
    "created_by" : {
      "title" : "Created by",
      "readOnly" : true,
      "type" : "string"
    },
    "tenant" : {
      "title" : "Tenant",
      "readOnly" : true,
      "type" : "object"
    },
    "username" : {
      "title" : "Username",
      "readOnly" : false,
      "type" : "string"
    }
  },
  "definitions" : { },
  "type" : "object",
  "$schema" : "http://json-schema.org/draft-04/schema#"
}

List all application credentials

HTTP method GET is disabled for /application_credentials. Refer to search endpoints to find one or more ApplicationCredential for an Application or an Environment.

Create Application Credential

A POST request is used to create a new ApplicationCredential. The request should include reference to a valid existing application and environment.

Request fields

Path Type Description Constraints

application

String

A valid URI of an existing application

Must not be null

environment

String

A valid URI of an existing environment

Must not be null

type

String

A valid type of application credentials. Possible types are SCRAM_SHA_256, SCRAM_SHA_512

description

String

A valid description about the application credentials

Size must be between 0 and 200 inclusive

Curl request

$ curl 'http://api.example.com/application_credentials/' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
  "type" : "SCRAM_SHA_256",
  "description" : "test"
}'

HTTP request

POST /application_credentials/ HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 236
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
  "type" : "SCRAM_SHA_256",
  "description" : "test"
}

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 158

{
  "uid" : "b2c49db624604c42827127b1e7b7c059",
  "username" : "tenanta_app3tenantaenv1-1921068900",
  "password" : "ltOiwUFUdW",
  "type" : "SCRAM_SHA_256"
}

Retrieve application credential endpoints

The application_credentials/{id} resource is used to retrieve a single credential of an application for an environment.

A GET request will retrieve the details of a ApplicationCredential.

Curl request

$ curl 'http://api.example.com/application_credentials/1e9ee6ce053c46b0932358c7403a56fd' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /application_credentials/1e9ee6ce053c46b0932358c7403a56fd HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 10981

{
  "id" : "1e9ee6ce053c46b0932358c7403a56fd",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv1 - 1336640963",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "1e9ee6ce053c46b0932358c7403a56fd",
  "created_at" : "2021-09-05T13:16:00.775",
  "modified_at" : "2021-09-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
}

The application_credentials/ resource is used to retrieve a all Application credentials for given Application and Environment.

Parameter Description

applicationId

A valid Application Id

environmentId

A valid Environment Id

type

A valid type of application credentials. Possible types are SCRAM_SHA_256, SCRAM_SHA_512. Type is an optional parameter

GET /application_credentials/search/findByApplicationIdAndEnvironmentId?applicationId=5ffc4240fcdf4a479a16f2b0b12ab909&environmentId=047ab08009fe4da8be6905b55552ab52&type=SCRAM_SHA_256 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 21968

[ {
  "id" : "1e9ee6ce053c46b0932358c7403a56fd",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv1 - 1336640963",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "1e9ee6ce053c46b0932358c7403a56fd",
  "created_at" : "2021-09-05T13:16:00.775",
  "modified_at" : "2021-09-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
}, {
  "id" : "2f8ff6de053c46b0932358c7403a57ge",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv2 - 1336640583",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "2f8ff6de053c46b0932358c7403a57ge",
  "created_at" : "2021-08-05T13:16:00.775",
  "modified_at" : "2021-08-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
} ]

ApplicationCredentials search endpoints

/application_credentials/search/findByApplicationId

Returns all application credentials for given Application and SASL mechanism/type.

Request parameters
Parameter Description

applicationId

A valid Application Id

type

A valid type of application credentials. Possible types are SCRAM_SHA_256, SCRAM_SHA_512. Type is an optional parameter

Curl request
$ curl 'http://api.example.com/application_credentials/search/findByApplicationId?applicationId=5ffc4240fcdf4a479a16f2b0b12ab909&type=SCRAM_SHA_256' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'
HTTP request
GET /application_credentials/search/findByApplicationId?applicationId=5ffc4240fcdf4a479a16f2b0b12ab909&type=SCRAM_SHA_256 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 21968

[ {
  "id" : "1e9ee6ce053c46b0932358c7403a56fd",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv1 - 1336640963",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "1e9ee6ce053c46b0932358c7403a56fd",
  "created_at" : "2021-09-05T13:16:00.775",
  "modified_at" : "2021-09-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
}, {
  "id" : "2f8ff6de053c46b0932358c7403a57ge",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv2 - 1336640583",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "2f8ff6de053c46b0932358c7403a57ge",
  "created_at" : "2021-08-05T13:16:00.775",
  "modified_at" : "2021-08-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
} ]

SASL mechanism/type is an optional field.

Curl request
$ curl 'http://api.example.com/application_credentials/search/findByApplicationId?applicationId=5ffc4240fcdf4a479a16f2b0b12ab909' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 21968

[ {
  "id" : "1e9ee6ce053c46b0932358c7403a56fd",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv1 - 1336640963",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "1e9ee6ce053c46b0932358c7403a56fd",
  "created_at" : "2021-09-05T13:16:00.775",
  "modified_at" : "2021-09-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
}, {
  "id" : "2f8ff6de053c46b0932358c7403a57ge",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv2 - 1336640583",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "2f8ff6de053c46b0932358c7403a57ge",
  "created_at" : "2021-08-05T13:16:00.775",
  "modified_at" : "2021-08-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
} ]

/application_credentials/search/findByApplicationIdAndEnvironmentId

Returns all application credentials for given Application, Environment and SASL mechanism/type.

Request parameters
Parameter Description

applicationId

A valid Application Id

environmentId

A valid Environment Id

type

A valid type of application credentials. Possible types are SCRAM_SHA_256, SCRAM_SHA_512. Type is an optional parameter

Curl request
$ curl 'http://api.example.com/application_credentials/search/findByApplicationIdAndEnvironmentId?applicationId=5ffc4240fcdf4a479a16f2b0b12ab909&environmentId=047ab08009fe4da8be6905b55552ab52&type=SCRAM_SHA_256' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'
HTTP request
GET /application_credentials/search/findByApplicationIdAndEnvironmentId?applicationId=5ffc4240fcdf4a479a16f2b0b12ab909&environmentId=047ab08009fe4da8be6905b55552ab52&type=SCRAM_SHA_256 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 21968

[ {
  "id" : "1e9ee6ce053c46b0932358c7403a56fd",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv1 - 1336640963",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "1e9ee6ce053c46b0932358c7403a56fd",
  "created_at" : "2021-09-05T13:16:00.775",
  "modified_at" : "2021-09-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
}, {
  "id" : "2f8ff6de053c46b0932358c7403a57ge",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv2 - 1336640583",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "2f8ff6de053c46b0932358c7403a57ge",
  "created_at" : "2021-08-05T13:16:00.775",
  "modified_at" : "2021-08-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
} ]

SASL mechanism/type is an optional field

Curl request
$ curl 'http://api.example.com/application_credentials/search/findByApplicationIdAndEnvironmentId?applicationId=5ffc4240fcdf4a479a16f2b0b12ab909&environmentId=047ab08009fe4da8be6905b55552ab52' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 21968

[ {
  "id" : "1e9ee6ce053c46b0932358c7403a56fd",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv1 - 1336640963",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "1e9ee6ce053c46b0932358c7403a56fd",
  "created_at" : "2021-09-05T13:16:00.775",
  "modified_at" : "2021-09-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
}, {
  "id" : "2f8ff6de053c46b0932358c7403a57ge",
  "optLock" : 0,
  "application" : {
    "id" : "5ffc4240fcdf4a479a16f2b0b12ab909",
    "optLock" : 0,
    "name" : "tenantaApplication1",
    "shortName" : "tenanta_app1",
    "description" : "tenantaApplication1 description.",
    "applicationType" : "Custom",
    "type" : "Java",
    "applicationClass" : null,
    "visibility" : "public",
    "owners" : {
      "id" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "optLock" : 0,
      "name" : "Application-tenAApplication1",
      "members" : [ {
        "id" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "optLock" : 0,
        "firstName" : "envAuthor",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envauthor@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_AUTHOR"
        } ],
        "uid" : "9e66c8d7cd5c4e509ec0fe840ef37c62",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "51234a7a81994d1ca35ca7894cde08c6",
        "optLock" : 0,
        "firstName" : "appOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "appowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "51234a7a81994d1ca35ca7894cde08c6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "7cb463240b8049578b298c214c28512a",
        "optLock" : 0,
        "firstName" : "envAdmin",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envadmin@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ {
          "name" : "ENVIRONMENT_ADMIN"
        } ],
        "uid" : "7cb463240b8049578b298c214c28512a",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "allApplicationIds" : [ "nl.tenanta.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.tenanta.app1"
  },
  "environment" : {
    "id" : "047ab08009fe4da8be6905b55552ab52",
    "optLock" : 0,
    "properties" : { },
    "name" : "tenantaenv1",
    "shortName" : "tenantaenv1",
    "description" : "environment",
    "color" : null,
    "instance" : {
      "id" : "b9301e9144324928911f7d83ec40c478",
      "optLock" : 0,
      "properties" : {
        "replication.factor" : "2",
        "num.partitions" : "3",
        "create-stream.disable-time" : "1",
        "min.insync.replicas" : "1",
        "retention.ms" : "172800000",
        "segment.ms" : "172800000"
      },
      "name" : "TenantA OTA",
      "description" : "TenantA OTA Instance",
      "apiUrl" : "http://aeb-ota.local",
      "instanceClusters" : [ {
        "cluster" : {
          "id" : "543c3b7d55634eba83b1472775c131c4",
          "optLock" : 0,
          "name" : "Zone2 Cluster OTA",
          "description" : "",
          "location" : "Zone2",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone2.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone2.local",
          "bootstrapServers" : [ ],
          "uid" : "543c3b7d55634eba83b1472775c131c4"
        },
        "schemaRegistryUrls" : "https://schema.local3"
      }, {
        "cluster" : {
          "id" : "66c12e25ab06458eac988f0d700fbe81",
          "optLock" : 0,
          "name" : "Zone1 Cluster OTA",
          "description" : "",
          "location" : "Zone1",
          "billingCloudEnabled" : true,
          "apiUrl" : "http://clusterapi-ota.zone1.local",
          "clusterBrowseUrl" : "http://clusterbrowse-ota.zone1.local",
          "bootstrapServers" : [ {
            "bootstrapServer" : "bootstrapserver1:9093"
          } ],
          "uid" : "66c12e25ab06458eac988f0d700fbe81"
        },
        "schemaRegistryUrls" : "https://schema.local1,https://schema.local2"
      } ],
      "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=-----END CERTIFICATE-----\n",
        "expiresOn" : null
      } ],
      "shortName" : "ota",
      "enabledAuthenticationMethods" : [ {
        "rank" : 0,
        "protocol" : "SSL",
        "mechanism" : "MUTUAL_TLS"
      }, {
        "rank" : 2,
        "protocol" : "SASL",
        "mechanism" : "OAUTH_BEARER"
      }, {
        "rank" : 1,
        "protocol" : "SASL",
        "mechanism" : "SCRAM_SHA_256"
      } ],
      "supportTier" : {
        "id" : "14cadc6238fc4695916a8053302743f5",
        "optLock" : 0,
        "name" : "GOLD",
        "description" : "This is gold",
        "uid" : "14cadc6238fc4695916a8053302743f5",
        "created_at" : "2018-09-20T00:00:00",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "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
    },
    "authorizationIssuer" : "Stream owner",
    "visibility" : "public",
    "retentionTime" : 604800000,
    "partitions" : 12,
    "owners" : {
      "id" : "aac290536035440e9a85f193e4affeb3",
      "optLock" : 0,
      "name" : "Environment-tenAenv1",
      "members" : [ {
        "id" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "optLock" : 0,
        "firstName" : "envOwner",
        "lastName" : "TenantA",
        "middleName" : null,
        "emailAddress" : {
          "email" : "envowner@tenanta.nl"
        },
        "phoneNumber" : null,
        "roles" : [ ],
        "uid" : "1759cc36cacd4dc28ed1b0336e22e06d",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : "2018-06-07T23:16:23.774",
        "created_by" : null,
        "modified_by" : null
      }, {
        "id" : "cedccd5c6d9e424ab1a9d9f767fc7cfd",
        "optLock" : 0,
        "firstName" : "powerUser",
        "lastName" : "powerUser",
        "middleName" : null,
        "emailAddress" : {
          "email" : "poweruser@tenanta.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
      } ],
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "aac290536035440e9a85f193e4affeb3",
      "created_at" : "2018-06-07T23:16:23.774",
      "modified_at" : null,
      "created_by" : null,
      "modified_by" : null
    },
    "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
  },
  "username" : "tenanta_app1tenantaenv2 - 1336640583",
  "type" : "SCRAM_SHA_256",
  "description" : "test_application_credential",
  "tenant" : {
    "id" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "optLock" : 0,
    "properties" : {
      "replication.factor" : "1",
      "cleanup.policy" : "delete",
      "min.insync.replicas" : "1"
    },
    "name" : "TenantA",
    "shortName" : "tenanta",
    "logo" : "tenanta.png",
    "issuerUrl" : "http://api.example.com/auth/realms/tenanta",
    "dataClassificationEnabled" : false,
    "featureConfig" : "{\"userLimit\": 2,\"group\":1}",
    "contact" : null,
    "retentionTime" : 604800000,
    "partitions" : 12,
    "supportedAuthenticationMethods" : [ {
      "rank" : 0,
      "protocol" : "SSL",
      "mechanism" : "MUTUAL_TLS"
    }, {
      "rank" : 2,
      "protocol" : "SASL",
      "mechanism" : "OAUTH_BEARER"
    }, {
      "rank" : 1,
      "protocol" : "SASL",
      "mechanism" : "SCRAM_SHA_256"
    } ],
    "uid" : "55ef719629a94a07b9bf8ac0f3c495e5",
    "created_at" : "2018-06-07T23:16:23.774",
    "modified_at" : "2018-06-07T23:16:23.774",
    "created_by" : null,
    "modified_by" : null
  },
  "uid" : "2f8ff6de053c46b0932358c7403a57ge",
  "created_at" : "2021-08-05T13:16:00.775",
  "modified_at" : "2021-08-06T13:16:00.775",
  "created_by" : null,
  "modified_by" : null
} ]

Delete application credential

A DELETE request is used to delete an ApplicationCredential.

Curl request

$ curl 'http://api.example.com/application_credentials/07c3a0060ef111ec82a80242ac130003' -i -X DELETE \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'

HTTP request

DELETE /application_credentials/07c3a0060ef111ec82a80242ac130003 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 1736

{
  "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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '[ {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEsjCCApqgAwIBAgIRANlGfD2h/5K+2AqXk+2/GmswDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzUzWhcNMjUwMzMxMTIzMzUzWjBXMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEhMB8GA1UEAwwYRXhh\nbXBsZSBTdHJlYW0gUHJvY2Vzc29yMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAo8DILU6LFXEpN2DcD7f9haAMq9ddlDYDomDM7PAk7UwYGUuycpX11z9s\nSdbO5a0WNc/qN2Zi/tPn7cYrYod6nsLG+NfBSMYNakvc7at8Ym2m2I3k5klQM3YH\nSTUf+a9O3Gfz6Q2XZ6GvHIf63omEH8cBD9fk9BLmDKgQHwcNf9mvWa4se9ONsY1l\nGs/R+q7hmGLZbbyr2lWSrXp0GKKfoxtS/mv0Z0lcuvxgGpB3HHMY6pegBuhOOVwC\nv1HUUTAORoYmwOuFD0fO6vAmwGUuyPwCSJxcDXGJYwnpK953yJYM1UAF/BKe5fFM\nZ3Ce75R06feQaZYilp7XQN4YYBJWZwIDAQABo4GkMIGhMAkGA1UdEwQCMAAwHQYD\nVR0OBBYEFLjtlM29zjwQ7SR5IbR3CARf+ENiMEkGA1UdIwRCMECAFGvSKVeLUjYs\nBQrGV7kadHisEx9moSSkIjAgMR4wHAYDVQQDDBVBeHVhbCBEdW1teSBSb290IDIw\nMTiCAhAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwDQYJKoZIhvcNAQELBQADggIBAKk6ID1SYackve9eCe9hk//OZY7wWUirRP+7\nJIoCi+cAMx4hn1M5XPi4yQaGMe2vQXgcOgu2h7ljqXdpkSL4ZTAv1PCyOEMHJ0Wn\nHc4biKr6reQ7GQzsjygB5ULr9T5CEH/HAfAw9n7ttrxadPOlLbgilucyO8LeLrPZ\nJ0Jbo1Yf1VJE5SZmWN9U47AlDhEZnWjAQolcIqVWOcVYYT12ca9epH+slnBXDX7B\ny41AYaPwA0c/j+mlSXdFsU8HxU9NSu1R15bzW3+4uTIPvIeB3s+yjHBt35Sb9IRS\nGoaGIcE9HJZh9QTqgPUDxlXgDvWttfzIp2wNeWpmd9WP+Ai7CT9M2PxSGYDunl27\neY/U83AaScaSoSXn9tXHtXyRHrD/OAlWc+NzZtFJxRlRw7sc4ElmHbSoBVcDpi38\nTGBD+zxTpKMeTaVhJpGvhzc9MVy5qaI6Bcdg6J4SusiTiMro9bu/kxuxrLcE1E7w\nAmeqQwPoaZZ3O200kd4bd7Iil6g3mP8nVkkeLuJA5/ax9FEdbEH+jpfk3ouf+AKe\np1whWsEx5KOqApnl6NByRq+zqohofmyDWCIXzSXp0neQEryByatZDUVuf1HUQCAv\nFkoZdzOnT+scywMfxyqrP0N8nvh/0CBPX/s+7B9v+KJm54ZQcxAEsms/NvkNPunx\nVANhOECv\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-----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-----",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
} ]'

HTTP request

POST /application_principals/ HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 5680
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

[ {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEsjCCApqgAwIBAgIRANlGfD2h/5K+2AqXk+2/GmswDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzUzWhcNMjUwMzMxMTIzMzUzWjBXMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEhMB8GA1UEAwwYRXhh\nbXBsZSBTdHJlYW0gUHJvY2Vzc29yMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAo8DILU6LFXEpN2DcD7f9haAMq9ddlDYDomDM7PAk7UwYGUuycpX11z9s\nSdbO5a0WNc/qN2Zi/tPn7cYrYod6nsLG+NfBSMYNakvc7at8Ym2m2I3k5klQM3YH\nSTUf+a9O3Gfz6Q2XZ6GvHIf63omEH8cBD9fk9BLmDKgQHwcNf9mvWa4se9ONsY1l\nGs/R+q7hmGLZbbyr2lWSrXp0GKKfoxtS/mv0Z0lcuvxgGpB3HHMY6pegBuhOOVwC\nv1HUUTAORoYmwOuFD0fO6vAmwGUuyPwCSJxcDXGJYwnpK953yJYM1UAF/BKe5fFM\nZ3Ce75R06feQaZYilp7XQN4YYBJWZwIDAQABo4GkMIGhMAkGA1UdEwQCMAAwHQYD\nVR0OBBYEFLjtlM29zjwQ7SR5IbR3CARf+ENiMEkGA1UdIwRCMECAFGvSKVeLUjYs\nBQrGV7kadHisEx9moSSkIjAgMR4wHAYDVQQDDBVBeHVhbCBEdW1teSBSb290IDIw\nMTiCAhAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwDQYJKoZIhvcNAQELBQADggIBAKk6ID1SYackve9eCe9hk//OZY7wWUirRP+7\nJIoCi+cAMx4hn1M5XPi4yQaGMe2vQXgcOgu2h7ljqXdpkSL4ZTAv1PCyOEMHJ0Wn\nHc4biKr6reQ7GQzsjygB5ULr9T5CEH/HAfAw9n7ttrxadPOlLbgilucyO8LeLrPZ\nJ0Jbo1Yf1VJE5SZmWN9U47AlDhEZnWjAQolcIqVWOcVYYT12ca9epH+slnBXDX7B\ny41AYaPwA0c/j+mlSXdFsU8HxU9NSu1R15bzW3+4uTIPvIeB3s+yjHBt35Sb9IRS\nGoaGIcE9HJZh9QTqgPUDxlXgDvWttfzIp2wNeWpmd9WP+Ai7CT9M2PxSGYDunl27\neY/U83AaScaSoSXn9tXHtXyRHrD/OAlWc+NzZtFJxRlRw7sc4ElmHbSoBVcDpi38\nTGBD+zxTpKMeTaVhJpGvhzc9MVy5qaI6Bcdg6J4SusiTiMro9bu/kxuxrLcE1E7w\nAmeqQwPoaZZ3O200kd4bd7Iil6g3mP8nVkkeLuJA5/ax9FEdbEH+jpfk3ouf+AKe\np1whWsEx5KOqApnl6NByRq+zqohofmyDWCIXzSXp0neQEryByatZDUVuf1HUQCAv\nFkoZdzOnT+scywMfxyqrP0N8nvh/0CBPX/s+7B9v+KJm54ZQcxAEsms/NvkNPunx\nVANhOECv\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-----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-----",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
} ]

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 80

"http://api.example.com/application_principals/4fb6f321c625463c84260b9556e21e5f"

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '[ {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEsjCCApqgAwIBAgIRANlGfD2h/5K+2AqXk+2/GmswDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzUzWhcNMjUwMzMxMTIzMzUzWjBXMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEhMB8GA1UEAwwYRXhh\nbXBsZSBTdHJlYW0gUHJvY2Vzc29yMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAo8DILU6LFXEpN2DcD7f9haAMq9ddlDYDomDM7PAk7UwYGUuycpX11z9s\nSdbO5a0WNc/qN2Zi/tPn7cYrYod6nsLG+NfBSMYNakvc7at8Ym2m2I3k5klQM3YH\nSTUf+a9O3Gfz6Q2XZ6GvHIf63omEH8cBD9fk9BLmDKgQHwcNf9mvWa4se9ONsY1l\nGs/R+q7hmGLZbbyr2lWSrXp0GKKfoxtS/mv0Z0lcuvxgGpB3HHMY6pegBuhOOVwC\nv1HUUTAORoYmwOuFD0fO6vAmwGUuyPwCSJxcDXGJYwnpK953yJYM1UAF/BKe5fFM\nZ3Ce75R06feQaZYilp7XQN4YYBJWZwIDAQABo4GkMIGhMAkGA1UdEwQCMAAwHQYD\nVR0OBBYEFLjtlM29zjwQ7SR5IbR3CARf+ENiMEkGA1UdIwRCMECAFGvSKVeLUjYs\nBQrGV7kadHisEx9moSSkIjAgMR4wHAYDVQQDDBVBeHVhbCBEdW1teSBSb290IDIw\nMTiCAhAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwDQYJKoZIhvcNAQELBQADggIBAKk6ID1SYackve9eCe9hk//OZY7wWUirRP+7\nJIoCi+cAMx4hn1M5XPi4yQaGMe2vQXgcOgu2h7ljqXdpkSL4ZTAv1PCyOEMHJ0Wn\nHc4biKr6reQ7GQzsjygB5ULr9T5CEH/HAfAw9n7ttrxadPOlLbgilucyO8LeLrPZ\nJ0Jbo1Yf1VJE5SZmWN9U47AlDhEZnWjAQolcIqVWOcVYYT12ca9epH+slnBXDX7B\ny41AYaPwA0c/j+mlSXdFsU8HxU9NSu1R15bzW3+4uTIPvIeB3s+yjHBt35Sb9IRS\nGoaGIcE9HJZh9QTqgPUDxlXgDvWttfzIp2wNeWpmd9WP+Ai7CT9M2PxSGYDunl27\neY/U83AaScaSoSXn9tXHtXyRHrD/OAlWc+NzZtFJxRlRw7sc4ElmHbSoBVcDpi38\nTGBD+zxTpKMeTaVhJpGvhzc9MVy5qaI6Bcdg6J4SusiTiMro9bu/kxuxrLcE1E7w\nAmeqQwPoaZZ3O200kd4bd7Iil6g3mP8nVkkeLuJA5/ax9FEdbEH+jpfk3ouf+AKe\np1whWsEx5KOqApnl6NByRq+zqohofmyDWCIXzSXp0neQEryByatZDUVuf1HUQCAv\nFkoZdzOnT+scywMfxyqrP0N8nvh/0CBPX/s+7B9v+KJm54ZQcxAEsms/NvkNPunx\nVANhOECv\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-----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-----",
  "application" : "http://api.example.com/applications/dbc9e4670h1c4866deg78722e2930d2g",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
  "privateKey" : "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCjwMgtTosVcSk3\nYNwPt/2FoAyr112UNgOiYMzs8CTtTBgZS7JylfXXP2xJ1s7lrRY1z+o3ZmL+0+ft\nxitih3qewsb418FIxg1qS9ztq3xibabYjeTmSVAzdgdJNR/5r07cZ/PpDZdnoa8c\nh/reiYQfxwEP1+T0EuYMqBAfBw1/2a9Zrix7042xjWUaz9H6ruGYYtltvKvaVZKt\nenQYop+jG1L+a/RnSVy6/GAakHcccxjql6AG6E45XAK/UdRRMA5GhibA64UPR87q\n8CbAZS7I/AJInFwNcYljCekr3nfIlgzVQAX8Ep7l8UxncJ7vlHTp95BpliKWntdA\n3hhgElZnAgMBAAECggEAT/x+ywKulU6tH0vEsjjhMUA4cEfGgfrQU6SM9L9oijC9\nJL4A8E+nwfhM4NR4Q2AElUx1z5HHkUnY5CAEWSBsGNhzcGGTHAUB0IY16DH3k+yT\nrvvAb2woLLreXDgC4mdrUeXFEnV9GzWy33DcbY8mZo9CSYbfYwlILa56EW3UfjoB\nYR4G4sNYEuz/BlIS3UaMzAM/a8S/TTQmv1rqck0UAXhCpVK3RBD5nwkGJQEdF159\n3Fe0Cpzoj0S11oak97OvGEhzcrn0Cib5A8IQt763LL0cIXdBF5U/2FOrYz6Dobao\nYTO93TLirNFuefFe/xl2sBDUIAMqVIZWviKl0AYDIQKBgQDkZcsB3BacZNHeTkNF\na8txFIAOJfXf/jsriVMx3s7rmrSsC1J7MJwdAau3EU4UpwBXvmRh7PRHNi4M+d+B\nVCltVlbMytcP9EQbG4wznvo118vXUduYR2dHnx99eLxEP1r6FPd7Ng94vXOHgJGf\nyzR8AE6f3ZV71BQuKmemo2enAwKBgQC3iwDiIgHi0rCSMTTcRwg1inFu3/lgdd+0\njl9Jipm4+HgFTTLmNNn8lLtMgrlEaw402cErmAKnDAexjAY1cddDmPUSSF+z/juw\nJEMP7+/b9yK51W0o3W/CaI/VPKKDodfcmLaWmf2l665lhMPdAdL8pKI4ey66NguD\nmBEjgUQzzQKBgQDGY10IyoGhazmYneZ1AIMAQExS/coqvIvs7yWipeSaZhEVd+g3\nNSwFThQ3ugJWkhEMJkbPgKFW0csCXnEzx0UMwfg3fuF77DLUUQNhO3AfIMjgySuz\nhCJD5gXWWO8/YMDHhTrKfVTHDdiyFI1pfXqjUyj4V+KmYrr8try91CYOvQKBgGsT\nS8OgpUsHMP1IeZccVVyu1Hgjb99nRMeX210S35U6VwJ4w/3qzVT+C7qZ9K1GazZH\n5tqgxsNfUEmy75hUPonv/ODamgJuibG7pefxSRQhO///07voWx+mUmrLAeAbFcxa\nxwJa+c/HC6mr53vSaZz8Cqs6qcr2ZocxuqXk7r3tAoGAD4NVneZfYLA/TEeG55oe\nHB+XOWAINyRqSnrZwHSXLyed9ARoUZIUv33eXe+1X8cbXiN4174ZpJYzYU+B5jNs\nd247aGQH5Ek9fZZ9QD+NWBE3s6WknEtgQwhK9q0XyYAcYMY37QBtEf32YqRrmesy\nQ1MwtHCuZQxed725uF3QZV4=\n-----END PRIVATE KEY-----"
} ]'

HTTP request

POST /application_principals/ HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 7431
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

[ {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEsjCCApqgAwIBAgIRANlGfD2h/5K+2AqXk+2/GmswDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzUzWhcNMjUwMzMxMTIzMzUzWjBXMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEhMB8GA1UEAwwYRXhh\nbXBsZSBTdHJlYW0gUHJvY2Vzc29yMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAo8DILU6LFXEpN2DcD7f9haAMq9ddlDYDomDM7PAk7UwYGUuycpX11z9s\nSdbO5a0WNc/qN2Zi/tPn7cYrYod6nsLG+NfBSMYNakvc7at8Ym2m2I3k5klQM3YH\nSTUf+a9O3Gfz6Q2XZ6GvHIf63omEH8cBD9fk9BLmDKgQHwcNf9mvWa4se9ONsY1l\nGs/R+q7hmGLZbbyr2lWSrXp0GKKfoxtS/mv0Z0lcuvxgGpB3HHMY6pegBuhOOVwC\nv1HUUTAORoYmwOuFD0fO6vAmwGUuyPwCSJxcDXGJYwnpK953yJYM1UAF/BKe5fFM\nZ3Ce75R06feQaZYilp7XQN4YYBJWZwIDAQABo4GkMIGhMAkGA1UdEwQCMAAwHQYD\nVR0OBBYEFLjtlM29zjwQ7SR5IbR3CARf+ENiMEkGA1UdIwRCMECAFGvSKVeLUjYs\nBQrGV7kadHisEx9moSSkIjAgMR4wHAYDVQQDDBVBeHVhbCBEdW1teSBSb290IDIw\nMTiCAhAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwDQYJKoZIhvcNAQELBQADggIBAKk6ID1SYackve9eCe9hk//OZY7wWUirRP+7\nJIoCi+cAMx4hn1M5XPi4yQaGMe2vQXgcOgu2h7ljqXdpkSL4ZTAv1PCyOEMHJ0Wn\nHc4biKr6reQ7GQzsjygB5ULr9T5CEH/HAfAw9n7ttrxadPOlLbgilucyO8LeLrPZ\nJ0Jbo1Yf1VJE5SZmWN9U47AlDhEZnWjAQolcIqVWOcVYYT12ca9epH+slnBXDX7B\ny41AYaPwA0c/j+mlSXdFsU8HxU9NSu1R15bzW3+4uTIPvIeB3s+yjHBt35Sb9IRS\nGoaGIcE9HJZh9QTqgPUDxlXgDvWttfzIp2wNeWpmd9WP+Ai7CT9M2PxSGYDunl27\neY/U83AaScaSoSXn9tXHtXyRHrD/OAlWc+NzZtFJxRlRw7sc4ElmHbSoBVcDpi38\nTGBD+zxTpKMeTaVhJpGvhzc9MVy5qaI6Bcdg6J4SusiTiMro9bu/kxuxrLcE1E7w\nAmeqQwPoaZZ3O200kd4bd7Iil6g3mP8nVkkeLuJA5/ax9FEdbEH+jpfk3ouf+AKe\np1whWsEx5KOqApnl6NByRq+zqohofmyDWCIXzSXp0neQEryByatZDUVuf1HUQCAv\nFkoZdzOnT+scywMfxyqrP0N8nvh/0CBPX/s+7B9v+KJm54ZQcxAEsms/NvkNPunx\nVANhOECv\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-----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-----",
  "application" : "http://api.example.com/applications/dbc9e4670h1c4866deg78722e2930d2g",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
  "privateKey" : "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCjwMgtTosVcSk3\nYNwPt/2FoAyr112UNgOiYMzs8CTtTBgZS7JylfXXP2xJ1s7lrRY1z+o3ZmL+0+ft\nxitih3qewsb418FIxg1qS9ztq3xibabYjeTmSVAzdgdJNR/5r07cZ/PpDZdnoa8c\nh/reiYQfxwEP1+T0EuYMqBAfBw1/2a9Zrix7042xjWUaz9H6ruGYYtltvKvaVZKt\nenQYop+jG1L+a/RnSVy6/GAakHcccxjql6AG6E45XAK/UdRRMA5GhibA64UPR87q\n8CbAZS7I/AJInFwNcYljCekr3nfIlgzVQAX8Ep7l8UxncJ7vlHTp95BpliKWntdA\n3hhgElZnAgMBAAECggEAT/x+ywKulU6tH0vEsjjhMUA4cEfGgfrQU6SM9L9oijC9\nJL4A8E+nwfhM4NR4Q2AElUx1z5HHkUnY5CAEWSBsGNhzcGGTHAUB0IY16DH3k+yT\nrvvAb2woLLreXDgC4mdrUeXFEnV9GzWy33DcbY8mZo9CSYbfYwlILa56EW3UfjoB\nYR4G4sNYEuz/BlIS3UaMzAM/a8S/TTQmv1rqck0UAXhCpVK3RBD5nwkGJQEdF159\n3Fe0Cpzoj0S11oak97OvGEhzcrn0Cib5A8IQt763LL0cIXdBF5U/2FOrYz6Dobao\nYTO93TLirNFuefFe/xl2sBDUIAMqVIZWviKl0AYDIQKBgQDkZcsB3BacZNHeTkNF\na8txFIAOJfXf/jsriVMx3s7rmrSsC1J7MJwdAau3EU4UpwBXvmRh7PRHNi4M+d+B\nVCltVlbMytcP9EQbG4wznvo118vXUduYR2dHnx99eLxEP1r6FPd7Ng94vXOHgJGf\nyzR8AE6f3ZV71BQuKmemo2enAwKBgQC3iwDiIgHi0rCSMTTcRwg1inFu3/lgdd+0\njl9Jipm4+HgFTTLmNNn8lLtMgrlEaw402cErmAKnDAexjAY1cddDmPUSSF+z/juw\nJEMP7+/b9yK51W0o3W/CaI/VPKKDodfcmLaWmf2l665lhMPdAdL8pKI4ey66NguD\nmBEjgUQzzQKBgQDGY10IyoGhazmYneZ1AIMAQExS/coqvIvs7yWipeSaZhEVd+g3\nNSwFThQ3ugJWkhEMJkbPgKFW0csCXnEzx0UMwfg3fuF77DLUUQNhO3AfIMjgySuz\nhCJD5gXWWO8/YMDHhTrKfVTHDdiyFI1pfXqjUyj4V+KmYrr8try91CYOvQKBgGsT\nS8OgpUsHMP1IeZccVVyu1Hgjb99nRMeX210S35U6VwJ4w/3qzVT+C7qZ9K1GazZH\n5tqgxsNfUEmy75hUPonv/ODamgJuibG7pefxSRQhO///07voWx+mUmrLAeAbFcxa\nxwJa+c/HC6mr53vSaZz8Cqs6qcr2ZocxuqXk7r3tAoGAD4NVneZfYLA/TEeG55oe\nHB+XOWAINyRqSnrZwHSXLyed9ARoUZIUv33eXe+1X8cbXiN4174ZpJYzYU+B5jNs\nd247aGQH5Ek9fZZ9QD+NWBE3s6WknEtgQwhK9q0XyYAcYMY37QBtEf32YqRrmesy\nQ1MwtHCuZQxed725uF3QZV4=\n-----END PRIVATE KEY-----"
} ]

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 80

"http://api.example.com/application_principals/7da5455cf5c1443c9a94c84b02fbdd28"

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '[ {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEsjCCApqgAwIBAgIRANlGfD2h/5K+2AqXk+2/GmswDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzUzWhcNMjUwMzMxMTIzMzUzWjBXMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEhMB8GA1UEAwwYRXhh\nbXBsZSBTdHJlYW0gUHJvY2Vzc29yMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAo8DILU6LFXEpN2DcD7f9haAMq9ddlDYDomDM7PAk7UwYGUuycpX11z9s\nSdbO5a0WNc/qN2Zi/tPn7cYrYod6nsLG+NfBSMYNakvc7at8Ym2m2I3k5klQM3YH\nSTUf+a9O3Gfz6Q2XZ6GvHIf63omEH8cBD9fk9BLmDKgQHwcNf9mvWa4se9ONsY1l\nGs/R+q7hmGLZbbyr2lWSrXp0GKKfoxtS/mv0Z0lcuvxgGpB3HHMY6pegBuhOOVwC\nv1HUUTAORoYmwOuFD0fO6vAmwGUuyPwCSJxcDXGJYwnpK953yJYM1UAF/BKe5fFM\nZ3Ce75R06feQaZYilp7XQN4YYBJWZwIDAQABo4GkMIGhMAkGA1UdEwQCMAAwHQYD\nVR0OBBYEFLjtlM29zjwQ7SR5IbR3CARf+ENiMEkGA1UdIwRCMECAFGvSKVeLUjYs\nBQrGV7kadHisEx9moSSkIjAgMR4wHAYDVQQDDBVBeHVhbCBEdW1teSBSb290IDIw\nMTiCAhAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwDQYJKoZIhvcNAQELBQADggIBAKk6ID1SYackve9eCe9hk//OZY7wWUirRP+7\nJIoCi+cAMx4hn1M5XPi4yQaGMe2vQXgcOgu2h7ljqXdpkSL4ZTAv1PCyOEMHJ0Wn\nHc4biKr6reQ7GQzsjygB5ULr9T5CEH/HAfAw9n7ttrxadPOlLbgilucyO8LeLrPZ\nJ0Jbo1Yf1VJE5SZmWN9U47AlDhEZnWjAQolcIqVWOcVYYT12ca9epH+slnBXDX7B\ny41AYaPwA0c/j+mlSXdFsU8HxU9NSu1R15bzW3+4uTIPvIeB3s+yjHBt35Sb9IRS\nGoaGIcE9HJZh9QTqgPUDxlXgDvWttfzIp2wNeWpmd9WP+Ai7CT9M2PxSGYDunl27\neY/U83AaScaSoSXn9tXHtXyRHrD/OAlWc+NzZtFJxRlRw7sc4ElmHbSoBVcDpi38\nTGBD+zxTpKMeTaVhJpGvhzc9MVy5qaI6Bcdg6J4SusiTiMro9bu/kxuxrLcE1E7w\nAmeqQwPoaZZ3O200kd4bd7Iil6g3mP8nVkkeLuJA5/ax9FEdbEH+jpfk3ouf+AKe\np1whWsEx5KOqApnl6NByRq+zqohofmyDWCIXzSXp0neQEryByatZDUVuf1HUQCAv\nFkoZdzOnT+scywMfxyqrP0N8nvh/0CBPX/s+7B9v+KJm54ZQcxAEsms/NvkNPunx\nVANhOECv\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-----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-----",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}, {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEqjCCApKgAwIBAgIRALTsEWUyE0XWR2K9lUXS0KIwDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzQ2WhcNMjUwMzMxMTIzMzQ2WjBPMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEZMBcGA1UEAwwQRXhh\nbXBsZSBDb25zdW1lcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALYY\nGI57voNaczjiMrIML7kgmU8yMbs4qS8181TNAfklW+hIRM5WijveoSMHUlvuV1BG\npHrynHTmKCm/Scf2P/xZJxkpdwvrd5DA09HEr3C6uXlE8uRdUNhANfra0SWt8T3J\n+0EeRGNerLzVfIJ99jJoNeDknTzOSUXyRsqw7GUtw24P2VSoiN/U0eE/m/LTQ7Tw\nuQyNtBg1h0dEgVPgeVoGt1kBsR+U3+l9cYYdWvbzqi6H8qoHTP9yqOkiiugFXrZ2\n5e3TKk9gvj4vGIurXVY68D3frV46JNNy1GLGVjp+X7p6jjAsvj4o0jCUZ8qfQLrV\n5qdTu5WEHk+tXgUUqrsCAwEAAaOBpDCBoTAJBgNVHRMEAjAAMB0GA1UdDgQWBBRn\nxahN4NjId1+1tDSnU10FldMgyjBJBgNVHSMEQjBAgBRr0ilXi1I2LAUKxle5GnR4\nrBMfZqEkpCIwIDEeMBwGA1UEAwwVQXh1YWwgRHVtbXkgUm9vdCAyMDE4ggIQADAL\nBgNVHQ8EBAMCBLAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMA0GCSqG\nSIb3DQEBCwUAA4ICAQBbfovDWAzQB8N8kilCyK8Pi0iXXVYyTDgk4OswpthuI7m3\nAcCpeke7ADKF1pt5Zpyta/PNmgd0H25GkKi6JF/Anx9o9y560ixBy9FxYbWLDI7q\nRBjwg3+e4b1Jos8Jq0e8OOXz2wxMh3ls683SAASM5Ki1zlAXYV5HLsQv+Gm8TC/W\nBohYBjRUgMyb8Ahs1ECi+XcToJVAqdfznCGKqnkEukZir8u2Mpi3G/++C3809T2B\n+qudJ/7uqDaR5dEaA1sYIjnBvZDZRRRjRFQNR/54trlFYqYniC6XEZ5WuW10ARrQ\ne5iSphF68bITjk1nBIJlJcDgODokYW0A0H8NmQydU1yPEtkIO2UzRnNobWjTzE6i\nULtC1UfG3u02Uig17XPGrJOCmbMm1p96lTtuGsp/YykabFdtQ+y03wvXouNGXFBP\nJ6jPk7jmHp2WMDWPUuHUxt+jTQsWbriGJi11uCDIpETR9iOV6AjMuGydJCpgaFP1\niSc+h81mnAADZVIutZ5RZOmd//VhlenRi++B+gUsQ00Ksy4quQsr4WoZiM8bLIGQ\nUQG5pCvH9yLCubIZ8UDlkwk1aXmfBefkaqtNn0ULRgIK6kycMpVsIki1fOXsxqHf\n55qtIFMOtGy8J4wgVSIBDDU2jy55ivkCgQFHzr/vvpkwZpma5gBXqwn+iqPzLw==\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-----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-----",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}, {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEqjCCApKgAwIBAgIRAIdrfcr8YRHHGGrz1XqzMqMwDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzUwWhcNMjUwMzMxMTIzMzUwWjBPMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEZMBcGA1UEAwwQRXhh\nbXBsZSBQcm9kdWNlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJj\naszl/8PW/CWTIZINpKDd2FNfq72HdnXxGZ/1UPW9fW3cYsJm6RC2TgT3g5zpWudO\nE+6o3u7YDd1X23pTG5mimWPQQ3g2OpjvhANjecBu1MyNCJFLpujblQXD6ziaD3OG\neqhC+4JjJB2tw64esDOfrdbJPfsuh4CAAoM/6cU2u4ktCijJOf1EbWOoSVRXj+JX\nE4AqNKTKRKriYOrtgvYmkx9J5thwLy2qicZC+O5h4T9sXSEZfsnuN1PXWHb71Lcw\nHw704lBJDt3wc/ZKnyBzQ5dM3vtDzq+o/J4QljTuqu5JQ5Dpsz838FpyaZGhgbu0\nPeeDX0I7Z6U8hYYZYHECAwEAAaOBpDCBoTAJBgNVHRMEAjAAMB0GA1UdDgQWBBTe\nzat2kJVndB4tQK2GPouV22wGhzBJBgNVHSMEQjBAgBRr0ilXi1I2LAUKxle5GnR4\nrBMfZqEkpCIwIDEeMBwGA1UEAwwVQXh1YWwgRHVtbXkgUm9vdCAyMDE4ggIQADAL\nBgNVHQ8EBAMCBLAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMA0GCSqG\nSIb3DQEBCwUAA4ICAQBFN2qqIrbwXmETUHUZT5cyS+pVoKOoknv0vM77VNMvv1n+\n3MKdcfu/DhTP+PMYfbZLRzNo5ST8106u54RYETIPrcuuz39m7hP8X6xrvXRddF79\n+PhfPDjly0bL+N810RsdMTB8Tykcn4Y6ePR7jegqXeh1mCfOc+tb1/MwW5AKRsg3\n+qUkhS87fzaU7LoV9NWWOwGVQ8DDZP4GvDTViSIw4AfoAnvxSbhtauDt+Z+cVTCk\n9QrNjRBRqSiuqIoSGd3zvBCLgqgspjV0gJkcHVz0ONxZxhxUkqabMgzAQKmCBP/x\nwPwofgDaNpLgd1m9fYNu83q3tKexLq0cLsNqMlodHmShymDRk/K4P0WmkntiTMgs\nPPfaG+S5FkChWqFC4xHoI/bvbICPKk8HyhNKtbduSq5uqX2keqh9+YhPyXqBj6HD\nvqdhj8VNiJOhZ1T4EYhoy+uhz8zxUBBiZR2c3BIRQ3QwF+Nr1/5AGYO8zDuhGhNu\nZowL5s467pLmH0jjFz45rw4GQfId+r18PA7A2bxoRMXC97g+riqrq5Dx33WOAWHE\nmzOKjfGGdxx3Eqxw8WRYAkaBcGBznCbgotriVjh4UzcjpMpkTqUaVvRaghp411xP\n/uXlapXJsX/jBaBiLch4c25GiqR83YA2GlGGaWPuTzvgMNTh2wIsvDZU3o2oGQ==\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-----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-----",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
} ]'

HTTP request

POST /application_principals/ HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 17016
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

[ {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEsjCCApqgAwIBAgIRANlGfD2h/5K+2AqXk+2/GmswDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzUzWhcNMjUwMzMxMTIzMzUzWjBXMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEhMB8GA1UEAwwYRXhh\nbXBsZSBTdHJlYW0gUHJvY2Vzc29yMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAo8DILU6LFXEpN2DcD7f9haAMq9ddlDYDomDM7PAk7UwYGUuycpX11z9s\nSdbO5a0WNc/qN2Zi/tPn7cYrYod6nsLG+NfBSMYNakvc7at8Ym2m2I3k5klQM3YH\nSTUf+a9O3Gfz6Q2XZ6GvHIf63omEH8cBD9fk9BLmDKgQHwcNf9mvWa4se9ONsY1l\nGs/R+q7hmGLZbbyr2lWSrXp0GKKfoxtS/mv0Z0lcuvxgGpB3HHMY6pegBuhOOVwC\nv1HUUTAORoYmwOuFD0fO6vAmwGUuyPwCSJxcDXGJYwnpK953yJYM1UAF/BKe5fFM\nZ3Ce75R06feQaZYilp7XQN4YYBJWZwIDAQABo4GkMIGhMAkGA1UdEwQCMAAwHQYD\nVR0OBBYEFLjtlM29zjwQ7SR5IbR3CARf+ENiMEkGA1UdIwRCMECAFGvSKVeLUjYs\nBQrGV7kadHisEx9moSSkIjAgMR4wHAYDVQQDDBVBeHVhbCBEdW1teSBSb290IDIw\nMTiCAhAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwDQYJKoZIhvcNAQELBQADggIBAKk6ID1SYackve9eCe9hk//OZY7wWUirRP+7\nJIoCi+cAMx4hn1M5XPi4yQaGMe2vQXgcOgu2h7ljqXdpkSL4ZTAv1PCyOEMHJ0Wn\nHc4biKr6reQ7GQzsjygB5ULr9T5CEH/HAfAw9n7ttrxadPOlLbgilucyO8LeLrPZ\nJ0Jbo1Yf1VJE5SZmWN9U47AlDhEZnWjAQolcIqVWOcVYYT12ca9epH+slnBXDX7B\ny41AYaPwA0c/j+mlSXdFsU8HxU9NSu1R15bzW3+4uTIPvIeB3s+yjHBt35Sb9IRS\nGoaGIcE9HJZh9QTqgPUDxlXgDvWttfzIp2wNeWpmd9WP+Ai7CT9M2PxSGYDunl27\neY/U83AaScaSoSXn9tXHtXyRHrD/OAlWc+NzZtFJxRlRw7sc4ElmHbSoBVcDpi38\nTGBD+zxTpKMeTaVhJpGvhzc9MVy5qaI6Bcdg6J4SusiTiMro9bu/kxuxrLcE1E7w\nAmeqQwPoaZZ3O200kd4bd7Iil6g3mP8nVkkeLuJA5/ax9FEdbEH+jpfk3ouf+AKe\np1whWsEx5KOqApnl6NByRq+zqohofmyDWCIXzSXp0neQEryByatZDUVuf1HUQCAv\nFkoZdzOnT+scywMfxyqrP0N8nvh/0CBPX/s+7B9v+KJm54ZQcxAEsms/NvkNPunx\nVANhOECv\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-----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-----",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}, {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEqjCCApKgAwIBAgIRALTsEWUyE0XWR2K9lUXS0KIwDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzQ2WhcNMjUwMzMxMTIzMzQ2WjBPMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEZMBcGA1UEAwwQRXhh\nbXBsZSBDb25zdW1lcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALYY\nGI57voNaczjiMrIML7kgmU8yMbs4qS8181TNAfklW+hIRM5WijveoSMHUlvuV1BG\npHrynHTmKCm/Scf2P/xZJxkpdwvrd5DA09HEr3C6uXlE8uRdUNhANfra0SWt8T3J\n+0EeRGNerLzVfIJ99jJoNeDknTzOSUXyRsqw7GUtw24P2VSoiN/U0eE/m/LTQ7Tw\nuQyNtBg1h0dEgVPgeVoGt1kBsR+U3+l9cYYdWvbzqi6H8qoHTP9yqOkiiugFXrZ2\n5e3TKk9gvj4vGIurXVY68D3frV46JNNy1GLGVjp+X7p6jjAsvj4o0jCUZ8qfQLrV\n5qdTu5WEHk+tXgUUqrsCAwEAAaOBpDCBoTAJBgNVHRMEAjAAMB0GA1UdDgQWBBRn\nxahN4NjId1+1tDSnU10FldMgyjBJBgNVHSMEQjBAgBRr0ilXi1I2LAUKxle5GnR4\nrBMfZqEkpCIwIDEeMBwGA1UEAwwVQXh1YWwgRHVtbXkgUm9vdCAyMDE4ggIQADAL\nBgNVHQ8EBAMCBLAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMA0GCSqG\nSIb3DQEBCwUAA4ICAQBbfovDWAzQB8N8kilCyK8Pi0iXXVYyTDgk4OswpthuI7m3\nAcCpeke7ADKF1pt5Zpyta/PNmgd0H25GkKi6JF/Anx9o9y560ixBy9FxYbWLDI7q\nRBjwg3+e4b1Jos8Jq0e8OOXz2wxMh3ls683SAASM5Ki1zlAXYV5HLsQv+Gm8TC/W\nBohYBjRUgMyb8Ahs1ECi+XcToJVAqdfznCGKqnkEukZir8u2Mpi3G/++C3809T2B\n+qudJ/7uqDaR5dEaA1sYIjnBvZDZRRRjRFQNR/54trlFYqYniC6XEZ5WuW10ARrQ\ne5iSphF68bITjk1nBIJlJcDgODokYW0A0H8NmQydU1yPEtkIO2UzRnNobWjTzE6i\nULtC1UfG3u02Uig17XPGrJOCmbMm1p96lTtuGsp/YykabFdtQ+y03wvXouNGXFBP\nJ6jPk7jmHp2WMDWPUuHUxt+jTQsWbriGJi11uCDIpETR9iOV6AjMuGydJCpgaFP1\niSc+h81mnAADZVIutZ5RZOmd//VhlenRi++B+gUsQ00Ksy4quQsr4WoZiM8bLIGQ\nUQG5pCvH9yLCubIZ8UDlkwk1aXmfBefkaqtNn0ULRgIK6kycMpVsIki1fOXsxqHf\n55qtIFMOtGy8J4wgVSIBDDU2jy55ivkCgQFHzr/vvpkwZpma5gBXqwn+iqPzLw==\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-----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-----",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}, {
  "principal" : "-----BEGIN CERTIFICATE-----\nMIIEqjCCApKgAwIBAgIRAIdrfcr8YRHHGGrz1XqzMqMwDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzUwWhcNMjUwMzMxMTIzMzUwWjBPMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEZMBcGA1UEAwwQRXhh\nbXBsZSBQcm9kdWNlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJj\naszl/8PW/CWTIZINpKDd2FNfq72HdnXxGZ/1UPW9fW3cYsJm6RC2TgT3g5zpWudO\nE+6o3u7YDd1X23pTG5mimWPQQ3g2OpjvhANjecBu1MyNCJFLpujblQXD6ziaD3OG\neqhC+4JjJB2tw64esDOfrdbJPfsuh4CAAoM/6cU2u4ktCijJOf1EbWOoSVRXj+JX\nE4AqNKTKRKriYOrtgvYmkx9J5thwLy2qicZC+O5h4T9sXSEZfsnuN1PXWHb71Lcw\nHw704lBJDt3wc/ZKnyBzQ5dM3vtDzq+o/J4QljTuqu5JQ5Dpsz838FpyaZGhgbu0\nPeeDX0I7Z6U8hYYZYHECAwEAAaOBpDCBoTAJBgNVHRMEAjAAMB0GA1UdDgQWBBTe\nzat2kJVndB4tQK2GPouV22wGhzBJBgNVHSMEQjBAgBRr0ilXi1I2LAUKxle5GnR4\nrBMfZqEkpCIwIDEeMBwGA1UEAwwVQXh1YWwgRHVtbXkgUm9vdCAyMDE4ggIQADAL\nBgNVHQ8EBAMCBLAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMA0GCSqG\nSIb3DQEBCwUAA4ICAQBFN2qqIrbwXmETUHUZT5cyS+pVoKOoknv0vM77VNMvv1n+\n3MKdcfu/DhTP+PMYfbZLRzNo5ST8106u54RYETIPrcuuz39m7hP8X6xrvXRddF79\n+PhfPDjly0bL+N810RsdMTB8Tykcn4Y6ePR7jegqXeh1mCfOc+tb1/MwW5AKRsg3\n+qUkhS87fzaU7LoV9NWWOwGVQ8DDZP4GvDTViSIw4AfoAnvxSbhtauDt+Z+cVTCk\n9QrNjRBRqSiuqIoSGd3zvBCLgqgspjV0gJkcHVz0ONxZxhxUkqabMgzAQKmCBP/x\nwPwofgDaNpLgd1m9fYNu83q3tKexLq0cLsNqMlodHmShymDRk/K4P0WmkntiTMgs\nPPfaG+S5FkChWqFC4xHoI/bvbICPKk8HyhNKtbduSq5uqX2keqh9+YhPyXqBj6HD\nvqdhj8VNiJOhZ1T4EYhoy+uhz8zxUBBiZR2c3BIRQ3QwF+Nr1/5AGYO8zDuhGhNu\nZowL5s467pLmH0jjFz45rw4GQfId+r18PA7A2bxoRMXC97g+riqrq5Dx33WOAWHE\nmzOKjfGGdxx3Eqxw8WRYAkaBcGBznCbgotriVjh4UzcjpMpkTqUaVvRaghp411xP\n/uXlapXJsX/jBaBiLch4c25GiqR83YA2GlGGaWPuTzvgMNTh2wIsvDZU3o2oGQ==\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-----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-----",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
} ]

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 238

"http://api.example.com/application_principals/57a63b00a2414453ad5ed17fdae2a50e,http://api.example.com/application_principals/7bf4767410804cd6bf788ff2baf4c3ae,http://api.example.com/application_principals/3bad6b76d9f24bc0924906babb11d672"

Create a custom Application Principal to store a clientID

A POST request is used to create a custom ApplicationPrincipal without using a pem file. This type of certificate is used to authenticate your application with an IAM provider using the custom ApplicationPrincipal as Client ID.

Request fields

Path Type Description Constraints

[].principal

String

The custom 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

[].custom

Boolean

A boolean identifying if we are creating a custom principal

Curl request

$ curl 'http://api.example.com/application_principals' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '[ {
  "principal" : "a-custom-principal-identifying-a-clientID",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
  "custom" : true
} ]'

HTTP request

POST /application_principals HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 266
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

[ {
  "principal" : "a-custom-principal-identifying-a-clientID",
  "application" : "http://api.example.com/applications/39d82d7f34484b53ae1dd47ee8924512",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52",
  "custom" : true
} ]

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 80

"http://api.example.com/application_principals/ff2673db94864560a4de662f92b8b301"

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
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 2503

{
  "principal" : "principal 1 test",
  "applicationPem" : "principal 1 test",
  "principalChain" : null,
  "privateKeyPem" : null,
  "privateKeyUploaded" : null,
  "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" : {
    "application" : {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "environment" : {
      "name" : "tenantaenv1",
      "shortName" : "tenantaenv1",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "047ab08009fe4da8be6905b55552ab52",
      "_links" : {
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }
  },
  "_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"
    }
  }
}
Relation Description

delete

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, environment or privateKey needs to be updated, delete the ApplicationPrincipal and create a new one.

Curl request

$ curl 'http://api.example.com/application_principals/1e9ee6ce053c46b0932358c8503a26fd' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --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"
}'

HTTP request

PATCH /application_principals/1e9ee6ce053c46b0932358c8503a26fd HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 1898
Host: api.example.com
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 response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Update a custom application principal

A PATCH request is used to update a custom ApplicationPrincipal. Only principal field can be modified.

If application or environment needs to be updated, delete the ApplicationPrincipal and create a new one.

Curl request

$ curl 'http://api.example.com/application_principals/c58du2867d8e43668271761e23659ef8' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "principal" : "updated-custom-principal"
}'

HTTP request

PATCH /application_principals/c58du2867d8e43668271761e23659ef8 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 46
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "principal" : "updated-custom-principal"
}

HTTP response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Delete application principal

A DELETE request is used to delete an ApplicationPrincipal.

$ curl 'http://api.example.com/application_principals/1e9ee6ce053c46b0932358c8503a26fd' -i -X DELETE \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /application_principals/1e9ee6ce053c46b0932358c8503a26fd HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Validate application principal

Validates the provided application_principal pem’s content for validity.

POST /application_principals/validate HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 5590
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "contents" : "-----BEGIN CERTIFICATE-----\nMIIEsjCCApqgAwIBAgIRANlGfD2h/5K+2AqXk+2/GmswDQYJKoZIhvcNAQELBQAw\nKzEpMCcGA1UEAwwgQXh1YWwgRHVtbXkgSW50ZXJtZWRpYXRlIDIwMTggMDEwHhcN\nMjAwNDAxMTIzMzUzWhcNMjUwMzMxMTIzMzUzWjBXMQswCQYDVQQGEwJOTDEQMA4G\nA1UEBwwHVXRyZWNodDETMBEGA1UECgwKQXh1YWwgQi5WLjEhMB8GA1UEAwwYRXhh\nbXBsZSBTdHJlYW0gUHJvY2Vzc29yMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAo8DILU6LFXEpN2DcD7f9haAMq9ddlDYDomDM7PAk7UwYGUuycpX11z9s\nSdbO5a0WNc/qN2Zi/tPn7cYrYod6nsLG+NfBSMYNakvc7at8Ym2m2I3k5klQM3YH\nSTUf+a9O3Gfz6Q2XZ6GvHIf63omEH8cBD9fk9BLmDKgQHwcNf9mvWa4se9ONsY1l\nGs/R+q7hmGLZbbyr2lWSrXp0GKKfoxtS/mv0Z0lcuvxgGpB3HHMY6pegBuhOOVwC\nv1HUUTAORoYmwOuFD0fO6vAmwGUuyPwCSJxcDXGJYwnpK953yJYM1UAF/BKe5fFM\nZ3Ce75R06feQaZYilp7XQN4YYBJWZwIDAQABo4GkMIGhMAkGA1UdEwQCMAAwHQYD\nVR0OBBYEFLjtlM29zjwQ7SR5IbR3CARf+ENiMEkGA1UdIwRCMECAFGvSKVeLUjYs\nBQrGV7kadHisEx9moSSkIjAgMR4wHAYDVQQDDBVBeHVhbCBEdW1teSBSb290IDIw\nMTiCAhAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwDQYJKoZIhvcNAQELBQADggIBAKk6ID1SYackve9eCe9hk//OZY7wWUirRP+7\nJIoCi+cAMx4hn1M5XPi4yQaGMe2vQXgcOgu2h7ljqXdpkSL4ZTAv1PCyOEMHJ0Wn\nHc4biKr6reQ7GQzsjygB5ULr9T5CEH/HAfAw9n7ttrxadPOlLbgilucyO8LeLrPZ\nJ0Jbo1Yf1VJE5SZmWN9U47AlDhEZnWjAQolcIqVWOcVYYT12ca9epH+slnBXDX7B\ny41AYaPwA0c/j+mlSXdFsU8HxU9NSu1R15bzW3+4uTIPvIeB3s+yjHBt35Sb9IRS\nGoaGIcE9HJZh9QTqgPUDxlXgDvWttfzIp2wNeWpmd9WP+Ai7CT9M2PxSGYDunl27\neY/U83AaScaSoSXn9tXHtXyRHrD/OAlWc+NzZtFJxRlRw7sc4ElmHbSoBVcDpi38\nTGBD+zxTpKMeTaVhJpGvhzc9MVy5qaI6Bcdg6J4SusiTiMro9bu/kxuxrLcE1E7w\nAmeqQwPoaZZ3O200kd4bd7Iil6g3mP8nVkkeLuJA5/ax9FEdbEH+jpfk3ouf+AKe\np1whWsEx5KOqApnl6NByRq+zqohofmyDWCIXzSXp0neQEryByatZDUVuf1HUQCAv\nFkoZdzOnT+scywMfxyqrP0N8nvh/0CBPX/s+7B9v+KJm54ZQcxAEsms/NvkNPunx\nVANhOECv\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-----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-----",
  "environment" : "https://api.example.com/api/environments/047ab08009fe4da8be6905b55552ab52"
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Validate application principal’s Private Key

Validates the provided application_principal’s private key.

POST /application_principals/validate_private_key HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 7255
Host: api.example.com
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
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

ApplicationPrincipals search endpoints

/application_principals/search/findByApplication

Returns all application principals for given Application.

Parameter Description

application

A valid URI of an existing Application

GET /application_principals/search/findByApplication?application=http%3A%2F%2Flocalhost%2Fapplications%2F5ffc4240fcdf4a479a16f2b0b12ab909 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 3049

{
  "_embedded" : {
    "application_principals" : [ {
      "principal" : "principal 1 test",
      "applicationPem" : "principal 1 test",
      "principalChain" : null,
      "privateKeyPem" : null,
      "privateKeyUploaded" : null,
      "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" : {
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "environment" : {
          "name" : "tenantaenv1",
          "shortName" : "tenantaenv1",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "047ab08009fe4da8be6905b55552ab52",
          "_links" : {
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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

environment

A valid URI of an existing Environment

GET /application_principals/search/findByEnvironment?environment=http%3A%2F%2Flocalhost%2Fenvironments%2F46cfaf47d2d04d12923beefac3d0ba5a HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 3068

{
  "_embedded" : {
    "application_principals" : [ {
      "principal" : "CN=tenantaapp3,D=tenanta,S=utrecht,C=NL",
      "applicationPem" : "CN=tenantaapp3,D=tenanta,S=utrecht,C=NL",
      "principalChain" : null,
      "privateKeyPem" : null,
      "privateKeyUploaded" : null,
      "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" : {
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaAutoApplication3",
          "type" : "Java",
          "shortName" : "tenanta_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" : "",
          "uid" : "4cc380171afc4c898b6f6c02caccf451",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "environment" : {
          "name" : "tenantaprivenv1",
          "shortName" : "tenantaprivenv1",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "46cfaf47d2d04d12923beefac3d0ba5a",
          "_links" : {
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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

application

A valid URI of an existing Application

environment

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
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 3049

{
  "_embedded" : {
    "application_principals" : [ {
      "principal" : "principal 1 test",
      "applicationPem" : "principal 1 test",
      "principalChain" : null,
      "privateKeyPem" : null,
      "privateKeyUploaded" : null,
      "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" : {
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "environment" : {
          "name" : "tenantaenv1",
          "shortName" : "tenantaenv1",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "047ab08009fe4da8be6905b55552ab52",
          "_links" : {
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 1280

{
  "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 Application

Must not be null

stream

String

A valid URI of an existing Stream

Must not be null

Curl request

$ curl 'http://api.example.com/application_access' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --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
Content-Type: application/json;charset=UTF-8
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 201
Host: api.example.com
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
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:07:45 GMT
Location: http://api.example.com/application_access/e301fdf8f3d648aa9a97225004c82dbb
Content-Type: application/hal+json
Content-Length: 3151

{
  "accessType" : "PRODUCER",
  "uid" : "e301fdf8f3d648aa9a97225004c82dbb",
  "created_at" : "2022-08-16T14:07:45.144904",
  "modified_at" : "2022-08-16T14:07:45.144904",
  "created_by" : "poweruser@tenanta.nl",
  "modified_by" : "poweruser@tenanta.nl",
  "_embedded" : {
    "stream" : {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153f0",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "application" : {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }
  },
  "_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
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 5397

{
  "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" : {
    "stream" : {
      "name" : "tenanta-stream1",
      "owners" : {
        "name" : "Stream-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "066f5944d16344f88c9214d240d139dc",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "application" : {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "grants" : [ {
      "comment" : null,
      "status" : "Pending",
      "environment" : {
        "properties" : { },
        "name" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : null,
      "uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
      "_links" : {
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "comment" : null,
      "status" : "Approved",
      "environment" : {
        "properties" : { },
        "name" : "tenantaenv2",
        "shortName" : "tenantaenv2",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : null,
      "uid" : "764c61795cc4438ca8ea5aca262c8e70",
      "_links" : {
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    } ]
  },
  "_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
    }
  }
}
Relation Description

stream

The Stream this access refers to.

application

The Application requesting the access.

grants

All ApplicationAccessGrant created on this ApplicationAccess

createApplicationAccessGrant

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

application

A valid URI of an existing Application

GET /application_access/search/findByApplication?application=http%3A%2F%2Flocalhost%2Fapplications%2F5ffc4240fcdf4a479a16f2b0b12ab909 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 6327

{
  "_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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "grants" : [ {
          "comment" : null,
          "status" : "Pending",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv1",
            "shortName" : "tenantaenv1",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }, {
          "comment" : null,
          "status" : "Approved",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv2",
            "shortName" : "tenantaenv2",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "764c61795cc4438ca8ea5aca262c8e70",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        } ]
      },
      "_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

stream

A valid URI of an existing Stream

GET /application_access/search/findByStream?stream=http%3A%2F%2Flocalhost%2Fstreams%2F066f5944d16344f88c9214d240d139dc HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 23098

{
  "_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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "grants" : [ {
          "comment" : null,
          "status" : "Pending",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv1",
            "shortName" : "tenantaenv1",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }, {
          "comment" : null,
          "status" : "Approved",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv2",
            "shortName" : "tenantaenv2",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "764c61795cc4438ca8ea5aca262c8e70",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        } ]
      },
      "_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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication2",
          "type" : "Java",
          "shortName" : "tenanta_app2",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication2 description.",
          "uid" : "39d82d7f34484b53ae1dd47ee8924502",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "testRevoke",
          "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" : "",
          "uid" : "39d82d7994484b53ae1de37ee8924512",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "grants" : [ {
          "comment" : null,
          "status" : "Approved",
          "environment" : {
            "properties" : { },
            "name" : "tenantaprivenv5",
            "shortName" : "tenantaprivenv5",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "420ly0dy72gi123r2m2n56m93ht25wy9",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        } ]
      },
      "_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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaAutoApplication4",
          "type" : "Java",
          "shortName" : "tenanta_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" : "",
          "uid" : "aec9e4570f1c4866bef77722e2830d4b",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication5",
          "type" : "Java",
          "shortName" : "tenanta_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" : "",
          "uid" : "fdc9e4570f1c4866bef77722e2830d5g",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "grants" : [ {
          "comment" : null,
          "status" : "Rejected",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv1",
            "shortName" : "tenantaenv1",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "dd24e0110f7b45ec98d62f6ff8136ae7",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        } ]
      },
      "_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

stream

A valid URI of an existing Stream

application

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
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 6327

{
  "_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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "grants" : [ {
          "comment" : null,
          "status" : "Pending",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv1",
            "shortName" : "tenantaenv1",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }, {
          "comment" : null,
          "status" : "Approved",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv2",
            "shortName" : "tenantaenv2",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "764c61795cc4438ca8ea5aca262c8e70",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        } ]
      },
      "_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

environment

A valid URI of an existing Environment

GET /application_access/search/findByEnvironment?environment=http%3A%2F%2Flocalhost%2Fenvironments%2F047ab08009fe4da8be6905b55552ab52 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 11162

{
  "_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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication1",
          "type" : "Java",
          "shortName" : "tenanta_app1",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "tenantaApplication1 description.",
          "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "grants" : [ {
          "comment" : null,
          "status" : "Pending",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv1",
            "shortName" : "tenantaenv1",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }, {
          "comment" : null,
          "status" : "Approved",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv2",
            "shortName" : "tenantaenv2",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "764c61795cc4438ca8ea5aca262c8e70",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        } ]
      },
      "_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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : null,
          "name" : "tenantaApplication5",
          "type" : "Java",
          "shortName" : "tenanta_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" : "",
          "uid" : "fdc9e4570f1c4866bef77722e2830d5g",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "grants" : [ {
          "comment" : null,
          "status" : "Rejected",
          "environment" : {
            "properties" : { },
            "name" : "tenantaenv1",
            "shortName" : "tenantaenv1",
            "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
          },
          "requestedAt" : null,
          "requestedBy" : null,
          "processedAt" : null,
          "processedBy" : null,
          "uid" : "dd24e0110f7b45ec98d62f6ff8136ae7",
          "_links" : {
            "environment" : {
              "href" : "...",
              "templated" : true,
              "title" : "An environment"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        } ]
      },
      "_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

applicationAccessGrant

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
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 5397

{
  "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" : {
    "stream" : {
      "name" : "tenanta-stream1",
      "owners" : {
        "name" : "Stream-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "066f5944d16344f88c9214d240d139dc",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "application" : {
      "applicationClass" : null,
      "name" : "tenantaApplication1",
      "type" : "Java",
      "shortName" : "tenanta_app1",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "tenantaApplication1 description.",
      "uid" : "5ffc4240fcdf4a479a16f2b0b12ab909",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "grants" : [ {
      "comment" : null,
      "status" : "Pending",
      "environment" : {
        "properties" : { },
        "name" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : null,
      "uid" : "cc13e0110f7b45ec98d62f6ff8136ad6",
      "_links" : {
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "comment" : null,
      "status" : "Approved",
      "environment" : {
        "properties" : { },
        "name" : "tenantaenv2",
        "shortName" : "tenantaenv2",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : null,
      "uid" : "764c61795cc4438ca8ea5aca262c8e70",
      "_links" : {
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    } ]
  },
  "_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
Content-Type: text/uri-list
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 62
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

http://localhost/environments/047ab08009fe4da8be6905b55552ab52
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://api.example.com/application_access_grants/81b8fdd81aa149a6acbed255adc8ef0c

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
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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
Content-Type: text/uri-list
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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.

ApplicationOwner can CANCEL 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
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 115
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "reason" : "Not allowed.",
  "environment" : "http://localhost/environments/e11ee2dd976647109ca904dd8adc050f"
}
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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

stream

The stream to search for

HTTP request
GET /application_access_grants/search/findByStream?stream=http%3A%2F%2Flocalhost%2Fstreams%2F066f5944d16344f88c9214d240d139dc HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 4977

{
  "_embedded" : {
    "application_access_grants" : [ {
      "comment" : null,
      "status" : "Approved",
      "environment" : {
        "properties" : { },
        "name" : "tenantaenv2",
        "shortName" : "tenantaenv2",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaprivenv5",
        "shortName" : "tenantaprivenv5",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 275

{
  "_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

status

Any valid status as mentioned above.

HTTP request
GET /application_access_grants/search/findInformative?status=PENDING HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1474

{
  "_embedded" : {
    "application_access_grants" : [ {
      "comment" : null,
      "status" : "Pending",
      "environment" : {
        "properties" : { },
        "name" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 12281

{
  "_embedded" : {
    "application_access_grants" : [ {
      "comment" : null,
      "status" : "Approved",
      "environment" : {
        "properties" : { },
        "name" : "tenantaenv2",
        "shortName" : "tenantaenv2",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaprivenv4",
        "shortName" : "tenantaprivenv4",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaprivenv2",
        "shortName" : "tenantaprivenv2",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaprivenv5",
        "shortName" : "tenantaprivenv5",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "Approved",
      "environment" : {
        "properties" : { },
        "name" : "tenantaprivenv5",
        "shortName" : "tenantaprivenv5",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : null,
      "uid" : "dd24e0110f7b45ec98d62f6ff8136ae7",
      "_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" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : 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" : "tenantaenv1",
        "shortName" : "tenantaenv1",
        "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
      },
      "requestedAt" : null,
      "requestedBy" : null,
      "processedAt" : null,
      "processedBy" : null,
      "uid" : "fh33e0110f7b45ec98d62f6ff8137bf6",
      "_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 Application Deployment

environment

String

A valid URI of an existing Environment

application

String

A valid URI of an existing Application

Curl request

$ curl 'http://api.example.com/application_deployments' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "configs" : {
    "configKey" : "configValue",
    "key.converter" : null,
    "tasks.max" : null
  },
  "application" : "http://api.example.com/applications/lmk9f4670h1c4866deg78722e2931e5g",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}'

HTTP request

POST /application_deployments HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 287
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "configs" : {
    "configKey" : "configValue",
    "key.converter" : null,
    "tasks.max" : null
  },
  "application" : "http://api.example.com/applications/lmk9f4670h1c4866deg78722e2931e5g",
  "environment" : "http://api.example.com/environments/047ab08009fe4da8be6905b55552ab52"
}

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://api.example.com/application_deployments/5ef33c3914db4921b3933163e15e9f41

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
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 2655

{
  "configs" : [ {
    "configKey" : "logger.name",
    "configValue" : "axual-logger"
  }, {
    "configKey" : "name",
    "configValue" : "Axual Logger"
  }, {
    "configKey" : "customeKey",
    "configValue" : "Custom Value"
  }, {
    "configKey" : "connector.class",
    "configValue" : "io.axual.connector"
  } ],
  "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" : "tenantaenv1",
      "shortName" : "tenantaenv1",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "047ab08009fe4da8be6905b55552ab52",
      "_links" : {
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "application" : {
      "applicationClass" : "io.axual.test.sink.plugin",
      "name" : "tenantaApplication6",
      "type" : "SINK",
      "shortName" : "tenanta_app6",
      "visibility" : "public",
      "owners" : {
        "name" : "Application-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "description" : "",
      "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }
  },
  "_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"
    },
    "environment" : {
      "href" : "...",
      "templated" : true,
      "title" : "An environment"
    },
    "application" : {
      "href" : "...",
      "templated" : true,
      "title" : "An application"
    }
  }
}
Relation Description

start

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.

Parameter Description

action

A valid action to perform on the deployment

PUT /application_deployments/2f8ff6ce053c46b0932358c7403a57ge/task/2/operation HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
Content-Type: application/x-www-form-urlencoded

action=RESTART_TASK
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Retrieve connector config from application deployment

The application_deployments/{id}/config resource is used to retrieve a configured connector config.

A GET request will retrieve the details of a ApplicationDeployment Connector Config.

When application_deployment gets a new plugin class after Axual Connect upgrade, the API provides information on which plugin config is unsupported or added. Each plugin config is marked as Unsupported, New or Custom and the fields unsupported PluginConfigFound and newPluginConfigFound will return true accordingly to signify that the deployment config has to be reviewed.

Any property which is not part of the default connector configuration will be marked as Custom.

HTTP request

GET /application_deployments/1e9ee6ce053c46b0932358c7403a56fd/config HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 2305

{
  "pluginConfigs" : [ {
    "name" : "key.converter",
    "type" : "CLASS",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "LOW",
    "documentation" : null,
    "pluginConfigState" : "New"
  }, {
    "name" : "connector.class",
    "type" : "STRING",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : "io.axual.connector",
    "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",
    "pluginConfigState" : "Existing"
  }, {
    "name" : "name",
    "type" : "STRING",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : "Axual Logger",
    "importance" : "HIGH",
    "documentation" : "Globally unique name to use for this connector.",
    "pluginConfigState" : "Existing"
  }, {
    "name" : "customeKey",
    "type" : null,
    "required" : false,
    "defaultValue" : null,
    "providedValue" : "Custom Value",
    "importance" : null,
    "documentation" : null,
    "pluginConfigState" : "Custom"
  }, {
    "name" : "logger.name",
    "type" : "STRING",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : "axual-logger",
    "importance" : "HIGH",
    "documentation" : "The name of the SLF4J Logger to write the messages",
    "pluginConfigState" : "Existing"
  }, {
    "name" : "transforms",
    "type" : "LIST",
    "required" : true,
    "defaultValue" : "",
    "providedValue" : "",
    "importance" : "LOW",
    "documentation" : "Aliases for the transformations to be applied to records.",
    "pluginConfigState" : "New"
  }, {
    "name" : "tasks.max",
    "type" : "INT",
    "required" : true,
    "defaultValue" : null,
    "providedValue" : null,
    "importance" : "LOW",
    "documentation" : null,
    "pluginConfigState" : "New"
  } ],
  "unsupportedPluginConfigFound" : false,
  "newMandatoryPluginConfigFound" : true,
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "configs" : {
    "key" : "value"
  }
}'
PUT /application_deployments/1e9ee6ce053c46b0932358c7403a56fd HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 43
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "configs" : {
    "key" : "value"
  }
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Delete application deployment

A DELETE request is used to delete an ApplicationDeployment.

$ curl 'http://api.example.com/application_deployments/3g9ff6ce053c46b0932358c7403a58ff' -i -X DELETE \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /application_deployments/3g9ff6ce053c46b0932358c7403a58ff HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

ApplicationDeployments search endpoints

/application_deployments/search/findByApplicationAndEnvironment

Returns application deployments for given Application and Environment.

Parameter Description

application

A valid URI of an existing Application

environment

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
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 3242

{
  "_embedded" : {
    "application_deployments" : [ {
      "configs" : [ {
        "configKey" : "logger.name",
        "configValue" : "axual-logger"
      }, {
        "configKey" : "name",
        "configValue" : "Axual Logger"
      }, {
        "configKey" : "customeKey",
        "configValue" : "Custom Value"
      }, {
        "configKey" : "connector.class",
        "configValue" : "io.axual.connector"
      } ],
      "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" : "tenantaenv1",
          "shortName" : "tenantaenv1",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "047ab08009fe4da8be6905b55552ab52",
          "_links" : {
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "application" : {
          "applicationClass" : "io.axual.test.sink.plugin",
          "name" : "tenantaApplication6",
          "type" : "SINK",
          "shortName" : "tenanta_app6",
          "visibility" : "public",
          "owners" : {
            "name" : "Application-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "c339c5cf9b5a4f6b8342c6ea2f9b6775",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "description" : "",
          "uid" : "dbc9e4670h1c4866deg78722e2930d2g",
          "_links" : {
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "application" : {
          "href" : "...",
          "templated" : true,
          "title" : "An application"
        }
      }
    } ]
  },
  "_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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /application_deployments/3g9ff6ce053c46b0932358c7403a58ff HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

ApplicationDeployments Perform action

/application_deployments/operation

Perform an action for an application deployment : The valid actions are: START, STOP, RESET, DELETE.

Parameter Description

action

A valid action to perform on the deployment

PUT /application_deployments/1e9ee6ce053c46b0932358c7403a56fd/operation HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

action=START
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /application_deployments/1e9ee6ce053c46b0932358c7403a56fd/status HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 2204

{
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /streams HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 32458

{
  "_embedded" : {
    "streams" : [ {
      "name" : "tenanta-stream1",
      "owners" : {
        "name" : "Stream-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "066f5944d16344f88c9214d240d139dc",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-stream2",
      "owners" : {
        "name" : "Stream-tenAApplication2",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "88eb98e0eff34fde923c15687e6d75d5",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "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
      },
      "description" : null,
      "uid" : "a549f500d879419c9f5efa5d3cada7b3",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-stream-avro-string",
      "owners" : {
        "name" : "Stream-tenAApplication2",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "88eb98e0eff34fde923c15687e6d75d5",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "a532f500d879419fff5efa5d3cada7b3",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153f0",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be694c0d9dd2301ff54153f0",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153f1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be614c0d9dd2301ff54153f2",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153fc",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "66605915be694c0d9dd2301ff54153f2",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915becc4c0d9dd2301ff54153f1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "311ac915be694c0d9dd2301ff54153f2",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91195915be694c0d9dd2301ff54111f1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31bbb915be694c0d9dd2301ff54153f2",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "41105915be694c0d9dd2301ff54153f1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "21105915be694c0d9dd2301ff54153f2",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "9110591abe694c0d9dd2301ff54153f1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915ba694c0d9da2301ff54153f2",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9df2301ff54153f1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be694c0d6dd2301ff54153f2",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be695c0d9dd2301ff54153f1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    } ]
  },
  "_links" : {
    "first" : {
      "href" : "..."
    },
    "self" : {
      "href" : "...",
      "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" : "...",
      "title" : "Indication that an entity can be created"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 23,
    "totalPages" : 2,
    "number" : 0
  }
}
Relation Description

create

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

AVRO

A JSON like data model with sophisticated schema description.

JSON

Data structured in JSON format.

STRING

A plain text data with no format.

BINARY

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 (?i)^[a-z0-9\.\-_ ]+$. Must not be empty. Size must be between 3 and 180 inclusive

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 delete, compact. Default is delete. When set to delete, messages will be cleaned up based on the retentionTime property of StreamConfig. If set to compact, latest messages of each key will be retained forever.

Must not be null

keyType

String

Key type of Stream. Can be one of AVRO, JSON, STRING, XML or BINARY

Must not be null

valueType

String

Value type of Stream. Can be one of AVRO, JSON, STRING, XML or BINARY

Must not be null

keySchema

String

A URI of an existing Schema. Only needed when keyType is AVRO.

valueSchema

String

A URI of an existing Schema. Only needed when valueType is AVRO.

integrity

String

A URI of an existing Integrity. Only needed when dataClassificationEnabled for the current Tenant is ON

confidentiality

String

A URI of an existing Confidentiality. Only needed when dataClassificationEnabled for the current Tenant is ON

Curl request

$ curl 'http://api.example.com/streams' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --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
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 606
Host: api.example.com
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
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://api.example.com/streams/01c9f7ec6041498cbec917e19eeb2a82

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
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 2589

{
  "properties" : { },
  "name" : "tenanta-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@tenanta.nl",
  "modified_by" : "strauthor@tenanta.nl",
  "_embedded" : {
    "valueSchema" : {
      "name" : "nl.tenanta.value-schema1",
      "description" : "",
      "uid" : "8bc19be0c9cd4da296acd78e6022edf1",
      "_links" : {
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "owners" : {
      "name" : "Stream-tenAApplication1",
      "emailAddress" : null,
      "phoneNumber" : null,
      "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
      "_links" : {
        "members" : {
          "href" : "...",
          "templated" : true,
          "title" : "Users belonging to this group"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "keySchema" : {
      "name" : "nl.tenanta.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"
    },
    "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"
    },
    "valueSchema" : {
      "href" : "...",
      "templated" : true,
      "title" : "The AVRO schema configured for value"
    },
    "confidentiality" : {
      "href" : "...",
      "templated" : true,
      "title" : "The confidentiality configured for the object"
    },
    "owners" : {
      "href" : "...",
      "templated" : true,
      "title" : "The group responsible for this object"
    },
    "integrity" : {
      "href" : "...",
      "templated" : true,
      "title" : "The integrity configured for the object"
    },
    "keySchema" : {
      "href" : "...",
      "templated" : true,
      "title" : "The AVRO schema configured for key"
    }
  }
}
Relation Description

keySchema

Version of the Key schema definition

valueSchema

Version of the Value schema definition

owners

The group of users allowed to access/update the environment.

integrity

UID of the Integrity level definition

confidentiality

UID of the Confidentiality level definition

edit

Existence of this link indicates that the currently authenticated user can edit this Stream

delete

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.

Stream’s Value Type, Key Type, Retention Policy and Schema(if AVRO) are editable when there is no stream config created for the stream.

$ curl 'http://api.example.com/streams/066f5944d16344f88c9214d240d139dc' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "retentionTime" : 2000
}'
PATCH /streams/066f5944d16344f88c9214d240d139dc HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 28
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "retentionTime" : 2000
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT

Stream search endpoints

/streams/search/findByName

Search for a stream by exact name.

Parameter Description

name

Stream name to search for.

GET /streams/search/findByName?name=tenanta-stream1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1716

{
  "_embedded" : {
    "streams" : [ {
      "name" : "tenanta-stream1",
      "owners" : {
        "name" : "Stream-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "066f5944d16344f88c9214d240d139dc",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

/streams/search/findByNameContaining

Search for a stream by name containing search term.

Parameter Description

name

Term to search within stream name.

GET /streams/search/findByNameContaining?name=stream HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 30553

{
  "_embedded" : {
    "streams" : [ {
      "name" : "tenanta-stream1",
      "owners" : {
        "name" : "Stream-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "066f5944d16344f88c9214d240d139dc",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-stream2",
      "owners" : {
        "name" : "Stream-tenAApplication2",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "88eb98e0eff34fde923c15687e6d75d5",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "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
      },
      "description" : null,
      "uid" : "a549f500d879419c9f5efa5d3cada7b3",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-stream-avro-string",
      "owners" : {
        "name" : "Stream-tenAApplication2",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "88eb98e0eff34fde923c15687e6d75d5",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "a532f500d879419fff5efa5d3cada7b3",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153f0",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be694c0d9dd2301ff54153f0",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be614c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153fc",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "66605915be694c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915becc4c0d9dd2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "311ac915be694c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91195915be694c0d9dd2301ff54111f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31bbb915be694c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "41105915be694c0d9dd2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "21105915be694c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "9110591abe694c0d9dd2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915ba694c0d9da2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9df2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be694c0d6dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be695c0d9dd2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    } ]
  },
  "_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"
    }, {
      "href" : "...",
      "title" : "Indication that an entity can be created"
    } ]
  },
  "page" : {
    "size" : 20,
    "totalElements" : 23,
    "totalPages" : 2,
    "number" : 0
  }
}

/streams/search/findByNameContaining

Search for a stream by name containing search term and order by a nested property.

Parameter Description

name

Term to search within stream name.

sort

Property to sort on and the direction.

GET /streams/search/findByNameContaining?name=stream&sort=owners.name%2Casc HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 30556

{
  "_embedded" : {
    "streams" : [ {
      "name" : "tenanta-stream1",
      "owners" : {
        "name" : "Stream-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "066f5944d16344f88c9214d240d139dc",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-stream-avro-string",
      "owners" : {
        "name" : "Stream-tenAApplication2",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "88eb98e0eff34fde923c15687e6d75d5",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "a532f500d879419fff5efa5d3cada7b3",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-stream2",
      "owners" : {
        "name" : "Stream-tenAApplication2",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "88eb98e0eff34fde923c15687e6d75d5",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "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
      },
      "description" : null,
      "uid" : "a549f500d879419c9f5efa5d3cada7b3",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153f0",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be694c0d9dd2301ff54153f0",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "21105915be694c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "9110591abe694c0d9dd2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915ba694c0d9da2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9df2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be694c0d6dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be695c0d9dd2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be624c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9ddc301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be694c0d9dd2302cf54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "31105915be614c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915be694c0d9dd2301ff54153fc",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "66605915be694c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "91105915becc4c0d9dd2301ff54153f1",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }, {
      "name" : "tenanta-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
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "311ac915be694c0d9dd2301ff54153f2",
      "_links" : {
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    } ]
  },
  "_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"
    }, {
      "href" : "...",
      "title" : "Indication that an entity can be created"
    } ]
  },
  "page" : {
    "size" : 20,
    "totalElements" : 23,
    "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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /streams/066f5944d16344f88c9214d240d139dc/deletion-constraints HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /streams/31105915be694c0d9dd2301ff54153f0 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /streams/c082e097545948dcbd0cf993128d3fc2/browse?fromTime=1566803819&toTime=1566803820&query=text&page=0&pageSize=20 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 121

{
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /streams/c082e097545948dcbd0cf993128d3fc2/browse-access HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /streams/c082e097545948dcbd0cf993128d3fc2/browse-config?selectedCluster=Boxtel HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2085

{
  "clusterDetails" : { },
  "tenant" : "tenanta",
  "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=-----END CERTIFICATE-----\n" ],
  "stream" : "tenanta-stream1",
  "environment" : "tenantaenv1",
  "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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 1629

{
  "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.

List all stream configs properties

The /stream_configs/properties method is used to retrieve all supported stream config properties. The method returns an Array of all supported stream configs properties

$ curl 'http://api.example.com/stream_configs/properties' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /stream_configs/properties HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 150

[ "max.compaction.lag.ms", "message.timestamp.difference.max.ms", "message.timestamp.type", "min.compaction.lag.ms", "retention.bytes", "segment.ms" ]

Unsupported stream config properties

When creating a stream-config you can pass kafka properties to fine-tuning your use case.

We do not support all kafka properties available for a TopicConfig, in case you are passing an unsupported kafka property we return an error.

Curl request

$ curl 'http://api.example.com/stream_configs' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "stream" : "http://api.example.com/streams/a532f500d879419fff5efa5d3cada7b3",
  "environment" : "http://api.example.com/environments/e11ee2dd976647109ca904dd8adc050f",
  "properties" : {
    "cleanup.policy" : "COMPACT",
    "follower.replication.throttled.replicas" : "",
    "leader.replication.throttled.replicas" : "",
    "max.message.bytes" : 1048588,
    "message.format.version" : "2.6-IV0",
    "preallocate" : "false"
  }
}'

HTTP request

POST /stream_configs HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 437
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "stream" : "http://api.example.com/streams/a532f500d879419fff5efa5d3cada7b3",
  "environment" : "http://api.example.com/environments/e11ee2dd976647109ca904dd8adc050f",
  "properties" : {
    "cleanup.policy" : "COMPACT",
    "follower.replication.throttled.replicas" : "",
    "leader.replication.throttled.replicas" : "",
    "max.message.bytes" : 1048588,
    "message.format.version" : "2.6-IV0",
    "preallocate" : "false"
  }
}

HTTP response

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 456

{
  "errors" : [ {
    "entity" : "StreamConfig",
    "property" : "properties",
    "invalidValue" : {
      "cleanup.policy" : "COMPACT",
      "follower.replication.throttled.replicas" : "",
      "leader.replication.throttled.replicas" : "",
      "max.message.bytes" : "1048588",
      "message.format.version" : "2.6-IV0",
      "preallocate" : "false",
      "segment.ms" : "172800000"
    },
    "message" : "Found an unsupported property."
  } ]
}

Create stream config endpoints

Creating stream config is a two-step process a GET request to check the constraints followed by the CREATE request

Create stream config constraints

A GET request is used to get the constraints for creating StreamConfig.

$ curl 'http://api.example.com/streams/066f5944d16344f88c9214d240d139dc/create-constraints?envShortName=tenantaenv1' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /streams/066f5944d16344f88c9214d240d139dc/create-constraints?envShortName=tenantaenv1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 45

{
  "canCreate" : true,
  "waitTill" : null
}

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

environment

String

A valid URI of an existing environment.

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --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",
  "properties" : {
    "max.compaction.lag.ms" : "60000"
  }
}'
HTTP request
POST /stream_configs HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 480
Host: api.example.com
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",
  "properties" : {
    "max.compaction.lag.ms" : "60000"
  }
}
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:06:21 GMT
Location: http://api.example.com/stream_configs/9057487eac624bc4adc4907339bf5e00
Content-Type: application/hal+json
Content-Length: 4099

{
  "properties" : {
    "max.compaction.lag.ms" : "60000",
    "segment.ms" : "172800000"
  },
  "retentionTime" : 10000,
  "partitions" : 12,
  "uid" : "9057487eac624bc4adc4907339bf5e00",
  "created_at" : "2022-08-16T14:06:21.079748",
  "modified_at" : "2022-08-16T14:06:21.079748",
  "created_by" : "poweruser@tenanta.nl",
  "modified_by" : "poweruser@tenanta.nl",
  "_embedded" : {
    "stream" : {
      "name" : "tenanta-stream2",
      "owners" : {
        "name" : "Stream-tenAApplication2",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "88eb98e0eff34fde923c15687e6d75d5",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "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
      },
      "description" : null,
      "uid" : "a549f500d879419c9f5efa5d3cada7b3",
      "_links" : {
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "environment" : {
      "name" : "tenantaenv1",
      "shortName" : "tenantaenv1",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "047ab08009fe4da8be6905b55552ab52",
      "_links" : {
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }
  },
  "_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"
    },
    "stream" : {
      "href" : "...",
      "templated" : true,
      "title" : "A stream"
    },
    "keySchemaVersion" : {
      "href" : "...",
      "templated" : true,
      "title" : "A version of an AVRO schema configured for key"
    },
    "environment" : {
      "href" : "...",
      "templated" : true,
      "title" : "An environment"
    },
    "valueSchemaVersion" : {
      "href" : "...",
      "templated" : true,
      "title" : "A version of an AVRO schema configured for value"
    }
  }
}

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
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 3392

{
  "properties" : {
    "segment.ms" : "696969"
  },
  "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" : {
    "stream" : {
      "name" : "tenanta-stream1",
      "owners" : {
        "name" : "Stream-tenAApplication1",
        "emailAddress" : null,
        "phoneNumber" : null,
        "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
        "created_at" : "2018-06-07T23:16:23.774",
        "modified_at" : null,
        "created_by" : null,
        "modified_by" : null
      },
      "retentionPolicy" : "delete",
      "integrity" : null,
      "confidentiality" : null,
      "description" : null,
      "uid" : "066f5944d16344f88c9214d240d139dc",
      "_links" : {
        "keySchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for key"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "integrity" : {
          "href" : "...",
          "templated" : true,
          "title" : "The integrity configured for the object"
        },
        "confidentiality" : {
          "href" : "...",
          "templated" : true,
          "title" : "The confidentiality configured for the object"
        },
        "valueSchema" : {
          "href" : "...",
          "templated" : true,
          "title" : "The AVRO schema configured for value"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    },
    "environment" : {
      "name" : "tenantaenv1",
      "shortName" : "tenantaenv1",
      "visibility" : "public",
      "color" : null,
      "description" : "environment",
      "uid" : "047ab08009fe4da8be6905b55552ab52",
      "_links" : {
        "instance" : {
          "href" : "...",
          "templated" : true,
          "title" : "An instance"
        },
        "owners" : {
          "href" : "...",
          "templated" : true,
          "title" : "The group responsible for this object"
        },
        "self" : {
          "href" : "...",
          "templated" : true,
          "title" : "URI pointing to current request"
        }
      }
    }
  },
  "_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"
    },
    "stream" : {
      "href" : "...",
      "templated" : true,
      "title" : "A stream"
    },
    "keySchemaVersion" : {
      "href" : "...",
      "templated" : true,
      "title" : "A version of an AVRO schema configured for key"
    },
    "environment" : {
      "href" : "...",
      "templated" : true,
      "title" : "An environment"
    },
    "valueSchemaVersion" : {
      "href" : "...",
      "templated" : true,
      "title" : "A version of an AVRO schema configured for value"
    }
  }
}
Relation Description

edit

Existence of this link indicates that the currently authenticated user can edit this StreamConfig

delete

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "retentionTime" : 40000
}'
PATCH /stream_configs/c082e097545948dcbd0cf993128d3fc2 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 29
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "retentionTime" : 40000
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT

Force a stream config

When you want to update a stream config with an incompatible schema change you need to force it. A PATCH request is used to force a stream config. In the request, pass only the field that needs changing and the field force=true.

$ curl 'http://api.example.com/stream_configs/c082e097545948dcbd0cf993128d3fc2' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "keySchemaVersion" : "http://api.example.com/schema_versions/5322f72742cd4c6db07b9a71a825fe4f",
  "force" : true
}'
PATCH /stream_configs/c082e097545948dcbd0cf993128d3fc2 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 118
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "keySchemaVersion" : "http://api.example.com/schema_versions/5322f72742cd4c6db07b9a71a825fe4f",
  "force" : true
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Thu, 07 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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
GET /stream_configs/c082e097545948dcbd0cf993128d3fc2/deletion-constraints HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 51

{
  "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 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN'
DELETE /stream_configs/c082e097545948dcbd0cf993128d3fc2 HTTP/1.1
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

StreamConfig search endpoints

/stream_configs/search/findByStream

Returns all stream configs for given Stream.

Parameter Description

stream

A valid URI of an existing Stream

GET /stream_configs/search/findByStream?stream=http%3A%2F%2Flocalhost%2Fstreams%2F066f5944d16344f88c9214d240d139dc HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 11791

{
  "_embedded" : {
    "stream_configs" : [ {
      "properties" : {
        "segment.ms" : "696969"
      },
      "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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "environment" : {
          "name" : "tenantaenv1",
          "shortName" : "tenantaenv1",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "047ab08009fe4da8be6905b55552ab52",
          "_links" : {
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "keySchemaVersion" : {
          "href" : "...",
          "templated" : true,
          "title" : "A version of an AVRO schema configured for key"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "valueSchemaVersion" : {
          "href" : "...",
          "templated" : true,
          "title" : "A version of an AVRO schema configured for value"
        }
      }
    }, {
      "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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "environment" : {
          "name" : "tenantaenv2",
          "shortName" : "tenantaenv2",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "e11ee2dd976647109ca904dd8adc050f",
          "_links" : {
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "keySchemaVersion" : {
          "href" : "...",
          "templated" : true,
          "title" : "A version of an AVRO schema configured for key"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "valueSchemaVersion" : {
          "href" : "...",
          "templated" : true,
          "title" : "A version of an AVRO schema configured for value"
        }
      }
    }, {
      "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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "environment" : {
          "name" : "tenantaprivenv3",
          "shortName" : "tenantaprivenv3",
          "visibility" : "private",
          "color" : null,
          "description" : "environment",
          "uid" : "72c1b34b0c6744dcadb85f4c188518f6",
          "_links" : {
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "keySchemaVersion" : {
          "href" : "...",
          "templated" : true,
          "title" : "A version of an AVRO schema configured for key"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "valueSchemaVersion" : {
          "href" : "...",
          "templated" : true,
          "title" : "A version of an AVRO schema configured for value"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  }
}

/stream_configs/search/findByEnvironment

Returns configurations of all available streams for given Environment.

Parameter Description

environment

A valid URI of an existing Environment

GET /stream_configs/search/findByEnvironment?environment=http%3A%2F%2Flocalhost%2Fenvironments%2F46cfaf47d2d04d12923beefac3d0ba5a HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 165

{
  "_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

stream

A valid URI of an existing Stream

environment

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
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 4145

{
  "_embedded" : {
    "stream_configs" : [ {
      "properties" : {
        "segment.ms" : "696969"
      },
      "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" : {
        "stream" : {
          "name" : "tenanta-stream1",
          "owners" : {
            "name" : "Stream-tenAApplication1",
            "emailAddress" : null,
            "phoneNumber" : null,
            "uid" : "2d8e99afd6e047f69c9595b4f2525fa6",
            "created_at" : "2018-06-07T23:16:23.774",
            "modified_at" : null,
            "created_by" : null,
            "modified_by" : null
          },
          "retentionPolicy" : "delete",
          "integrity" : null,
          "confidentiality" : null,
          "description" : null,
          "uid" : "066f5944d16344f88c9214d240d139dc",
          "_links" : {
            "keySchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for key"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "integrity" : {
              "href" : "...",
              "templated" : true,
              "title" : "The integrity configured for the object"
            },
            "confidentiality" : {
              "href" : "...",
              "templated" : true,
              "title" : "The confidentiality configured for the object"
            },
            "valueSchema" : {
              "href" : "...",
              "templated" : true,
              "title" : "The AVRO schema configured for value"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        },
        "environment" : {
          "name" : "tenantaenv1",
          "shortName" : "tenantaenv1",
          "visibility" : "public",
          "color" : null,
          "description" : "environment",
          "uid" : "047ab08009fe4da8be6905b55552ab52",
          "_links" : {
            "instance" : {
              "href" : "...",
              "templated" : true,
              "title" : "An instance"
            },
            "owners" : {
              "href" : "...",
              "templated" : true,
              "title" : "The group responsible for this object"
            },
            "self" : {
              "href" : "...",
              "templated" : true,
              "title" : "URI pointing to current request"
            }
          }
        }
      },
      "_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"
        },
        "stream" : {
          "href" : "...",
          "templated" : true,
          "title" : "A stream"
        },
        "keySchemaVersion" : {
          "href" : "...",
          "templated" : true,
          "title" : "A version of an AVRO schema configured for key"
        },
        "environment" : {
          "href" : "...",
          "templated" : true,
          "title" : "An environment"
        },
        "valueSchemaVersion" : {
          "href" : "...",
          "templated" : true,
          "title" : "A version of an AVRO schema configured for value"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    },
    "createStreamConfig" : {
      "href" : "...",
      "templated" : true
    }
  }
}

Import Kafka Topics into Self-Service

The endpoint /changes/streams is used to list kafka topics that are not available in Self-Service but are present in the Kafka cluster, so that user can import them to use Self-Service features.

Any authenticated user with role TENANT_ADMIN is allowed to perform this action on its own tenant.

List All Missing Kafka Topics

A GET request will list all the missing Kafka topics in Self-Service.

The string is representing the stream-name without any topic-pattern resolution.

Curl request

$ curl 'http://api.example.com/changes/streams' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenantb'

HTTP request

GET /changes/streams HTTP/1.1
Authorization: Bearer token
realm: tenantb
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 40

[ "tenantb-stream2", "tenantb-stream3" ]

Get Kafka Topics Details

A GET request will show the details of a missing Kafka topic (configuration, number of partitions, ACLs).

The input string is representing the stream-name without any topic-pattern resolution. The name is representing the stream-name with the topic-pattern resolution.

Curl request

$ curl 'http://api.example.com/changes/streams/tenantb-stream2?environment=tenantbenv1' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenantb'

HTTP request

GET /changes/streams/tenantb-stream2?environment=tenantbenv1 HTTP/1.1
Authorization: Bearer token
realm: tenantb
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1632

{
  "name" : "tenantb-tenantbenv1-tenantb-stream3",
  "config" : {
    "cleanup.policy" : "delete",
    "min.insync.replicas" : "1",
    "retention.ms" : "86400000",
    "segment.ms" : "60000",
    "max.compaction.lag.ms" : "60000"
  },
  "size" : 0,
  "partitions" : [ {
    "partition" : 0,
    "begin" : 25,
    "end" : 25,
    "size" : 0,
    "replicas" : [ 0 ],
    "isr" : [ 0 ]
  }, {
    "partition" : 1,
    "begin" : 40,
    "end" : 40,
    "size" : 0,
    "replicas" : [ 0 ],
    "isr" : [ 0 ]
  } ],
  "acls" : [ {
    "principal" : {
      "type" : "User",
      "name" : "[0] CN=Axual Dummy Root 2018, [1] CN=Axual Dummy Intermediate 2018 01, [2] CN=Example Producer,O=Axual B.V.,L=Utrecht,C=NL"
    },
    "permissionType" : "ALLOW",
    "host" : "*",
    "operation" : "WRITE"
  }, {
    "principal" : {
      "type" : "User",
      "name" : "[0] CN=Axual Dummy Root 2018, [1] CN=Axual Dummy Intermediate 2018 01, [2] CN=Example Producer,O=Axual B.V.,L=Utrecht,C=NL"
    },
    "permissionType" : "ALLOW",
    "host" : "*",
    "operation" : "READ"
  }, {
    "principal" : {
      "type" : "User",
      "name" : "[0] CN=Axual Dummy Root 2018, [1] CN=Axual Dummy Intermediate 2018 01, [2] CN=Example Producer,O=Axual B.V.,L=Utrecht,C=NL"
    },
    "permissionType" : "ALLOW",
    "host" : "*",
    "operation" : "DESCRIBE_CONFIGS"
  }, {
    "principal" : {
      "type" : "User",
      "name" : "[0] CN=Axual Dummy Root 2018, [1] CN=Axual Dummy Intermediate 2018 01, [2] CN=Example Producer,O=Axual B.V.,L=Utrecht,C=NL"
    },
    "permissionType" : "ALLOW",
    "host" : "*",
    "operation" : "DESCRIBE"
  } ]
}

Import a Missing Kafka Topic

A POST request is used to import an existing Kafka topic into Self-Service.

Currently, we are only supporting importing STRING/STRING topics; this means the imported stream resource will have keyType=STRING and valueType=STRING.

The input string is representing the stream-name without any topic-pattern resolution.

Request fields

Path Type Description Constraints

environmentShortName

String

A short name identifying an existing environment

ownerName

String

A name identifying an existing group

Curl request

$ curl 'http://api.example.com/changes/streams/tenantb-stream2' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenantb' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "environmentShortName" : "tenantbenv1",
  "ownerName" : "Scout XXX"
}'

HTTP request

POST /changes/streams/tenantb-stream2 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenantb
Content-Length: 73
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "environmentShortName" : "tenantbenv1",
  "ownerName" : "Scout XXX"
}

HTTP response

HTTP/1.1 201 Created
Location: http://api.example.com/stream_configs/b6204331b0414f8bb388536a51a32d93
Content-Type: application/hal+json
Content-Length: 787

{
  "properties" : {
    "max.compaction.lag.ms" : "60000",
    "segment.ms" : "60000"
  },
  "retentionTime" : 86400000,
  "partitions" : 2,
  "uid" : "b6204331b0414f8bb388536a51a32d93",
  "created_at" : "2022-08-16T14:06:09.020173",
  "modified_at" : "2022-08-16T14:06:09.020173",
  "created_by" : "tenadmin@tenantb.nl",
  "modified_by" : "tenadmin@tenantb.nl",
  "_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"
    }
  }
}

Attempting to import not a missing Kafka Topic

In case the stream-name used in the request path is resolving to an existing stream-config, we return 400 Bad Request

Curl request
$ curl 'http://api.example.com/changes/streams/tenantb-stream1' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenantb' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "environmentShortName" : "tenantbenv1",
  "ownerName" : "Scout XXX"
}'
HTTP request
POST /changes/streams/tenantb-stream1 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenantb
Content-Length: 73
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "environmentShortName" : "tenantbenv1",
  "ownerName" : "Scout XXX"
}
HTTP response
HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 207

{
  "status" : "BAD_REQUEST",
  "message" : "Provided stream-name is not missing from the Self-Service.",
  "errors" : [ "Provided stream-name is not missing from the Self-Service." ],
  "subErrors" : null
}

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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 941

{
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /schemas HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 2399

{
  "_embedded" : {
    "schemas" : [ {
      "name" : "nl.tenanta.key-schema1",
      "description" : "",
      "uid" : "4edccfd6aa744e698542da36f1f01114",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "schema" : {
          "href" : "...",
          "templated" : true,
          "title" : "A schema"
        }
      }
    }, {
      "name" : "nl.tenanta.value-schema1",
      "description" : "",
      "uid" : "8bc19be0c9cd4da296acd78e6022edf1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "schema" : {
          "href" : "...",
          "templated" : true,
          "title" : "A schema"
        }
      }
    }, {
      "name" : "nl.tenanta.key-schema2",
      "description" : "",
      "uid" : "a32ead9183734d838e32c8454af9f3f5",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "schema" : {
          "href" : "...",
          "templated" : true,
          "title" : "A schema"
        }
      }
    }, {
      "name" : "nl.tenanta.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" : "...",
      "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

projection

There is only 1 valid value: names

Curl request

$ curl 'http://api.example.com/schemas?projection=names' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /schemas?projection=names HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 2258

{
  "_embedded" : {
    "schemas" : [ {
      "name" : "nl.tenanta.key-schema1",
      "uid" : "4edccfd6aa744e698542da36f1f01114",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "schema" : {
          "href" : "...",
          "templated" : true,
          "title" : "A schema"
        }
      }
    }, {
      "name" : "nl.tenanta.value-schema1",
      "uid" : "8bc19be0c9cd4da296acd78e6022edf1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "schema" : {
          "href" : "...",
          "templated" : true,
          "title" : "A schema"
        }
      }
    }, {
      "name" : "nl.tenanta.key-schema2",
      "uid" : "a32ead9183734d838e32c8454af9f3f5",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "schema" : {
          "href" : "...",
          "templated" : true,
          "title" : "A schema"
        }
      }
    }, {
      "name" : "nl.tenanta.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" : "...",
      "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 (?i)^[a-z0-9\.\-_ ]+$. Must not be empty. Size must be between 3 and 255 inclusive

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --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
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 84
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "name" : "io.axual.aeb.test.Schema",
  "description" : "This is a test schema"
}

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:08:03 GMT
Location: http://api.example.com/schemas/8d781bf501b34f658d71bf7a5e7010b9
Content-Type: application/hal+json
Content-Length: 520

{
  "name" : "io.axual.aeb.test.Schema",
  "description" : "This is a test schema",
  "uid" : "8d781bf501b34f658d71bf7a5e7010b9",
  "created_at" : "2022-08-16T14:08:03.791411",
  "modified_at" : "2022-08-16T14:08:03.791411",
  "created_by" : "poweruser@tenanta.nl",
  "modified_by" : "poweruser@tenanta.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
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT
ETag: "0"
Content-Type: application/hal+json
Content-Length: 455

{
  "name" : "nl.tenanta.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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --cookie 'XSRF-TOKEN=XSRF-TOKEN' \
    -d '{
  "description" : "Updated description."
}'
PATCH /schemas/4edccfd6aa744e698542da36f1f01114 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 44
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "description" : "Updated description."
}
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Thu, 07 Jun 2018 23:16:23 GMT

Schema search endpoints

/schemas/search/findByName

Search for a schema by exact name.

Parameter Description

name

Schema name to search for.

GET /schemas/search/findByName?name=nl.tenanta.beb.key-schema1 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 257

{
  "_embedded" : {
    "schemas" : [ ]
  },
  "_links" : {
    "self" : {
      "href" : "...",
      "title" : "URI pointing to current request"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 0,
    "totalPages" : 0,
    "number" : 0
  }
}

/schemas/search/findByNameContaining

Search for a schema by name containing search term.

Parameter Description

name

Term to search within schema name.

GET /schemas/search/findByNameContaining?name=tenanta HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1784

{
  "_embedded" : {
    "schemas" : [ {
      "name" : "nl.tenanta.key-schema1",
      "description" : "",
      "uid" : "4edccfd6aa744e698542da36f1f01114",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "schema" : {
          "href" : "...",
          "templated" : true,
          "title" : "A schema"
        }
      }
    }, {
      "name" : "nl.tenanta.value-schema1",
      "description" : "",
      "uid" : "8bc19be0c9cd4da296acd78e6022edf1",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "schema" : {
          "href" : "...",
          "templated" : true,
          "title" : "A schema"
        }
      }
    }, {
      "name" : "nl.tenanta.key-schema2",
      "description" : "",
      "uid" : "a32ead9183734d838e32c8454af9f3f5",
      "_links" : {
        "self" : {
          "href" : "...",
          "title" : "URI pointing to current request"
        },
        "schema" : {
          "href" : "...",
          "templated" : true,
          "title" : "A schema"
        }
      }
    }, {
      "name" : "nl.tenanta.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
  }
}

Upload schemas

Uploading a new schema for your tenant is a 2 steps process where first we verify if the schema is valid and does not exist yet. Then upload the schema.

Check a schema (Deprecated)

A POST request is used to check a schema.

Curl request
$ curl 'http://api.example.com/schemas/check' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --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
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 306
Host: api.example.com
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-Type: application/json
Content-Length: 441

{
  "versions" : [ "0.0.1" ],
  "fullName" : "io.axual.qa.general.Random",
  "schema" : "{\n  \"type\" : \"record\",\n  \"name\" : \"Random\",\n  \"namespace\" : \"io.axual.qa.general\",\n  \"doc\" : \"Object type that is supposed to be filled with a Random value. This should be used when the Key is irrelevant.\",\n  \"fields\" : [ {\n    \"name\" : \"random\",\n    \"type\" : \"string\",\n    \"doc\" : \"The Random value.\"\n  } ]\n}"
}

Check and Parse a schema

A POST request is used to check and parse a schema, it will return the parsed Schema as string.

Curl request
$ curl 'http://api.example.com/schemas/check-parse' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --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-parse HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 306
Host: api.example.com
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-Type: application/json
Content-Length: 441

{
  "versions" : [ "0.0.1" ],
  "fullName" : "io.axual.qa.general.Random",
  "schema" : "{\n  \"type\" : \"record\",\n  \"name\" : \"Random\",\n  \"namespace\" : \"io.axual.qa.general\",\n  \"doc\" : \"Object type that is supposed to be filled with a Random value. This should be used when the Key is irrelevant.\",\n  \"fields\" : [ {\n    \"name\" : \"random\",\n    \"type\" : \"string\",\n    \"doc\" : \"The Random value.\"\n  } ]\n}"
}

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    --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
Content-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Content-Length: 358
Host: api.example.com
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-Type: application/json
Content-Length: 177

{
  "schemaUid" : "858d48056942069a916a8053e138s2e4",
  "schemaVersionUid" : "086ba075e13f4b228a516817ad799861",
  "fullName" : "io.axual.qa.general.Random",
  "version" : "2"
}

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
Authorization: Bearer token
realm: tenanta
Accept: application/schema+json
Host: api.example.com
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/schema+json
Content-Length: 1078

{
  "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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /schema_versions HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 9850

{
  "_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.tenanta.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.tenanta.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.tenanta.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.tenanta.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.tenanta.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.1",
      "schemaBody" : "schemaBody, incompatible",
      "uid" : "5322f72742cd4c6db07b9a71a825fe4f",
      "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.tenanta.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.tenanta.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" : "v2.1",
      "schemaBody" : "schemaBody1, incompatible",
      "uid" : "c434a9d3b4db4fa0861965246be645a2",
      "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.tenanta.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\":\"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" : "...",
      "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" : 9,
    "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

projection

Only 1 valid value: versions

Curl request

$ curl 'http://api.example.com/schema_versions?projection=versions' -i -X GET \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /schema_versions?projection=versions HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 4806

{
  "_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.1",
      "uid" : "5322f72742cd4c6db07b9a71a825fe4f",
      "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" : "v2.1",
      "uid" : "c434a9d3b4db4fa0861965246be645a2",
      "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" : "...",
      "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" : 9,
    "totalPages" : 1,
    "number" : 0
  }
}

Schema Versions search endpoint

/schema_versions/search/findAllBySchema

Returns the schema versions of the given Schema.

Request parameters
Parameter Description

schema

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 'Authorization: Bearer token' \
    -H 'realm: tenanta'
HTTP request
GET /schema_versions/search/findAllBySchema?schema=http%3A%2F%2Flocalhost%2Fschemas%2F4edccfd6aa744e698542da36f1f01114 HTTP/1.1
Authorization: Bearer token
realm: tenanta
Host: api.example.com
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 3193

{
  "_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.tenanta.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.tenanta.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.1",
      "schemaBody" : "schemaBody, incompatible",
      "uid" : "5322f72742cd4c6db07b9a71a825fe4f",
      "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.tenanta.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 used to create a new AVRO definition is deprecated. Please refer to Upload schemas.

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 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: XSRF-TOKEN' \
    -H 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json' \
    --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-Type: application/json
X-XSRF-TOKEN: XSRF-TOKEN
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Content-Length: 130
Host: api.example.com
Cookie: XSRF-TOKEN=XSRF-TOKEN

{
  "version" : "test-v1",
  "schemaBody" : "{}",
  "schema" : "http://api.example.com/schemas/4edccfd6aa744e698542da36f1f01114"
}

HTTP response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Last-Modified: Tue, 16 Aug 2022 14:08:04 GMT
Location: http://api.example.com/schema_versions/6a519de66a18432cae1cadde2f3014fe
Content-Type: application/hal+json
Content-Length: 893

{
  "version" : "test-v1",
  "schemaBody" : "{}",
  "uid" : "6a519de66a18432cae1cadde2f3014fe",
  "created_at" : "2022-08-16T14:08:04.614587",
  "modified_at" : "2022-08-16T14:08:04.614587",
  "created_by" : "poweruser@tenanta.nl",
  "modified_by" : "poweruser@tenanta.nl",
  "_embedded" : {
    "schema" : {
      "name" : "nl.tenanta.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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /support_tiers HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1084

{
  "_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" : "...",
      "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
  }
}

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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /usage HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1097

[ {
  "name" : "tenanta",
  "groups" : 9,
  "instance" : [ {
    "name" : "ota",
    "streamConfigsCount" : 3,
    "supportTier" : "GOLD",
    "clustersNames" : [ "Zone1 Cluster OTA", "Zone2 Cluster OTA" ]
  }, {
    "name" : "prod",
    "streamConfigsCount" : 1,
    "supportTier" : "SILVER",
    "clustersNames" : [ "Zone1 Cluster PROD" ]
  }, {
    "name" : "lst",
    "streamConfigsCount" : 1,
    "supportTier" : "SILVER",
    "clustersNames" : [ "Zone2 Cluster OTA" ]
  }, {
    "name" : "ota2",
    "streamConfigsCount" : 0,
    "supportTier" : "GOLD",
    "clustersNames" : [ "Zone2 Cluster OTA" ]
  } ]
}, {
  "name" : "tenantb",
  "groups" : 4,
  "instance" : [ {
    "name" : "prod",
    "streamConfigsCount" : 1,
    "supportTier" : "GOLD",
    "clustersNames" : [ "Zone2 Cluster PROD" ]
  }, {
    "name" : "ota",
    "streamConfigsCount" : 0,
    "supportTier" : null,
    "clustersNames" : [ ]
  } ]
}, {
  "name" : "supertenant",
  "groups" : 1,
  "instance" : [ {
    "name" : "test",
    "streamConfigsCount" : 0,
    "supportTier" : "SILVER",
    "clustersNames" : [ ]
  } ]
} ]

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 'Authorization: Bearer token' \
    -H 'realm: tenanta' \
    -H 'Accept: application/hal+json'

HTTP request

GET /usage/instances HTTP/1.1
Authorization: Bearer token
realm: tenanta
Accept: application/hal+json
Host: api.example.com

HTTP response

HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 926

[ {
  "instanceShortName" : "ota",
  "connectUrls" : "https://connect1.url,https://connect2.url",
  "connectEnabled" : true,
  "tenantShortName" : "tenanta"
}, {
  "instanceShortName" : "prod",
  "connectUrls" : null,
  "connectEnabled" : false,
  "tenantShortName" : "tenanta"
}, {
  "instanceShortName" : "lst",
  "connectUrls" : null,
  "connectEnabled" : false,
  "tenantShortName" : "tenanta"
}, {
  "instanceShortName" : "prod",
  "connectUrls" : null,
  "connectEnabled" : false,
  "tenantShortName" : "tenantb"
}, {
  "instanceShortName" : "ota",
  "connectUrls" : null,
  "connectEnabled" : false,
  "tenantShortName" : "tenantb"
}, {
  "instanceShortName" : "test",
  "connectUrls" : null,
  "connectEnabled" : false,
  "tenantShortName" : "supertenant"
}, {
  "instanceShortName" : "ota2",
  "connectUrls" : "https://connect3.url,https://connect4.url",
  "connectEnabled" : true,
  "tenantShortName" : "tenanta"
} ]