{
"paths": {
"/manage/{manager}/stream/internal/{streamId}/access/read/{tenant}": {
"delete": {
"parameters": [
{
"description": "Name of the tenant that is acting as manager for this request",
"example": "manager-tenant",
"explode": false,
"in": "path",
"name": "manager",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "id of the managed stream, including the type prefix",
"examples": {
"awesomedata": {
"summary": "public stream called `awesomedata` for tenant `tnanet`",
"value": "tnanet---awesomedata"
}
},
"explode": false,
"in": "path",
"name": "streamId",
"required": true,
"schema": {
"$ref": "#/components/schemas/ManagedStreamId"
},
"style": "simple"
},
{
"description": "tenant name",
"example": "tenant-a",
"explode": false,
"in": "path",
"name": "tenant",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"202": {
"description": "Read access to the stream has been revoked for the tenant"
}
},
"summary": "Revoke read access for the tenant on the internal stream",
"tags": [
"managed streams access"
]
}
}
},
"openapi": "3.0.3",
"info": {
"description": "Resource management API for DSH",
"title": "DSH Tenant Resource Management REST API",
"version": "1.10.0"
},
"servers": [
{
"url": "/resources/v0"
}
],
"security": [
{
"tokenAuth": []
}
],
"tags": [
{
"description": "Manage applications.",
"name": "application"
},
{
"description": "Manage pre-packaged, easily configured apps that you can select from the App Catalog.",
"name": "app catalog"
},
{
"description": "Configure apps you start from the App Catalog.",
"name": "app catalog app configuration"
},
{
"description": "Query what's in the App Catalog.",
"name": "app catalog manifest"
},
{
"description": "Manage object store resources.",
"name": "bucket"
},
{
"description": "Manage object store change events.",
"name": "bucket watch"
},
{
"description": "Manage the sharing of object stores with other tenants and with the outside world.",
"name": "bucket access"
},
{
"description": "Manage access to the object stores of other tenants.",
"name": "third party bucket"
},
{
"description": "Manage certificate resources.",
"name": "certificate"
},
{
"description": "Managed a scalable, PostgreSQL compatible, relational database.",
"name": "database"
},
{
"description": "Manage opt-in for data catalog assets.",
"name": "data catalog"
},
{
"description": "Manage a Flink cluster.",
"name": "flink cluster"
},
{
"description": "Manage Kafka proxies.",
"name": "kafka proxy"
},
{
"description": "Manage Kafka ACL groups",
"name": "kafka acl group"
},
{
"description": "Manage other tenants.",
"name": "managed tenant"
},
{
"description": "Manage the limits of other tenants.",
"name": "managed tenant limits"
},
{
"description": "Manage public and internal streams.",
"name": "managed streams"
},
{
"description": "Manage access to streams.",
"name": "managed streams access"
},
{
"description": "Request and renew Tenant API tokens.",
"name": "robot"
},
{
"description": "Manage secrets.",
"name": "secret"
},
{
"description": "Manage Kafka topics.",
"name": "topic"
},
{
"description": "Manage volumes.",
"name": "volume"
}
],
"components": {
"examples": {
"application": {
"description": "an example application",
"value": {
"name": "simpleweb-test",
"image": "registry.cp.kpn-dsh.com/dshdemo/simpleweb:1.0.0",
"cpus": 0.1,
"mem": 256,
"env": {
"MY_VARIABLE": "{ concat('I am running on ', variables('DSH_ENVIRONMENT'), ' blank ') }"
},
"instances": 1,
"singleInstance": true,
"needsToken": true,
"metrics": {
"port": 7070,
"path": "/metrics"
},
"readableStreams": [
"stream.airpollution",
"stream.weather"
],
"writableStreams": [
"stream.metrics"
],
"topics": [
"duptest"
],
"secrets": [
{
"name": "satellite-api-key",
"injections": [
{
"env": "SATELLITE_API_KEY"
}
]
}
],
"user": "1673:1673"
}
},
"appcatalogappconfiguration": {
"description": "an example appcatalogappconfiguration",
"value": {
"manifestUrn": "appcatalog/manifest/klarrio/whoami/0.0.1",
"stopped": false,
"name": "whoami",
"configuration": {
"@uid": "1674",
"@gid": "1674",
"LOG_LEVEL": "warn",
"LOG_LEVEL_MONITOR": "warn",
"LOG_LEVEL_SERVICE": "warn"
}
}
},
"allocationStatus": {
"description": "an example application",
"value": {
"derivedFrom": "optional URN of optional parent allocation",
"provisioned": true,
"notifications": []
}
},
"certificate": {
"description": "an example certificate",
"value": {
"certChainSecret": "ctest-deployment-certificate",
"keySecret": "ctest-deployment-key"
}
},
"certificateStatus": {
"description": "an example CertificateStatus",
"value": {
"configuration": {
"certChainSecret": "ctest-deployment-certificate",
"keySecret": "ctest-deployment-key"
},
"actual": {
"certChainSecret": "ctest-deployment-certificate",
"keySecret": "ctest-deployment-key"
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"database": {
"description": "an example database",
"value": {
"instances": 3,
"cpus": 1.0,
"mem": 2048,
"volumeSize": 10,
"extensions": [],
"version": "",
"snapshotInterval": 0
}
},
"databaseStatus": {
"description": "an example databaseStatus",
"value": {
"configuration": {
"instances": 3,
"cpus": 1.0,
"mem": 2048,
"volumeSize": 10,
"extensions": [],
"version": "",
"snapshotInterval": 0
},
"actual": {
"instances": 3,
"cpus": 1.0,
"mem": 2048,
"volumeSize": 10,
"extensions": [],
"version": "",
"snapshotInterval": 0
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"flinkCluster": {
"description": "an example flinkCluster",
"value": {
"jobManager": {
"cpus": 0.3,
"mem": 1024
},
"taskManager": {
"instances": 2,
"cpus": 0.3,
"mem": 3072
},
"version": "1.12",
"zone": "public"
}
},
"flinkClusterStatus": {
"description": "an example FlinkClusterStatus",
"value": {
"configuration": {
"jobManager": {
"cpus": 0.3,
"mem": 1024
},
"taskManager": {
"instances": 2,
"cpus": 0.3,
"mem": 3072
},
"version": "1.12",
"zone": "public"
},
"actual": {
"jobManager": {
"cpus": 0.3,
"mem": 1024
},
"taskManager": {
"instances": 2,
"cpus": 0.3,
"mem": 3072
},
"version": "1.12",
"zone": "public"
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"managedStream": {
"description": "a internal managed stream",
"value": {
"partitions": 6,
"replicationFactor": 3
}
},
"publicManagedStreamWithDefaultKafkaPartitioner": {
"description": "a public managed stream with a default kafka partitioner",
"value": {
"partitions": 6,
"replicationFactor": 3,
"contract": {
"canBeRetained": true,
"partitioner": {
"kind": "kafkaDefault"
}
}
}
},
"publicManagedStreamWithTopicLevelPartitioner": {
"description": "a public managed stream with a topic level partitioner",
"value": {
"partitions": 6,
"replicationFactor": 3,
"contract": {
"canBeRetained": true,
"partitioner": {
"kind": "topicLevel",
"topicLevel": 2
}
}
}
},
"managedTenant": {
"description": "an example managed tenant",
"value": {
"name": "a-tenant",
"manager": "managing-tenant",
"services": [
{
"name": "vpn",
"enabled": false
},
{
"name": "monitoring",
"enabled": true
},
{
"name": "tracing",
"enabled": true
}
]
}
},
"managedTenantLimitListAll": {
"description": "an example of all managed tenant limits as a list",
"value": [
{
"name": "cpu",
"value": 0.5
},
{
"name": "mem",
"value": 4096
},
{
"name": "certificateCount",
"value": 10
},
{
"name": "secretCount",
"value": 10
},
{
"name": "topicCount",
"value": 10
},
{
"name": "partitionCount",
"value": 10
},
{
"name": "consumerRate",
"value": 1048576
},
{
"name": "producerRate",
"value": 1048576
},
{
"name": "requestRate",
"value": 50
},
{
"name": "kafkaAclGroupCount",
"value": 10
}
]
},
"managedTenantLimitListSome": {
"description": "an example of some managed tenant limits as a list",
"value": [
{
"name": "cpu",
"value": 0.5
},
{
"name": "mem",
"value": 4096
}
]
},
"managedTenantLimitCpu": {
"description": "an example of the managed tenant limit for vCPU quota",
"value": {
"name": "cpu",
"value": 0.5
}
},
"managedTenantLimitMem": {
"description": "an example of the managed tenant limit for memory (MiB)",
"value": {
"name": "mem",
"value": 4096
}
},
"managedTenantLimitCertificateCount": {
"description": "an example of the managed tenant limit for certificates",
"value": {
"name": "certificateCount",
"value": 10
}
},
"managedTenantLimitSecretCount": {
"description": "an example of the managed tenant limit for secrets",
"value": {
"name": "secretCount",
"value": 10
}
},
"managedTenantLimitTopicCount": {
"description": "an example of the managed tenant limit for topics",
"value": {
"name": "topicCount",
"value": 10
}
},
"managedTenantLimitPartitionCount": {
"description": "an example of the managed tenant limit for partitions",
"value": {
"name": "partitionCount",
"value": 10
}
},
"managedTenantLimitConsumerRate": {
"description": "an example of the managed tenant limit for Kafka consumer rate (bytes/s)",
"value": {
"name": "consumerRate",
"value": 1048576
}
},
"managedTenantLimitProducerRate": {
"description": "an example of the managed tenant limit for Kafka producer rate (bytes/s)",
"value": {
"name": "producerRate",
"value": 1048576
}
},
"managedTenantLimitRequestRate": {
"description": "an example of the managed tenant limit for Kafka request rate (%)",
"value": {
"name": "requestRate",
"value": 50
}
},
"managedTenantLimitKafkaAclGroupCount": {
"description": "an example of the managed tenant limit for Kafka ACL groups",
"value": {
"name": "kafkaAclGroupCount",
"value": 10
}
},
"kafkaProxy": {
"description": "an example of a Kafka proxy configuration",
"value": {
"name": "test-proxy",
"zone": "public",
"instances": 1,
"cpus": 1.0,
"mem": 1024,
"secretNameCaChain": "test-proxy-ca-chain",
"certificate": "test-certificate",
"schemaStore": true,
"schemaStoreCpus": 0.1,
"schemaStoreMem": 256,
"validations": [
{
"commonName": "tenant-common-name",
"country": "NL",
"locality": "Rotterdam",
"organization": "KPN",
"organizationalUnit": "DSH",
"province": "Zuid-Holland",
"subjectType": "EXACT"
}
],
"enableKafkaAclGroups": false
}
},
"secret": {
"description": "an example secret",
"value": {
"name": "secret-name",
"value": "secret-value"
}
},
"task": {
"description": "an example task",
"value": {
"healthy": true,
"host": "10.0.2.36",
"stagedAt": "2017-12-07T10:53:46.643Z",
"startedAt": "2017-12-07T10:55:41.765Z",
"stoppedAt": "2017-12-07T10:58:41.765Z",
"lastUpdate": 1639161445,
"state": "RUNNING"
}
},
"taskStatus": {
"description": "an example taskStatus",
"value": {
"configuration": {
"healthy": true,
"host": "10.0.2.36",
"stagedAt": "2017-12-07T10:53:46.643Z",
"startedAt": "2017-12-07T10:55:41.765Z",
"stoppedAt": "2017-12-07T10:58:41.765Z",
"lastUpdate": 1639161445,
"state": "RUNNING"
},
"actual": {
"healthy": true,
"host": "10.0.2.36",
"stagedAt": "2017-12-07T10:53:46.643Z",
"startedAt": "2017-12-07T10:55:41.765Z",
"stoppedAt": "2017-12-07T10:58:41.765Z",
"lastUpdate": 1639161445,
"state": "RUNNING"
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"topic": {
"description": "an example topic",
"value": {
"partitions": 2,
"replicationFactor": 1
}
},
"topicStatus": {
"description": "an example topicStatus",
"value": {
"configuration": {
"partitions": 2,
"replicationFactor": 1
},
"actual": {
"partitions": 2,
"replicationFactor": 1
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"volume": {
"description": "an example volume",
"value": {
"sizeGiB": 1
}
},
"volumeStatus": {
"description": "an example volumeStatus",
"value": {
"configuration": {
"sizeGiB": 1
},
"actual": {
"sizeGiB": 1
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"bucketWatchStatus": {
"description": "an example BucketWatchStatus",
"value": {
"configuration": {
"bucket": "twitter-app-bucket"
},
"actual": {
"bucket": "twitter-app-bucket"
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"bucketStatus": {
"description": "an example BucketStatus",
"value": {
"configuration": {
"versioned": false,
"encrypted": true
},
"actual": {
"versioned": false,
"encrypted": true
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"bucket": {
"description": "an example bucket",
"value": {
"versioned": false,
"encrypted": true
}
},
"bucketaccesswanted": {
"description": "an example BucketAccess allocation request",
"value": {
"name": "baz-shared",
"bucket": "baz",
"readable": true,
"writable": true
}
},
"bucketaccessactual": {
"description": "a example BucketAccess as actually deployed",
"value": {
"name": "baz-shared",
"bucket": "baz",
"readable": true,
"writable": true,
"credentialidentifierref": "bucketaccess_baz-shared_identifier",
"credentialsecretref": "bucketaccess_baz-shared_secret"
}
},
"dataCatalogAssetStatus": {
"description": "an example DataCatalogAssetStatus",
"value": {
"configuration": {
"versioned": false,
"encrypted": true
},
"actual": {
"versioned": false,
"encrypted": true
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"dataCatalogAssetBucket": {
"description": "an example data catalog asset for a bucket",
"value": {
"kind": "bucket",
"name": "my-bucket"
}
},
"dataCatalogAssetWritableStream": {
"description": "an example data catalog asset for a public writablestream",
"value": {
"kind": "writablestream",
"name": "stream.my-stream"
}
},
"thirdpartybucketRegistration": {
"description": "an example thirdpartybucketregistration",
"value": {
"name": "bucket-imported-from-foo",
"shareidentifier": "allocation/foo/bucketaccess/baz-shared",
"credentialidentifierplaintext": "AIKAsomething",
"credentialsecretplaintext": "longseeminglyrandomsecretvalue"
}
},
"thirdpartybucketConcessionStatus": {
"description": "an example ThirdPartyBucketConcessionStatus",
"value": {
"configuration": {
"name": "bucket-imported-from-foo",
"shareidentifier": "allocation/foo/bucketaccess/baz-shared"
},
"actual": {
"name": "bucket-imported-from-foo",
"readable": true,
"writable": true,
"credentialidentifierref": "receivedbucketaccess_bucket-imported-from-foo_identifier",
"credentialsecretref": "receivedbucketaccess_bucket-imported-from-foo_secret",
"shareidentifier": "allocation/foo/bucketaccess/baz-shared"
},
"status": {
"provisioned": true,
"notifications": []
}
}
},
"thirdpartybucketConcessionConfiguration": {
"description": "an example ThirdPartyBucketConcessionConfiguration",
"value": {
"name": "bucket-imported-from-foo",
"shareidentifier": "allocation/foo/bucketaccess/baz-shared"
}
},
"thirdpartybucketConcession": {
"description": "an example ThirdPartyBucketConcession",
"value": {
"name": "bucket-imported-from-foo",
"readable": true,
"writable": true,
"credentialidentifierref": "receivedbucketaccess_bucket-imported-from-foo_identifier",
"credentialsecretref": "receivedbucketaccess_bucket-imported-from-foo_secret",
"shareidentifier": "allocation/foo/bucketaccess/baz-shared"
}
}
},
"parameters": {
"AppID": {
"description": "application name",
"example": "simpleweb-test",
"explode": false,
"in": "path",
"name": "appid",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"AppCatalogAppID": {
"description": "appcatalogapp name",
"example": "eavesdropper",
"explode": false,
"in": "path",
"name": "appcatalogappid",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"BucketId": {
"description": "bucket name",
"example": "twitter-app-bucket",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
},
"BucketAccessName": {
"description": "bucket access name",
"example": "twitter-app-bucket-readonly",
"in": "path",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
},
"CertificateId": {
"description": "certificate name",
"example": "kafka-proxy-certificate",
"explode": false,
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"DatabaseId": {
"description": "database name",
"example": "db1",
"explode": false,
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"KafkaProxyId": {
"description": "Kafka proxy id",
"example": "kafka-proxy-id",
"explode": false,
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"KafkaACLGroupId": {
"description": "Kafka ACL group id",
"example": "kafka-acl-group-id",
"explode": false,
"in": "path",
"name": "id",
"required": true,
"schema": {
"pattern": "[a-z][a-z0-9-]{1,15}",
"type": "string"
},
"style": "simple"
},
"LimitKind": {
"description": "Limit request type",
"example": "cpu",
"explode": false,
"in": "path",
"name": "kind",
"required": true,
"schema": {
"enum": [
"cpu",
"mem",
"certificatecount",
"secretcount",
"topiccount",
"partitioncount",
"consumerrate",
"producerrate",
"requestrate",
"kafkaaclgroupcount"
],
"type": "string"
},
"style": "simple"
},
"Manager": {
"description": "Name of the tenant that is acting as manager for this request",
"example": "manager-tenant",
"explode": false,
"in": "path",
"name": "manager",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"ManagedStreamId": {
"description": "id of the managed stream, including the type prefix",
"examples": {
"awesomedata": {
"summary": "public stream called `awesomedata` for tenant `tnanet`",
"value": "tnanet---awesomedata"
}
},
"explode": false,
"in": "path",
"name": "streamId",
"required": true,
"schema": {
"$ref": "#/components/schemas/ManagedStreamId"
},
"style": "simple"
},
"SecretId": {
"description": "secret name",
"example": "proximity-certificate-key",
"explode": false,
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"TaskId": {
"description": "task name",
"example": "dbfa9cdc-b9dc-11eb-9cb4-70b3d5800002",
"explode": false,
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"Tenant": {
"description": "tenant name",
"example": "tenant-a",
"explode": false,
"in": "path",
"name": "tenant",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"TopicId": {
"description": "topic name",
"example": "flinkjob-input",
"explode": false,
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
"VolumeId": {
"description": "volume name",
"example": "flinkjob-store",
"explode": false,
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
},
"schemas": {
"ActualCertificate": {
"allOf": [
{
"$ref": "#/components/schemas/Certificate"
},
{
"$ref": "#/components/schemas/ActualCertificate_allOf"
}
],
"description": "information on a certificate which is provisioned on the platform",
"type": "object"
},
"AllocationStatus": {
"example": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
},
"properties": {
"derivedFrom": {
"description": "pointer to the parent allocation or limit that caused this allocation to be implicitly created\n",
"type": "string"
},
"provisioned": {
"description": "indicates whether configuration and actual state match",
"type": "boolean"
},
"notifications": {
"items": {
"$ref": "#/components/schemas/Notification"
},
"type": "array"
}
},
"required": [
"notifications",
"provisioned"
],
"type": "object"
},
"Application": {
"example": {
"image": "image",
"spreadGroup": "spreadGroup",
"readableStreams": [
"readableStreams",
"readableStreams"
],
"cpus": 0.8008281904610115,
"instances": 0,
"exposedPorts": {
"key": {
"mode": "mode",
"vhost": "vhost",
"auth": "auth",
"paths": [
{
"prefix": "prefix"
},
{
"prefix": "prefix"
}
],
"serviceGroup": "serviceGroup",
"tls": "auto",
"whitelist": "whitelist"
}
},
"topics": [
"topics",
"topics"
],
"volumes": {
"key": {
"name": "name"
}
},
"env": {
"key": "env"
},
"secrets": [
{
"injections": [
{
"key": "injections"
},
{
"key": "injections"
}
],
"name": "name"
},
{
"injections": [
{
"key": "injections"
},
{
"key": "injections"
}
],
"name": "name"
}
],
"mem": 0,
"writableStreams": [
"writableStreams",
"writableStreams"
],
"healthCheck": {
"path": "/",
"protocol": "http",
"port": 0
},
"needsToken": true,
"singleInstance": false,
"metrics": {
"path": "/metrics",
"port": 0
},
"user": "user"
},
"properties": {
"cpus": {
"description": "How many CPUs this application needs (0.5 = 50% of 1 cpu)",
"type": "number"
},
"mem": {
"description": "Amount of memory your application needs in MB",
"minimum": 0,
"type": "integer"
},
"env": {
"additionalProperties": {
"type": "string"
},
"description": "Environment variables",
"type": "object"
},
"exposedPorts": {
"additionalProperties": {
"$ref": "#/components/schemas/PortMapping"
},
"description": "Exposes ports of your application outside the platform",
"type": "object"
},
"healthCheck": {
"$ref": "#/components/schemas/HealthCheck"
},
"image": {
"description": "The container image to launch",
"format": "docker_repo/tag:version",
"type": "string"
},
"instances": {
"default": 1,
"description": "Number of instances that need to be spun up for this app",
"minimum": 0,
"type": "integer"
},
"needsToken": {
"default": true,
"description": "If true, the platform will provision a secret token in the `DSH_SECRET_TOKEN` environment variable. This token can be exchanged for a client certificate that can be used for authentication to, amongst others, the Kafka brokers.\n",
"type": "boolean"
},
"singleInstance": {
"default": false,
"description": "If true, the platform will ensure that there is always at most one instance of this application running at the same time. This impacts restart and upgrade behavior: A single-instance application will be terminated before a replacement is started, whereas an application that is not single-instance will remain running until its replacement has started and reports healthy. **Note** Applications that define volumes are always implicitly treated as single-instance, even if this flag is not set.",
"type": "boolean"
},
"user": {
"description": "The userid:groupid combination used to start the application container.",
"format": "userid:groupid",
"type": "string"
},
"metrics": {
"$ref": "#/components/schemas/Metrics"
},
"spreadGroup": {
"description": "The spread group - if any - to be used to ensure instances of one or more applications are not scheduled onto the same node.",
"type": "string"
},
"secrets": {
"items": {
"$ref": "#/components/schemas/ApplicationSecret"
},
"type": "array"
},
"topics": {
"description": "names of scratch topics to which the application needs access.",
"items": {
"type": "string"
},
"type": "array"
},
"readableStreams": {
"description": "names of streams to which the application needs read access.",
"items": {
"type": "string"
},
"type": "array"
},
"writableStreams": {
"description": "names of streams to which the application needs write access.",
"items": {
"type": "string"
},
"type": "array"
},
"volumes": {
"additionalProperties": {
"$ref": "#/components/schemas/Application_volumes"
},
"description": "The volumes to be mounted in the container. The dictionary key is the mount point.",
"type": "object"
}
},
"required": [
"cpus",
"image",
"mem",
"user"
],
"type": "object"
},
"ApplicationSecret": {
"description": "a secret to be injected as an environment variable in the application",
"example": {
"injections": [
{
"key": "injections"
},
{
"key": "injections"
}
],
"name": "name"
},
"properties": {
"name": {
"description": "the secret's name",
"type": "string"
},
"injections": {
"description": "a list of environment variable names. The secret's value may be injected multiple times as different environment variables, so multiple environment variable names for the same secret can be provided",
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"type": "array"
}
},
"required": [
"injections",
"name"
],
"type": "object"
},
"AppCatalogApp": {
"example": {
"manifestUrn": "manifestUrn",
"configuration": "configuration",
"name": "name",
"resources": {
"key": ""
}
},
"properties": {
"name": {
"type": "string"
},
"configuration": {
"type": "string"
},
"manifestUrn": {
"type": "string"
},
"resources": {
"additionalProperties": {
"oneOf": [
{
"$ref": "#/components/schemas/Application"
},
{
"$ref": "#/components/schemas/Bucket"
},
{
"$ref": "#/components/schemas/Certificate"
},
{
"$ref": "#/components/schemas/Secret"
},
{
"$ref": "#/components/schemas/Topic"
},
{
"$ref": "#/components/schemas/Vhost"
},
{
"$ref": "#/components/schemas/Volume"
}
]
},
"description": "child resources",
"type": "object"
}
},
"required": [
"manifestUrn",
"name",
"resources"
],
"type": "object"
},
"AppCatalogAppConfiguration": {
"example": {
"stopped": true,
"manifestUrn": "manifestUrn",
"configuration": {
"key": "configuration"
},
"name": "name"
},
"properties": {
"name": {
"type": "string"
},
"manifestUrn": {
"type": "string"
},
"stopped": {
"type": "boolean"
},
"configuration": {
"additionalProperties": {
"type": "string"
},
"description": "configuration parameters to be used in AppCatalog manifest",
"type": "object"
}
},
"required": [
"configuration",
"manifestUrn",
"name",
"stopped"
],
"type": "object"
},
"AppCatalogManifest": {
"example": {
"payload": "payload",
"draft": true,
"lastModified": 0.8008281904610115
},
"properties": {
"lastModified": {
"description": "creation timestamp of the secret",
"type": "number"
},
"payload": {
"type": "string"
},
"draft": {
"type": "boolean"
}
},
"required": [
"draft",
"lastModified",
"payload"
],
"type": "object"
},
"Bucket": {
"example": {
"encrypted": true,
"versioned": true
},
"properties": {
"versioned": {
"type": "boolean"
},
"encrypted": {
"type": "boolean"
}
},
"required": [
"encrypted",
"versioned"
],
"type": "object"
},
"BucketStatus": {
"example": {
"actual": {
"encrypted": true,
"versioned": true
},
"configuration": {
"encrypted": true,
"versioned": true
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/Bucket"
},
"actual": {
"$ref": "#/components/schemas/Bucket"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"BucketWatch": {
"example": {
"bucket": "bucket"
},
"properties": {
"bucket": {
"type": "string"
}
},
"required": [
"bucket"
],
"type": "object"
},
"Certificate": {
"description": "information on a certificate which is wanted on the platform but may not yet be provisioned",
"example": {
"certChainSecret": "certChainSecret",
"passphraseSecret": "passphraseSecret",
"keySecret": "keySecret"
},
"properties": {
"keySecret": {
"type": "string"
},
"certChainSecret": {
"type": "string"
},
"passphraseSecret": {
"type": "string"
}
},
"required": [
"certChainSecret",
"keySecret"
],
"type": "object"
},
"CertificateStatus": {
"example": {
"actual": null,
"configuration": {
"certChainSecret": "certChainSecret",
"passphraseSecret": "passphraseSecret",
"keySecret": "keySecret"
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/Certificate"
},
"actual": {
"$ref": "#/components/schemas/ActualCertificate"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"ClientSecret": {
"example": {
"createdDate": 0.8008281904610115,
"value": "value"
},
"properties": {
"value": {
"description": "the secret value",
"type": "string"
},
"createdDate": {
"description": "creation timestamp of the secret",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
},
"Database": {
"example": {
"extensions": [
"postgis",
"postgres_fdw",
"uuid-ossp"
],
"mem": 3072,
"instances": 3,
"cpus": 1.0,
"snapshotInterval": 3600,
"version": "2.11.1.0-8",
"volumeSize": 10
},
"properties": {
"instances": {
"example": 3,
"minimum": 3,
"type": "integer"
},
"cpus": {
"example": 1.0,
"minimum": 0.5,
"type": "number"
},
"mem": {
"example": 3072,
"minimum": 2048,
"type": "integer"
},
"volumeSize": {
"example": 10,
"minimum": 10,
"type": "integer"
},
"extensions": {
"example": [
"postgis",
"postgres_fdw",
"uuid-ossp"
],
"items": {
"type": "string"
},
"type": "array"
},
"version": {
"example": "2.11.1.0-8",
"type": "string"
},
"snapshotInterval": {
"example": 3600,
"minimum": 3600,
"type": "integer"
}
},
"required": [
"cpus",
"instances",
"mem",
"volumeSize"
],
"type": "object"
},
"DatabaseStatus": {
"example": {
"actual": {
"extensions": [
"postgis",
"postgres_fdw",
"uuid-ossp"
],
"mem": 3072,
"instances": 3,
"cpus": 1.0,
"snapshotInterval": 3600,
"version": "2.11.1.0-8",
"volumeSize": 10
},
"configuration": {
"extensions": [
"postgis",
"postgres_fdw",
"uuid-ossp"
],
"mem": 3072,
"instances": 3,
"cpus": 1.0,
"snapshotInterval": 3600,
"version": "2.11.1.0-8",
"volumeSize": 10
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/Database"
},
"actual": {
"$ref": "#/components/schemas/Database"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"KafkaProxyStatus": {
"properties": {
"configuration": {
"$ref": "#/components/schemas/KafkaProxy"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"Empty": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"FlinkCluster": {
"example": {
"zone": "zone",
"jobManager": {
"mem": 1024,
"cpus": 0.3
},
"taskManager": {
"mem": 3072,
"instances": 2,
"cpus": 0.3
},
"version": "version"
},
"properties": {
"version": {
"description": "Flink version",
"type": "string"
},
"jobManager": {
"$ref": "#/components/schemas/FlinkJobManager"
},
"taskManager": {
"$ref": "#/components/schemas/FlinkTaskManager"
},
"zone": {
"description": "Network zone this cluster needs to run in. /components/schemas/Zone contains a list of available network zones in this platform.",
"type": "string"
}
},
"required": [
"version",
"zone"
],
"type": "object"
},
"FlinkJobManager": {
"example": {
"mem": 1024,
"cpus": 0.3
},
"properties": {
"cpus": {
"description": "CPU quota for the Flink job manager (minimum 0.3 = 30% of 1 CPU)",
"example": 0.3,
"minimum": 0.3,
"type": "number"
},
"mem": {
"description": "Memory (MB) for this Flink job manager (minimum 1024 = 1 GB)",
"example": 1024,
"minimum": 1024,
"type": "integer"
}
},
"required": [
"cpus",
"mem"
],
"type": "object"
},
"FlinkClusterStatus": {
"example": {
"actual": {
"zone": "zone",
"jobManager": {
"mem": 1024,
"cpus": 0.3
},
"taskManager": {
"mem": 3072,
"instances": 2,
"cpus": 0.3
},
"version": "version"
},
"configuration": {
"zone": "zone",
"jobManager": {
"mem": 1024,
"cpus": 0.3
},
"taskManager": {
"mem": 3072,
"instances": 2,
"cpus": 0.3
},
"version": "version"
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/FlinkCluster"
},
"actual": {
"$ref": "#/components/schemas/FlinkCluster"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"FlinkTaskManager": {
"example": {
"mem": 3072,
"instances": 2,
"cpus": 0.3
},
"properties": {
"instances": {
"description": "Number of Flink task managers (minimum 1)",
"example": 2,
"minimum": 1,
"type": "integer"
},
"cpus": {
"description": "CPU quota for each Flink task manager (minimum 0.3 = 30% of 1 CPU)",
"example": 0.3,
"minimum": 0.3,
"type": "number"
},
"mem": {
"description": "Memory (MB) for each Flink task manager (minimum 1024 = 1 GB)",
"example": 3072,
"minimum": 1024,
"type": "integer"
}
},
"required": [
"cpus",
"instances",
"mem"
],
"type": "object"
},
"HealthCheck": {
"example": {
"path": "/",
"protocol": "http",
"port": 0
},
"properties": {
"port": {
"default": 7070,
"description": "The TCP port for the health check\n",
"minimum": 0,
"type": "integer"
},
"path": {
"default": "/",
"description": "The HTTP path for the health check\n",
"type": "string"
},
"protocol": {
"description": "The protocol for for the health check (http or https)\n",
"enum": [
"http",
"https"
],
"type": "string"
}
},
"type": "object"
},
"KafkaAclGroup": {
"description": "information about a Kafka ACL group",
"example": {
"readableStreams": [
{
"kind": "topic",
"name": "readable-topic-1"
},
{
"kind": "public",
"name": "readable-topic-2"
}
],
"writableStreams": [
{
"kind": "topic",
"name": "writeable-topic-1"
},
{
"kind": "internal",
"name": "writeable-topic-2"
}
]
},
"properties": {
"readableStreams": {
"items": {
"$ref": "#/components/schemas/KafkaAclGroupTopic"
},
"type": "array"
},
"writableStreams": {
"items": {
"$ref": "#/components/schemas/KafkaAclGroupTopic"
},
"type": "array"
}
},
"type": "object"
},
"KafkaAclGroupTopic": {
"description": "Kafka ACL group topic definition",
"properties": {
"name": {
"description": "topic name",
"type": "string"
},
"kind": {
"enum": [
"topic",
"internal",
"public"
],
"type": "string"
}
},
"required": [
"kind",
"name"
],
"type": "object"
},
"KafkaProxy": {
"example": {
"mem": 3072,
"zone": "private",
"cpus": 0.3,
"instances": 2,
"schemaStoreCpus": 0.1,
"secretNameCaChain": "secretNameCaChain",
"name": "name",
"certificate": "certificate",
"enableKafkaAclGroups": true,
"validations": [
{
"commonName": "commonName",
"country": "country",
"province": "province",
"organization": "organization",
"locality": "locality",
"subjectType": "subjectType",
"organizationalUnit": "organizationalUnit"
},
{
"commonName": "commonName",
"country": "country",
"province": "province",
"organization": "organization",
"locality": "locality",
"subjectType": "subjectType",
"organizationalUnit": "organizationalUnit"
}
],
"schemaStore": true,
"schemaStoreMem": 256
},
"properties": {
"name": {
"description": "Name of the new Kafka Proxy",
"type": "string"
},
"zone": {
"description": "Available networks on this platform",
"enum": [
"private",
"public"
],
"type": "string"
},
"cpus": {
"description": "CPU quota for each Kafka Proxy (minimum 0.3 = 30% of 1 CPU)",
"example": 0.3,
"minimum": 0.3,
"type": "number"
},
"mem": {
"description": "Memory (MB) for each Kafka Proxy (minimum 1024 = 1 GB)",
"example": 3072,
"minimum": 1024,
"type": "integer"
},
"instances": {
"description": "Number of instances",
"example": 2,
"minimum": 1,
"type": "integer"
},
"secretNameCaChain": {
"description": "Secret name containing the Ca Cert",
"type": "string"
},
"certificate": {
"description": "Secret name with the server certificate",
"type": "string"
},
"schemaStore": {
"description": "Set to True no enable Schema Store",
"type": "boolean"
},
"schemaStoreCpus": {
"description": "CPU quota for Schema Store (minimum 0.3 = 30% of 1 CPU)",
"example": 0.1,
"minimum": 0.1,
"type": "number"
},
"schemaStoreMem": {
"description": "Memory (MB) for Schema Store (minimum 256MB)",
"example": 256,
"minimum": 256,
"type": "integer"
},
"validations": {
"items": {
"$ref": "#/components/schemas/Validations"
},
"type": "array"
},
"enableKafkaAclGroups": {
"description": "Set to True to enable the ACL groups (Advanced feature: without the correct acl groups in place this will result in a non-functioning proxy instance)\n",
"type": "boolean"
}
},
"required": [
"certificate",
"cpus",
"instances",
"mem",
"secretNameCaChain",
"zone"
],
"type": "object"
},
"KafkaProxyValidation": {
"description": "client certificate validations, only non empty values taken in account, no values means no validation",
"properties": {
"commonName": {
"type": "string"
},
"country": {
"type": "string"
},
"locality": {
"type": "string"
},
"organization": {
"type": "string"
},
"organizationalUnit": {
"type": "string"
},
"province": {
"type": "string"
},
"subjectType": {
"description": "EXACT for exact match, PATTERN for pattern match",
"enum": [
"EXACT",
"PATTERN"
],
"type": "string"
}
},
"required": [
"subjectType"
],
"type": "object"
},
"LimitValue": {
"discriminator": {
"mapping": {
"cpu": "#/components/schemas/LimitValueCpu",
"mem": "#/components/schemas/LimitValueMem",
"certificateCount": "#/components/schemas/LimitValueCertificateCount",
"secretCount": "#/components/schemas/LimitValueSecretCount",
"topicCount": "#/components/schemas/LimitValueTopicCount",
"partitionCount": "#/components/schemas/LimitValuePartitionCount",
"consumerRate": "#/components/schemas/LimitValueConsumerRate",
"producerRate": "#/components/schemas/LimitValueProducerRate",
"requestRate": "#/components/schemas/LimitValueRequestRate",
"kafkaAclGroupCount": "#/components/schemas/LimitValueKafkaAclGroupCount"
},
"propertyName": "name"
},
"oneOf": [
{
"$ref": "#/components/schemas/LimitValueCpu"
},
{
"$ref": "#/components/schemas/LimitValueMem"
},
{
"$ref": "#/components/schemas/LimitValueCertificateCount"
},
{
"$ref": "#/components/schemas/LimitValueSecretCount"
},
{
"$ref": "#/components/schemas/LimitValueTopicCount"
},
{
"$ref": "#/components/schemas/LimitValuePartitionCount"
},
{
"$ref": "#/components/schemas/LimitValueConsumerRate"
},
{
"$ref": "#/components/schemas/LimitValueProducerRate"
},
{
"$ref": "#/components/schemas/LimitValueRequestRate"
},
{
"$ref": "#/components/schemas/LimitValueKafkaAclGroupCount"
}
]
},
"BaseLimitValue": {
"properties": {
"name": {
"enum": [
"cpu",
"mem",
"certificateCount",
"secretCount",
"topicCount",
"partitionCount",
"consumerRate",
"producerRate",
"requestRate",
"kafkaAclGroupCount"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"LimitValueCpu": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValueCpu_allOf"
}
]
},
"LimitValueMem": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValueMem_allOf"
}
]
},
"LimitValueCertificateCount": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValueCertificateCount_allOf"
}
]
},
"LimitValueSecretCount": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValueSecretCount_allOf"
}
]
},
"LimitValueTopicCount": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValueTopicCount_allOf"
}
]
},
"LimitValuePartitionCount": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValuePartitionCount_allOf"
}
]
},
"LimitValueKafkaAclGroupCount": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValueKafkaAclGroupCount_allOf"
}
]
},
"LimitValueConsumerRate": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValueConsumerRate_allOf"
}
]
},
"LimitValueProducerRate": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValueProducerRate_allOf"
}
]
},
"LimitValueRequestRate": {
"allOf": [
{
"$ref": "#/components/schemas/BaseLimitValue"
},
{
"$ref": "#/components/schemas/LimitValueRequestRate_allOf"
}
]
},
"ManagedStream": {
"allOf": [
{
"$ref": "#/components/schemas/Topic"
},
{
"type": "object"
}
],
"description": "An internal stream. A stream that can be shared between different tenants, but is not accessible over the MQTT protocol adapter.\n",
"type": "object"
},
"PublicManagedStream": {
"allOf": [
{
"$ref": "#/components/schemas/ManagedStream"
},
{
"$ref": "#/components/schemas/PublicManagedStream_allOf"
}
],
"description": "A public stream. A stream that can be shared between different tenants, and is accessible over the MQTT protocol adapter.\n",
"type": "object"
},
"PublicManagedStreamContract": {
"description": "The stream contract for a public stream.",
"properties": {
"canBeRetained": {
"description": "Whether MQTT records can have the \"retained\" flag.",
"type": "boolean"
},
"partitioner": {
"description": "The partitioner used to partition messages across different kafka partitions.",
"discriminator": {
"mapping": {
"topicLevel": "#/components/schemas/PublicManagedStreamTopicLevelPartitioner",
"kafkaDefault": "#/components/schemas/PublicManagedStreamKafkaDefaultPartitioner"
},
"propertyName": "kind"
},
"oneOf": [
{
"$ref": "#/components/schemas/PublicManagedStreamTopicLevelPartitioner"
},
{
"$ref": "#/components/schemas/PublicManagedStreamKafkaDefaultPartitioner"
}
]
}
},
"required": [
"canBeRetained",
"partitioner"
],
"type": "object"
},
"PublicManagedStreamTopicLevelPartitioner": {
"properties": {
"topicLevel": {
"example": 2,
"type": "integer"
},
"kind": {
"enum": [
"topicLevel"
],
"example": "topicLevel",
"type": "string"
}
},
"required": [
"kind",
"topicLevel"
],
"type": "object"
},
"PublicManagedStreamKafkaDefaultPartitioner": {
"properties": {
"kind": {
"enum": [
"kafkaDefault"
],
"example": "kafkaDefault",
"type": "string"
}
},
"required": [
"kind"
],
"type": "object"
},
"ManagedStreamId": {
"description": "The id of a managed stream consists of a managing prefix set specifically as a limit for each managing tenant, and name of the stream. The managing prefix and the name are separated by `---` (three hyphens).\nFor an stream called `maerts` for a tenant with an assigned managing prefix `tnanet` the full name would be `tnanet---maerts`. The public or internal type of the particular stream is set by using the corresponding `/public/` or `/internal/` methods in the managed streams API.\n",
"pattern": "^[a-z][a-z0-9-]{0,38}[a-z]---[a-z][a-z0-9-]{1,98}[a-z0-9]$",
"type": "string"
},
"ManagedTenant": {
"example": {
"manager": "manager",
"name": "name",
"services": [
{
"name": "vpn",
"enabled": true
},
{
"name": "vpn",
"enabled": true
}
]
},
"properties": {
"name": {
"description": "Name of the tenant. Must be identical to the tenant name used in the path.",
"type": "string"
},
"manager": {
"description": "Name of the tenant that is acting as manager for this tenant. \nMust be identical to the `manager` parameter in the path.\n",
"type": "string"
},
"services": {
"default": [
{
"name": "monitoring",
"enabled": true
},
{
"name": "vpn",
"enabled": false
},
{
"name": "tracing",
"enabled": false
}
],
"description": "List of services that are enabled for this tenant. At this point, `monitoring` is a requirement (it's \n`enabled` value must be `true`). The default values for `tracing` and `vpn` are both `false`. The `vpn`\nservice is only available on some platforms. Requesting it on a platform that doesn't support it will \ncause the request to be rejected.\n",
"items": {
"$ref": "#/components/schemas/ManagedTenant_services"
},
"type": "array"
}
},
"required": [
"manager",
"name"
],
"type": "object"
},
"Metrics": {
"description": "metrics endpoint which will be scraped by the platform.",
"example": {
"path": "/metrics",
"port": 0
},
"properties": {
"port": {
"default": 7070,
"description": "The TCP port for the metrics endpoint\n",
"minimum": 0,
"type": "integer"
},
"path": {
"default": "/metrics",
"description": "The HTTP path for the metrics endpoint\n",
"type": "string"
}
},
"type": "object"
},
"Notification": {
"example": {
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
"properties": {
"remove": {
"description": "true if the notification has to do with removal of the allocation, false if it relates to creation/update of the resource",
"type": "boolean"
},
"message": {
"type": "string"
},
"args": {
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"required": [
"message",
"remove"
],
"type": "object"
},
"PortMapping": {
"example": {
"mode": "mode",
"vhost": "vhost",
"auth": "auth",
"paths": [
{
"prefix": "prefix"
},
{
"prefix": "prefix"
}
],
"serviceGroup": "serviceGroup",
"tls": "auto",
"whitelist": "whitelist"
},
"properties": {
"auth": {
"description": "TODO",
"type": "string"
},
"mode": {
"description": "Routing mode. The allowed values are:\n * `http` (default if this property is omitted). HTTP routing and TLS termination are done by the platform. In this case, the `tls` and (optionally) `paths` settings should be configured as well.\n * `tcp/<endpoint>`. The platform only does plain TCP routing, with TLS pass-through. When set, the `tls` and `paths` settings are ignored. The application is responsible for TLS termination and certificate management. There are various possible values for `<endpoint>` that may appear when listing allocation configurations, but the only value that is allowed to be set in regular application allocations is `tcp/https`.\n * `tcp/https`. Any traffic arriving on `<vhost>:443` will be forwarded (TLS included) to the service.\n * `tcp/kafka-proxy` is used by Kafka Proxies. This endpoint is auto-configured by the platform when allocating a Kafka Proxy application and should *not* be used when allocating regular applications.\n * `tcp/vpn-tcp` is used by a VPN application. This endpoint is auto-configured by the platform when allocating a VPN application and should *not* be used when allocating regular applications.\n",
"type": "string"
},
"paths": {
"description": "The paths which are allowed on the associated vhost",
"items": {
"$ref": "#/components/schemas/PathSpec"
},
"type": "array"
},
"tls": {
"description": "The default is 'auto', indicating that the port will only accept secured connections. Put this to 'none' if you do not want the service to have a secure endpoint.",
"enum": [
"auto",
"none"
],
"type": "string"
},
"vhost": {
"description": "The host name that needs to be assigned to this port (for multiple names, separate them with commas)",
"type": "string"
},
"whitelist": {
"description": "Put ip addresses or ip ranges that can call this service here (for multiple addresses, separate them with spaces)",
"type": "string"
},
"serviceGroup": {
"description": "To load balance traffic between different services, use this optional field to put those services in the same service group. Choose any name consisting of all lowercase letters.",
"type": "string"
}
},
"type": "object"
},
"PathSpec": {
"example": {
"prefix": "prefix"
},
"properties": {
"prefix": {
"description": "The path prefix (starting with `/`, ending without `/`) that will be matched for routing to this service.",
"type": "string"
}
},
"required": [
"prefix"
],
"type": "object"
},
"Secret": {
"example": {
"name": "name",
"value": "value"
},
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
],
"type": "object"
},
"Task": {
"example": {
"healthy": true,
"host": "10.0.2.36",
"stagedAt": "2017-12-07T10:53:46.643Z",
"startedAt": "2017-12-07T10:55:41.765Z",
"stoppedAt": "2017-12-07T10:58:41.765Z",
"lastUpdate": 1638980430,
"state": "RUNNING"
},
"properties": {
"healthy": {
"description": "false or true depending on health checks (empty if no health checks)\n",
"type": "boolean"
},
"host": {
"description": "The IP address of the host the task is running on (not the IP address of the task itself)\n",
"format": "ipv4",
"type": "string"
},
"logs": {
"description": "Optional link to the latest log dump for this task",
"format": "url",
"type": "string"
},
"stagedAt": {
"description": "Staging time of the task",
"format": "date-time",
"type": "string"
},
"startedAt": {
"description": "Start time of the task",
"format": "date-time",
"type": "string"
},
"stoppedAt": {
"description": "Stopped time of the task",
"format": "date-time",
"type": "string"
},
"lastUpdate": {
"description": "Timestamp of the last time the task was updated",
"format": "int64",
"type": "integer"
},
"state": {
"description": "The state the task is in",
"enum": [
"DROPPED",
"ERROR",
"FAILED",
"FINISHED",
"GONE",
"GONE_BY_OPERATOR",
"KILLED",
"KILLING",
"LOST",
"RUNNING",
"STAGING",
"STARTING",
"UNKNOWN",
"UNREACHABLE"
],
"type": "string"
}
},
"required": [
"host",
"stagedAt",
"startedAt",
"state"
],
"type": "object"
},
"TaskStatus": {
"example": {
"actual": {
"healthy": true,
"host": "10.0.2.36",
"stagedAt": "2017-12-07T10:53:46.643Z",
"startedAt": "2017-12-07T10:55:41.765Z",
"stoppedAt": "2017-12-07T10:58:41.765Z",
"lastUpdate": 1638980430,
"state": "RUNNING"
},
"configuration": {
"healthy": true,
"host": "10.0.2.36",
"stagedAt": "2017-12-07T10:53:46.643Z",
"startedAt": "2017-12-07T10:55:41.765Z",
"stoppedAt": "2017-12-07T10:58:41.765Z",
"lastUpdate": 1638980430,
"state": "RUNNING"
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/Task"
},
"actual": {
"$ref": "#/components/schemas/Task"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"Topic": {
"example": {
"partitions": 0,
"replicationFactor": 6,
"kafkaProperties": {
"key": "kafkaProperties"
}
},
"properties": {
"partitions": {
"type": "integer"
},
"replicationFactor": {
"type": "integer"
},
"kafkaProperties": {
"additionalProperties": {
"type": "string"
},
"description": "Additional Kafka properties to be set on the topic. The properties are key-value pairs.\nThe key is the property name and the value is the property value. The following properties are allowed:\n - `cleanup.policy`: `delete|compact`\n - `compression.type`: `uncompressed|zstd|lz4|snappy|gzip|producer`\n - `delete.retention.ms`: min 0\n - `max.message.bytes`: min `1024`, max `1048576` (1024x1024)\n - `message.timestamp.type`: `CreateTime|LogAppendTime`\n - `retention.bytes` min 0\n - `retention.ms` min `3600000` (1 hour), max: `3,1536E+10` (365 days)\n - `segment.bytes`: min `52428800` (1024x1024x50)\n",
"type": "object"
}
},
"required": [
"partitions",
"replicationFactor"
],
"type": "object"
},
"KafkaProperties": {
"additionalProperties": {
"type": "string"
},
"description": "Additional Kafka properties to be set on the topic. The properties are key-value pairs.\nThe key is the property name and the value is the property value. The following properties are allowed:\n - `cleanup.policy`: `delete|compact`\n - `compression.type`: `uncompressed|zstd|lz4|snappy|gzip|producer`\n - `delete.retention.ms`: min 0\n - `max.message.bytes`: min `1024`, max `1048576` (1024x1024)\n - `message.timestamp.type`: `CreateTime|LogAppendTime`\n - `retention.bytes` min 0\n - `retention.ms` min `3600000` (1 hour), max: `3,1536E+10` (365 days)\n - `segment.bytes`: min `52428800` (1024x1024x50)\n",
"type": "object"
},
"TopicStatus": {
"example": {
"actual": {
"partitions": 0,
"replicationFactor": 6,
"kafkaProperties": {
"key": "kafkaProperties"
}
},
"configuration": {
"partitions": 0,
"replicationFactor": 6,
"kafkaProperties": {
"key": "kafkaProperties"
}
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/Topic"
},
"actual": {
"$ref": "#/components/schemas/Topic"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"Validations": {
"example": {
"commonName": "commonName",
"country": "country",
"province": "province",
"organization": "organization",
"locality": "locality",
"subjectType": "subjectType",
"organizationalUnit": "organizationalUnit"
},
"properties": {
"commonName": {
"description": "Certificate common name",
"type": "string"
},
"country": {
"description": "Certificate country",
"type": "string"
},
"locality": {
"description": "Certificate locality",
"type": "string"
},
"organization": {
"description": "Certificate organization",
"type": "string"
},
"organizationalUnit": {
"description": "Certificate Organizational unit",
"type": "string"
},
"province": {
"description": "Certificate province",
"type": "string"
},
"subjectType": {
"description": "Certificate subject Type",
"type": "string"
}
},
"type": "object"
},
"Vhost": {
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"Volume": {
"example": {
"sizeGiB": 0
},
"properties": {
"sizeGiB": {
"type": "integer"
}
},
"required": [
"sizeGiB"
],
"type": "object"
},
"VolumeStatus": {
"example": {
"actual": {
"sizeGiB": 0
},
"configuration": {
"sizeGiB": 0
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/Volume"
},
"actual": {
"$ref": "#/components/schemas/Volume"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"Zone": {
"description": "available networks on this platform",
"properties": {
"network": {
"enum": [
"internal",
"public"
],
"type": "string"
}
},
"required": [
"network"
],
"type": "object"
},
"ChildList": {
"items": {
"type": "string"
},
"type": "array"
},
"BucketWatchStatus": {
"example": {
"actual": {
"bucket": "bucket"
},
"configuration": {
"bucket": "bucket"
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/BucketWatch"
},
"actual": {
"$ref": "#/components/schemas/BucketWatch"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"AllocationStatus_1": {
"$ref": "#/components/schemas/AllocationStatus"
},
"BucketAccessStatus": {
"example": {
"actual": {
"bucket": "bucket",
"readable": true,
"name": "name",
"credentialidentifierref": "credentialidentifierref",
"credentialsecretref": "credentialsecretref",
"writable": true
},
"configuration": {
"bucket": "bucket",
"readable": true,
"name": "name",
"writable": true
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/BucketAccessConfiguration"
},
"actual": {
"$ref": "#/components/schemas/BucketAccess"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"BucketAccessConfiguration": {
"example": {
"bucket": "bucket",
"readable": true,
"name": "name",
"writable": true
},
"properties": {
"name": {
"type": "string"
},
"bucket": {
"type": "string"
},
"readable": {
"type": "boolean"
},
"writable": {
"type": "boolean"
}
},
"required": [
"bucket",
"name",
"readable",
"writable"
],
"type": "object"
},
"BucketAccess": {
"example": {
"bucket": "bucket",
"readable": true,
"name": "name",
"credentialidentifierref": "credentialidentifierref",
"credentialsecretref": "credentialsecretref",
"writable": true
},
"properties": {
"name": {
"type": "string"
},
"bucket": {
"type": "string"
},
"readable": {
"type": "boolean"
},
"writable": {
"type": "boolean"
},
"credentialidentifierref": {
"type": "string"
},
"credentialsecretref": {
"type": "string"
}
},
"required": [
"bucket",
"credentialidentifierref",
"credentialsecretref",
"name",
"readable",
"writable"
],
"type": "object"
},
"DataCatalogAssetStatus": {
"example": {
"actual": {
"kind": "kind",
"name": "name"
},
"configuration": {
"kind": "kind",
"name": "name"
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/DataCatalogAsset"
},
"actual": {
"$ref": "#/components/schemas/DataCatalogAsset"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"DataCatalogAsset": {
"example": {
"kind": "kind",
"name": "name"
},
"properties": {
"kind": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"kind",
"name"
],
"type": "object"
},
"ThirdPartyBucketConcessionRegistration": {
"example": {
"credentialidentifierplaintext": "credentialidentifierplaintext",
"shareidentifier": "shareidentifier",
"name": "name",
"credentialsecretplaintext": "credentialsecretplaintext"
},
"properties": {
"name": {
"description": "the name you give to the third party bucket you are registering",
"type": "string"
},
"shareidentifier": {
"description": "provided to you by the third party",
"type": "string"
},
"credentialidentifierplaintext": {
"description": "plaintext credential identifier provided to you by the third party",
"type": "string"
},
"credentialsecretplaintext": {
"description": "plaintext secret value provided to you by the third party",
"type": "string"
}
},
"required": [
"credentialidentifierplaintext",
"credentialsecretplaintext",
"name",
"shareidentifier"
],
"type": "object"
},
"ThirdPartyBucketConcessionStatus": {
"example": {
"actual": {
"readable": true,
"shareidentifier": "shareidentifier",
"name": "name",
"credentialidentifierref": "credentialidentifierref",
"credentialsecretref": "credentialsecretref",
"writable": true
},
"configuration": {
"shareidentifier": "shareidentifier",
"name": "name"
},
"status": {
"provisioned": true,
"derivedFrom": "derivedFrom",
"notifications": [
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
},
{
"args": {
"key": "args"
},
"message": "message",
"remove": true
}
]
}
},
"properties": {
"configuration": {
"$ref": "#/components/schemas/ThirdPartyBucketConcessionConfiguration"
},
"actual": {
"$ref": "#/components/schemas/ThirdPartyBucketConcession"
},
"status": {
"$ref": "#/components/schemas/AllocationStatus"
}
},
"required": [
"status"
],
"type": "object"
},
"ThirdPartyBucketConcessionConfiguration": {
"example": {
"shareidentifier": "shareidentifier",
"name": "name"
},
"properties": {
"name": {
"description": "your name for this bucket owned by a third party",
"type": "string"
},
"shareidentifier": {
"type": "string"
}
},
"required": [
"name",
"shareidentifier"
],
"type": "object"
},
"ThirdPartyBucketConcession": {
"example": {
"readable": true,
"shareidentifier": "shareidentifier",
"name": "name",
"credentialidentifierref": "credentialidentifierref",
"credentialsecretref": "credentialsecretref",
"writable": true
},
"properties": {
"name": {
"description": "your name for this bucket owned by a third party",
"type": "string"
},
"readable": {
"type": "boolean"
},
"writable": {
"type": "boolean"
},
"credentialidentifierref": {
"type": "string"
},
"credentialsecretref": {
"type": "string"
},
"shareidentifier": {
"type": "string"
}
},
"required": [
"credentialidentifierref",
"credentialsecretref",
"name",
"readable",
"shareidentifier",
"writable"
],
"type": "object"
},
"ActualCertificate_allOf": {
"properties": {
"serialNumber": {
"type": "string"
},
"notBefore": {
"format": "date-time",
"type": "string"
},
"notAfter": {
"format": "date-time",
"type": "string"
},
"distinguishedName": {
"type": "string"
},
"dnsNames": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"distinguishedName",
"dnsNames",
"notAfter",
"notBefore",
"serialNumber"
],
"type": "object"
},
"Application_volumes": {
"example": {
"name": "name"
},
"properties": {
"name": {
"description": "the full name of the volume that needs to be mounted in the container.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"LimitValueCpu_allOf": {
"properties": {
"value": {
"description": "The number of CPUs to provision for the managed tenant (factions of a vCPU core, 1.0 equals 1 vCPU)",
"maximum": 16.0,
"minimum": 0.01,
"multipleOf": 0.01,
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
},
"LimitValueMem_allOf": {
"properties": {
"value": {
"description": "The amount of memory available for the managed tenant (MiB)",
"maximum": 131072,
"minimum": 1,
"type": "integer"
}
},
"required": [
"value"
],
"type": "object"
},
"LimitValueCertificateCount_allOf": {
"properties": {
"value": {
"description": "The number of certificates available for the managed tenant",
"maximum": 40,
"minimum": 1,
"type": "integer"
}
},
"required": [
"value"
],
"type": "object"
},
"LimitValueSecretCount_allOf": {
"properties": {
"value": {
"description": "The number of secrets available for the managed tenant",
"maximum": 40,
"minimum": 1,
"type": "integer"
}
},
"required": [
"value"
],
"type": "object"
},
"LimitValueTopicCount_allOf": {
"properties": {
"value": {
"description": "The number of topics available for the managed tenant",
"maximum": 40,
"minimum": 1,
"type": "integer"
}
},
"required": [
"value"
],
"type": "object"
},
"LimitValuePartitionCount_allOf": {
"properties": {
"value": {
"description": "The number of partitions available for the managed tenant",
"maximum": 40,
"minimum": 1,
"type": "integer"
}
},
"required": [
"value"
],
"type": "object"
},
"LimitValueKafkaAclGroupCount_allOf": {
"properties": {
"value": {
"description": "The number of Kafka ACL groups available for the managed tenant",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"value"
],
"type": "object"
},
"LimitValueConsumerRate_allOf": {
"properties": {
"value": {
"description": "The maximum allowed consumer rate (bytes/sec)",
"maximum": 1250000000,
"minimum": 1048576,
"type": "integer"
}
},
"required": [
"value"
],
"type": "object"
},
"LimitValueProducerRate_allOf": {
"properties": {
"value": {
"description": "The maximum allowed producer rate (bytes/sec)",
"maximum": 1250000000,
"minimum": 1048576,
"type": "integer"
}
},
"required": [
"value"
],
"type": "object"
},
"LimitValueRequestRate_allOf": {
"properties": {
"value": {
"description": "The maximum allowed request rate (%)",
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"required": [
"value"
],
"type": "object"
},
"PublicManagedStream_allOf": {
"properties": {
"contract": {
"$ref": "#/components/schemas/PublicManagedStreamContract"
}
},
"required": [
"contract"
],
"type": "object"
},
"ManagedTenant_services": {
"example": {
"name": "vpn",
"enabled": true
},
"properties": {
"name": {
"enum": [
"vpn",
"tracing",
"monitoring"
],
"type": "string"
},
"enabled": {
"type": "boolean"
}
},
"required": [
"enabled",
"name"
],
"type": "object"
}
},
"securitySchemes": {
"tokenAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}