blob: e9640196120fdf67cf1f4e26188039da2dcb2126 [file] [log] [blame]
{
"swagger": "2.0",
"info": {
"description": "This provides the REST API for Pulsar Source operations",
"version": "v3",
"title": "Pulsar Source REST API",
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"basePath": "/admin/v3",
"tags": [
{
"name": "sources"
}
],
"schemes": [
"http",
"https"
],
"paths": {
"/sources/builtinsources": {
"get": {
"tags": [
"sources"
],
"summary": "Fetches the list of built-in Pulsar IO sources",
"description": "",
"operationId": "getSourceList",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ConnectorDefinition"
}
}
},
"400": {
"description": "Invalid request"
},
"403": {
"description": "The requester doesn't have admin permissions"
},
"408": {
"description": "Request timeout"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/builtinsources/{name}/configdefinition": {
"get": {
"tags": [
"sources"
],
"summary": "Fetches information about config fields associated with the specified builtin source",
"description": "",
"operationId": "getSourceConfigDefinition",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "name",
"in": "path",
"description": "The name of the builtin source",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ConfigFieldDefinition"
}
}
},
"403": {
"description": "The requester doesn't have admin permissions"
},
"404": {
"description": "builtin source does not exist"
},
"500": {
"description": "Internal server error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/reloadBuiltInSources": {
"post": {
"tags": [
"sources"
],
"summary": "Reload the built-in connectors, including Sources and Sinks",
"description": "",
"operationId": "reloadSources",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"responses": {
"401": {
"description": "This operation requires super-user access"
},
"500": {
"description": "Internal server error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}": {
"get": {
"tags": [
"sources"
],
"summary": "Lists all Pulsar Sources currently deployed in a given namespace",
"description": "",
"operationId": "listSources",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "string"
}
},
"400": {
"description": "Invalid request"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"500": {
"description": "Internal Server Error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}/{sourceName}": {
"get": {
"tags": [
"sources"
],
"summary": "Fetches information about a Pulsar Source currently running in cluster mode",
"description": "",
"operationId": "getSourceInfo",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/SourceConfig"
}
},
"400": {
"description": "Invalid request"
},
"404": {
"description": "Not Found(The Pulsar Source doesn't exist)"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
},
"post": {
"tags": [
"sources"
],
"summary": "Creates a new Pulsar Source in cluster mode",
"description": "",
"operationId": "registerSource",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "You can submit a source (in any languages that you are familiar with) to a Pulsar cluster. Follow the steps below.\n1. Create a JSON object using some of the following parameters.\nA JSON value presenting configuration payload of a Pulsar Source. An example of the expected functions can be found here.\n- **classname**\n The class name of a Pulsar Source if archive is file-url-path (file://).\n- **topicName**\n The Pulsar topic to which data is sent.\n- **serdeClassName**\n The SerDe classname for the Pulsar Source.\n- **schemaType**\n The schema type (either a builtin schema like 'avro', 'json', etc.. or custom Schema class name to be used to encode messages emitted from the Pulsar Source\n- **configs**\n Source config key/values\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method. \n- **parallelism**\n The parallelism factor of a Pulsar Source (i.e. the number of a Pulsar Source instances to run).\n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Source. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **resources**\n The size of the system resources allowed by the Pulsar Source runtime. The resources include: cpu, ram, disk.\n- **archive**\n The path to the NAR archive for the Pulsar Source. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime.\n2. Encapsulate the JSON object to a multipart object.",
"required": false,
"schema": {
"$ref": "#/definitions/SourceConfig"
},
"x-examples": {
"text/plain": "Example \n\n1. Create a JSON object. \n\n{\n\t\"tenant\": \"public\",\n\t\"namespace\": \"default\",\n\t\"name\": \"pulsar-io-mysql\",\n\t\"className\": \"TestSourceMysql\",\n\t\"topicName\": \"pulsar-io-mysql\",\n\t\"parallelism\": \"1\",\n\t\"archive\": \"/connectors/pulsar-io-mysql-0.0.1.nar\",\n\t\"schemaType\": \"avro\"\n}\n\n\n2. Encapsulate the JSON object to a multipart object (in Python). \n\nfrom requests_toolbelt.multipart.encoder import MultipartEncoder \nmp_encoder = MultipartEncoder( \n\t[('sourceConfig', (None, json.dumps(config), 'application/json'))])"
}
}
],
"responses": {
"200": {
"description": "Pulsar Function successfully created"
},
"400": {
"description": "Invalid request (Function already exists or Tenant, Namespace or Name is not provided, etc.)"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"500": {
"description": "Internal Server Error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
},
"put": {
"tags": [
"sources"
],
"summary": "Updates a Pulsar Source currently running in cluster mode",
"description": "",
"operationId": "updateSource",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "A JSON value presenting configuration payload of a Pulsar Source. An example of the expected functions can be found here.\n- **classname**\n The class name of a Pulsar Source if archive is file-url-path (file://).\n- **topicName**\n The Pulsar topic to which data is sent.\n- **serdeClassName**\n The SerDe classname for the Pulsar Source.\n- **schemaType**\n The schema type (either a builtin schema like 'avro', 'json', etc.. or custom Schema class name to be used to encode messages emitted from the Pulsar Source\n- **configs**\n Pulsar Source config key/values\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method.\n- **parallelism**\n The parallelism factor of a Pulsar Source (i.e. the number of a Pulsar Source instances to run).\n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Source. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **resources**\n The size of the system resources allowed by the Pulsar Source runtime. The resources include: cpu, ram, disk.\n- **archive**\n The path to the NAR archive for the Pulsar Source. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime.\n",
"required": false,
"schema": {
"$ref": "#/definitions/SourceConfig"
},
"x-examples": {
"application/json": "{\n \"tenant\": public\n \"namespace\": default\n \"name\": pulsar-io-mysql\n \"className\": TestSourceMysql\n \"topicName\": pulsar-io-mysql\n \"parallelism\": 1\n \"archive\": /connectors/pulsar-io-mysql-0.0.1.nar\n \"schemaType\": avro\n}"
}
},
{
"in": "body",
"name": "body",
"description": "Update options for Pulsar Source",
"required": false,
"schema": {
"$ref": "#/definitions/UpdateOptions"
}
}
],
"responses": {
"200": {
"description": "Pulsar Function successfully updated"
},
"400": {
"description": "Invalid request (Function already exists or Tenant, Namespace or Name is not provided, etc.)"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"403": {
"description": "The requester doesn't have admin permissions"
},
"404": {
"description": "Not Found(The Pulsar Source doesn't exist)"
},
"500": {
"description": "Internal Server Error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
},
"delete": {
"tags": [
"sources"
],
"summary": "Deletes a Pulsar Source currently running in cluster mode",
"description": "",
"operationId": "deregisterSource",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "The function was successfully deleted"
},
"400": {
"description": "Invalid request"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"404": {
"description": "Not Found(The Pulsar Source doesn't exist)"
},
"408": {
"description": "Request timeout"
},
"500": {
"description": "Internal Server Error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}/{sourceName}/restart": {
"post": {
"tags": [
"sources"
],
"summary": "Restart all instances of a Pulsar Source",
"description": "",
"operationId": "restartSource",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
}
],
"responses": {
"400": {
"description": "Invalid request"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"404": {
"description": "Not Found(The Pulsar Source doesn't exist)"
},
"500": {
"description": "Internal server error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}/{sourceName}/start": {
"post": {
"tags": [
"sources"
],
"summary": "Start all instances of a Pulsar Source",
"description": "",
"operationId": "startSource",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
}
],
"responses": {
"400": {
"description": "Invalid request"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"404": {
"description": "Not Found(The Pulsar Source doesn't exist)"
},
"500": {
"description": "Internal server error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}/{sourceName}/status": {
"get": {
"tags": [
"sources"
],
"summary": "Displays the status of a Pulsar Source running in cluster mode",
"description": "",
"operationId": "getSourceStatus",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/SourceStatus"
}
},
"307": {
"description": "Current broker doesn't serve the namespace of this source"
},
"500": {
"description": "Internal Server Error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}/{sourceName}/stop": {
"post": {
"tags": [
"sources"
],
"summary": "Stop all instances of a Pulsar Source",
"description": "",
"operationId": "stopSource",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
}
],
"responses": {
"400": {
"description": "Invalid request"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"404": {
"description": "Not Found(The Pulsar Source doesn't exist)"
},
"500": {
"description": "Internal server error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/restart": {
"post": {
"tags": [
"sources"
],
"summary": "Restart an instance of a Pulsar Source",
"description": "",
"operationId": "restartSource",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "instanceId",
"in": "path",
"description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).",
"required": true,
"type": "string"
}
],
"responses": {
"307": {
"description": "Current broker doesn't serve the namespace of this source"
},
"400": {
"description": "Invalid request"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"404": {
"description": "Not Found(The Pulsar Source doesn't exist)"
},
"500": {
"description": "Internal server error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/start": {
"post": {
"tags": [
"sources"
],
"summary": "Start an instance of a Pulsar Source",
"description": "",
"operationId": "startSource",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "instanceId",
"in": "path",
"description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).",
"required": true,
"type": "string"
}
],
"responses": {
"400": {
"description": "Invalid request"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"404": {
"description": "Not Found(The Pulsar Source doesn't exist)"
},
"500": {
"description": "Internal server error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/status": {
"get": {
"tags": [
"sources"
],
"summary": "Displays the status of a Pulsar Source instance",
"description": "",
"operationId": "getSourceInstanceStatus",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "instanceId",
"in": "path",
"description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/SourceInstanceStatusData"
}
},
"307": {
"description": "Current broker doesn't serve the namespace of this source"
},
"500": {
"description": "Internal Server Error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
},
"/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/stop": {
"post": {
"tags": [
"sources"
],
"summary": "Stop instance of a Pulsar Source",
"description": "",
"operationId": "stopSource",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "tenant",
"in": "path",
"description": "The tenant of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "namespace",
"in": "path",
"description": "The namespace of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "sourceName",
"in": "path",
"description": "The name of a Pulsar Source",
"required": true,
"type": "string"
},
{
"name": "instanceId",
"in": "path",
"description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).",
"required": true,
"type": "string"
}
],
"responses": {
"400": {
"description": "Invalid request"
},
"401": {
"description": "Client is not authorized to perform operation"
},
"404": {
"description": "Not Found(The Pulsar Source doesn't exist)"
},
"500": {
"description": "Internal server error"
},
"503": {
"description": "Function worker service is now initializing. Please try again later."
}
}
}
}
},
"definitions": {
"Annotation": {
"type": "object"
},
"AnnotationIntrospector": {
"type": "object"
},
"ArrayBuilders": {
"type": "object",
"properties": {
"booleanBuilder": {
"$ref": "#/definitions/BooleanBuilder"
},
"byteBuilder": {
"$ref": "#/definitions/ByteBuilder"
},
"shortBuilder": {
"$ref": "#/definitions/ShortBuilder"
},
"intBuilder": {
"$ref": "#/definitions/IntBuilder"
},
"longBuilder": {
"$ref": "#/definitions/LongBuilder"
},
"floatBuilder": {
"$ref": "#/definitions/FloatBuilder"
},
"doubleBuilder": {
"$ref": "#/definitions/DoubleBuilder"
}
}
},
"AuthenticationDataSource": {
"type": "object",
"properties": {
"tlsCertificates": {
"type": "array",
"items": {
"$ref": "#/definitions/Certificate"
}
},
"httpAuthType": {
"type": "string"
},
"commandData": {
"type": "string"
},
"peerAddress": {
"$ref": "#/definitions/SocketAddress"
},
"subscription": {
"type": "string"
}
}
},
"Base64Variant": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"paddingChar": {
"type": "string"
},
"paddingByte": {
"type": "string",
"format": "byte"
},
"maxLineLength": {
"type": "integer",
"format": "int32"
}
}
},
"BatchSourceConfig": {
"type": "object",
"properties": {
"discoveryTriggererClassName": {
"type": "string"
},
"discoveryTriggererConfig": {
"type": "object",
"additionalProperties": {
"type": "object"
}
}
}
},
"BooleanBuilder": {
"type": "object"
},
"ByteBuilder": {
"type": "object"
},
"Certificate": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"encoded": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
},
"publicKey": {
"$ref": "#/definitions/PublicKey"
}
}
},
"CharacterEscapes": {
"type": "object",
"properties": {
"escapeCodesForAscii": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
}
}
},
"ClassIntrospector": {
"type": "object"
},
"ClassLoader": {
"type": "object",
"properties": {
"parent": {
"$ref": "#/definitions/ClassLoader"
},
"name": {
"type": "string"
},
"unnamedModule": {
"$ref": "#/definitions/Module"
},
"registeredAsParallelCapable": {
"type": "boolean"
},
"definedPackages": {
"type": "array",
"items": {
"$ref": "#/definitions/Package"
}
}
}
},
"CompletableFuture": {
"type": "object",
"properties": {
"numberOfDependents": {
"type": "integer",
"format": "int32"
},
"done": {
"type": "boolean"
},
"cancelled": {
"type": "boolean"
},
"completedExceptionally": {
"type": "boolean"
}
}
},
"CompletableFutureClusterData": {
"type": "object",
"properties": {
"numberOfDependents": {
"type": "integer",
"format": "int32"
},
"done": {
"type": "boolean"
},
"cancelled": {
"type": "boolean"
},
"completedExceptionally": {
"type": "boolean"
}
}
},
"CompletableFutureVoid": {
"type": "object",
"properties": {
"numberOfDependents": {
"type": "integer",
"format": "int32"
},
"done": {
"type": "boolean"
},
"cancelled": {
"type": "boolean"
},
"completedExceptionally": {
"type": "boolean"
}
}
},
"ConfigFieldDefinition": {
"type": "object",
"properties": {
"fieldName": {
"type": "string"
},
"typeName": {
"type": "string"
},
"attributes": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"ConnectorDefinition": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"sourceClass": {
"type": "string"
},
"sinkClass": {
"type": "string"
},
"sourceConfigClass": {
"type": "string"
},
"sinkConfigClass": {
"type": "string"
}
}
},
"ContextAttributes": {
"type": "object"
},
"CryptoConfig": {
"type": "object",
"properties": {
"cryptoKeyReaderClassName": {
"type": "string"
},
"cryptoKeyReaderConfig": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"encryptionKeys": {
"type": "array",
"items": {
"type": "string"
}
},
"producerCryptoFailureAction": {
"type": "string",
"enum": [
"FAIL",
"SEND"
]
},
"consumerCryptoFailureAction": {
"type": "string",
"enum": [
"FAIL",
"DISCARD",
"CONSUME"
]
}
}
},
"Currency": {
"type": "object",
"properties": {
"currencyCode": {
"type": "string"
},
"defaultFractionDigits": {
"type": "integer",
"format": "int32"
},
"numericCode": {
"type": "integer",
"format": "int32"
},
"symbol": {
"type": "string"
},
"displayName": {
"type": "string"
},
"numericCodeAsString": {
"type": "string"
}
}
},
"DateFormat": {
"type": "object",
"properties": {
"calendar": {
"type": "string",
"format": "date-time"
},
"numberFormat": {
"$ref": "#/definitions/NumberFormat"
},
"lenient": {
"type": "boolean"
},
"timeZone": {
"$ref": "#/definitions/TimeZone"
}
}
},
"DeserializationConfig": {
"type": "object",
"properties": {
"annotationIntrospector": {
"$ref": "#/definitions/AnnotationIntrospector"
},
"defaultPropertyInclusion": {
"$ref": "#/definitions/Value"
},
"nodeFactory": {
"$ref": "#/definitions/JsonNodeFactory"
},
"deserializationFeatures": {
"type": "integer",
"format": "int32"
},
"problemHandlers": {
"$ref": "#/definitions/LinkedNodeDeserializationProblemHandler"
},
"attributes": {
"$ref": "#/definitions/ContextAttributes"
},
"rootName": {
"type": "string"
},
"fullRootName": {
"$ref": "#/definitions/PropertyName"
},
"subtypeResolver": {
"$ref": "#/definitions/SubtypeResolver"
},
"defaultVisibilityChecker": {
"$ref": "#/definitions/VisibilityCheckerObject"
},
"timeZone": {
"$ref": "#/definitions/TimeZone"
},
"locale": {
"$ref": "#/definitions/Locale"
},
"typeFactory": {
"$ref": "#/definitions/TypeFactory"
},
"handlerInstantiator": {
"$ref": "#/definitions/HandlerInstantiator"
},
"propertyNamingStrategy": {
"$ref": "#/definitions/PropertyNamingStrategy"
},
"dateFormat": {
"$ref": "#/definitions/DateFormat"
},
"base64Variant": {
"$ref": "#/definitions/Base64Variant"
},
"annotationProcessingEnabled": {
"type": "boolean"
},
"classIntrospector": {
"$ref": "#/definitions/ClassIntrospector"
}
}
},
"DeserializationContext": {
"type": "object",
"properties": {
"timeZone": {
"$ref": "#/definitions/TimeZone"
},
"factory": {
"$ref": "#/definitions/DeserializerFactory"
},
"locale": {
"$ref": "#/definitions/Locale"
},
"config": {
"$ref": "#/definitions/DeserializationConfig"
},
"parser": {
"$ref": "#/definitions/JsonParser"
},
"typeFactory": {
"$ref": "#/definitions/TypeFactory"
},
"annotationIntrospector": {
"$ref": "#/definitions/AnnotationIntrospector"
},
"nodeFactory": {
"$ref": "#/definitions/JsonNodeFactory"
},
"contextualType": {
"$ref": "#/definitions/JavaType"
},
"deserializationFeatures": {
"type": "integer",
"format": "int32"
},
"base64Variant": {
"$ref": "#/definitions/Base64Variant"
},
"arrayBuilders": {
"$ref": "#/definitions/ArrayBuilders"
}
}
},
"DeserializerFactory": {
"type": "object"
},
"DoubleBuilder": {
"type": "object"
},
"ExceptionInformation": {
"type": "object",
"properties": {
"exceptionString": {
"type": "string"
},
"timestampMs": {
"type": "integer",
"format": "int64"
}
}
},
"FilterProvider": {
"type": "object"
},
"FloatBuilder": {
"type": "object"
},
"FormatSchema": {
"type": "object",
"properties": {
"schemaType": {
"type": "string"
}
}
},
"HandlerInstantiator": {
"type": "object"
},
"InjectableValues": {
"type": "object"
},
"InputDecorator": {
"type": "object"
},
"IntBuilder": {
"type": "object"
},
"JavaType": {
"type": "object",
"properties": {
"contentType": {
"$ref": "#/definitions/JavaType"
},
"interface": {
"type": "boolean"
},
"primitive": {
"type": "boolean"
},
"interfaces": {
"type": "array",
"items": {
"$ref": "#/definitions/JavaType"
}
},
"genericSignature": {
"type": "string"
},
"final": {
"type": "boolean"
},
"abstract": {
"type": "boolean"
},
"bindings": {
"$ref": "#/definitions/TypeBindings"
},
"concrete": {
"type": "boolean"
},
"keyType": {
"$ref": "#/definitions/JavaType"
},
"arrayType": {
"type": "boolean"
},
"throwable": {
"type": "boolean"
},
"javaLangObject": {
"type": "boolean"
},
"enumType": {
"type": "boolean"
},
"containerType": {
"type": "boolean"
},
"valueHandler": {
"type": "object"
},
"typeHandler": {
"type": "object"
},
"referencedType": {
"$ref": "#/definitions/JavaType"
},
"superClass": {
"$ref": "#/definitions/JavaType"
},
"contentValueHandler": {
"type": "object"
},
"contentTypeHandler": {
"type": "object"
},
"erasedSignature": {
"type": "string"
},
"collectionLikeType": {
"type": "boolean"
},
"mapLikeType": {
"type": "boolean"
},
"typeName": {
"type": "string"
},
"referenceType": {
"type": "boolean"
}
}
},
"JsonFactory": {
"type": "object",
"properties": {
"rootValueSeparator": {
"type": "string"
},
"codec": {
"$ref": "#/definitions/ObjectCodec"
},
"formatName": {
"type": "string"
},
"inputDecorator": {
"$ref": "#/definitions/InputDecorator"
},
"characterEscapes": {
"$ref": "#/definitions/CharacterEscapes"
},
"outputDecorator": {
"$ref": "#/definitions/OutputDecorator"
}
}
},
"JsonGenerator": {
"type": "object",
"properties": {
"closed": {
"type": "boolean"
},
"schema": {
"$ref": "#/definitions/FormatSchema"
},
"codec": {
"$ref": "#/definitions/ObjectCodec"
},
"prettyPrinter": {
"$ref": "#/definitions/PrettyPrinter"
},
"characterEscapes": {
"$ref": "#/definitions/CharacterEscapes"
},
"currentValue": {
"type": "object"
},
"highestEscapedChar": {
"type": "integer",
"format": "int32"
},
"outputTarget": {
"type": "object"
},
"outputBuffered": {
"type": "integer",
"format": "int32"
},
"outputContext": {
"$ref": "#/definitions/JsonStreamContext"
},
"featureMask": {
"type": "integer",
"format": "int32"
},
"formatFeatures": {
"type": "integer",
"format": "int32"
}
}
},
"JsonLocation": {
"type": "object",
"properties": {
"byteOffset": {
"type": "integer",
"format": "int64"
},
"sourceRef": {
"type": "object"
},
"lineNr": {
"type": "integer",
"format": "int32"
},
"columnNr": {
"type": "integer",
"format": "int32"
},
"charOffset": {
"type": "integer",
"format": "int64"
}
}
},
"JsonNodeFactory": {
"type": "object"
},
"JsonParser": {
"type": "object",
"properties": {
"textLength": {
"type": "integer",
"format": "int32"
},
"text": {
"type": "string"
},
"textCharacters": {
"type": "array",
"items": {
"type": "string"
}
},
"booleanValue": {
"type": "boolean"
},
"byteValue": {
"type": "string",
"format": "byte"
},
"doubleValue": {
"type": "number",
"format": "double"
},
"floatValue": {
"type": "number",
"format": "float"
},
"longValue": {
"type": "integer",
"format": "int64"
},
"shortValue": {
"type": "integer",
"format": "int32"
},
"closed": {
"type": "boolean"
},
"intValue": {
"type": "integer",
"format": "int32"
},
"typeId": {
"type": "object"
},
"schema": {
"$ref": "#/definitions/FormatSchema"
},
"codec": {
"$ref": "#/definitions/ObjectCodec"
},
"currentToken": {
"type": "string",
"enum": [
"NOT_AVAILABLE",
"START_OBJECT",
"END_OBJECT",
"START_ARRAY",
"END_ARRAY",
"FIELD_NAME",
"VALUE_EMBEDDED_OBJECT",
"VALUE_STRING",
"VALUE_NUMBER_INT",
"VALUE_NUMBER_FLOAT",
"VALUE_TRUE",
"VALUE_FALSE",
"VALUE_NULL"
]
},
"currentName": {
"type": "string"
},
"tokenLocation": {
"$ref": "#/definitions/JsonLocation"
},
"inputSource": {
"type": "object"
},
"currentValue": {
"type": "object"
},
"parsingContext": {
"$ref": "#/definitions/JsonStreamContext"
},
"currentLocation": {
"$ref": "#/definitions/JsonLocation"
},
"expectedStartArrayToken": {
"type": "boolean"
},
"expectedStartObjectToken": {
"type": "boolean"
},
"lastClearedToken": {
"type": "string",
"enum": [
"NOT_AVAILABLE",
"START_OBJECT",
"END_OBJECT",
"START_ARRAY",
"END_ARRAY",
"FIELD_NAME",
"VALUE_EMBEDDED_OBJECT",
"VALUE_STRING",
"VALUE_NUMBER_INT",
"VALUE_NUMBER_FLOAT",
"VALUE_TRUE",
"VALUE_FALSE",
"VALUE_NULL"
]
},
"textOffset": {
"type": "integer",
"format": "int32"
},
"numberValue": {
"$ref": "#/definitions/Number"
},
"numberType": {
"type": "string",
"enum": [
"INT",
"LONG",
"BIG_INTEGER",
"FLOAT",
"DOUBLE",
"BIG_DECIMAL"
]
},
"bigIntegerValue": {
"type": "integer"
},
"decimalValue": {
"type": "number"
},
"embeddedObject": {
"type": "object"
},
"binaryValue": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
},
"valueAsInt": {
"type": "integer",
"format": "int32"
},
"valueAsLong": {
"type": "integer",
"format": "int64"
},
"valueAsDouble": {
"type": "number",
"format": "double"
},
"valueAsBoolean": {
"type": "boolean"
},
"valueAsString": {
"type": "string"
},
"objectId": {
"type": "object"
},
"featureMask": {
"type": "integer",
"format": "int32"
},
"formatFeatures": {
"type": "integer",
"format": "int32"
},
"currentTokenId": {
"type": "integer",
"format": "int32"
}
}
},
"JsonSerializer": {
"type": "object",
"properties": {
"unwrappingSerializer": {
"type": "boolean"
}
}
},
"JsonSerializerObject": {
"type": "object",
"properties": {
"delegatee": {
"$ref": "#/definitions/JsonSerializerObject"
},
"unwrappingSerializer": {
"type": "boolean"
}
}
},
"JsonStreamContext": {
"type": "object",
"properties": {
"parent": {
"$ref": "#/definitions/JsonStreamContext"
},
"currentName": {
"type": "string"
},
"currentValue": {
"type": "object"
},
"entryCount": {
"type": "integer",
"format": "int32"
},
"typeDesc": {
"type": "string"
},
"currentIndex": {
"type": "integer",
"format": "int32"
}
}
},
"LinkedNode": {
"type": "object"
},
"LinkedNodeDeserializationProblemHandler": {
"type": "object"
},
"Locale": {
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"script": {
"type": "string"
},
"country": {
"type": "string"
},
"variant": {
"type": "string"
},
"extensionKeys": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"unicodeLocaleAttributes": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"unicodeLocaleKeys": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"iso3Language": {
"type": "string"
},
"iso3Country": {
"type": "string"
},
"displayLanguage": {
"type": "string"
},
"displayScript": {
"type": "string"
},
"displayCountry": {
"type": "string"
},
"displayVariant": {
"type": "string"
},
"language": {
"type": "string"
}
}
},
"LongBuilder": {
"type": "object"
},
"Module": {
"type": "object",
"properties": {
"layer": {
"$ref": "#/definitions/ModuleLayer"
},
"name": {
"type": "string"
},
"descriptor": {
"$ref": "#/definitions/ModuleDescriptor"
},
"classLoader": {
"$ref": "#/definitions/ClassLoader"
},
"annotations": {
"type": "array",
"items": {
"$ref": "#/definitions/Annotation"
}
},
"declaredAnnotations": {
"type": "array",
"items": {
"$ref": "#/definitions/Annotation"
}
},
"named": {
"type": "boolean"
},
"packages": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
},
"ModuleDescriptor": {
"type": "object",
"properties": {
"open": {
"type": "boolean"
},
"automatic": {
"type": "boolean"
}
}
},
"ModuleLayer": {
"type": "object"
},
"Number": {
"type": "object"
},
"NumberFormat": {
"type": "object",
"properties": {
"groupingUsed": {
"type": "boolean"
},
"parseIntegerOnly": {
"type": "boolean"
},
"maximumIntegerDigits": {
"type": "integer",
"format": "int32"
},
"minimumIntegerDigits": {
"type": "integer",
"format": "int32"
},
"maximumFractionDigits": {
"type": "integer",
"format": "int32"
},
"minimumFractionDigits": {
"type": "integer",
"format": "int32"
},
"currency": {
"$ref": "#/definitions/Currency"
},
"roundingMode": {
"type": "string",
"enum": [
"UP",
"DOWN",
"CEILING",
"FLOOR",
"HALF_UP",
"HALF_DOWN",
"HALF_EVEN",
"UNNECESSARY"
]
}
}
},
"ObjectCodec": {
"type": "object",
"properties": {
"factory": {
"$ref": "#/definitions/JsonFactory"
},
"jsonFactory": {
"$ref": "#/definitions/JsonFactory"
}
}
},
"ObjectMapper": {
"type": "object",
"properties": {
"factory": {
"$ref": "#/definitions/JsonFactory"
},
"typeFactory": {
"$ref": "#/definitions/TypeFactory"
},
"serializationConfig": {
"$ref": "#/definitions/SerializationConfig"
},
"deserializationConfig": {
"$ref": "#/definitions/DeserializationConfig"
},
"deserializationContext": {
"$ref": "#/definitions/DeserializationContext"
},
"serializerFactory": {
"$ref": "#/definitions/SerializerFactory"
},
"serializerProvider": {
"$ref": "#/definitions/SerializerProvider"
},
"serializerProviderInstance": {
"$ref": "#/definitions/SerializerProvider"
},
"visibilityChecker": {
"$ref": "#/definitions/VisibilityCheckerObject"
},
"subtypeResolver": {
"$ref": "#/definitions/SubtypeResolver"
},
"propertyNamingStrategy": {
"$ref": "#/definitions/PropertyNamingStrategy"
},
"nodeFactory": {
"$ref": "#/definitions/JsonNodeFactory"
},
"jsonFactory": {
"$ref": "#/definitions/JsonFactory"
},
"dateFormat": {
"$ref": "#/definitions/DateFormat"
},
"injectableValues": {
"$ref": "#/definitions/InjectableValues"
}
}
},
"OutputDecorator": {
"type": "object"
},
"Package": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"specificationTitle": {
"type": "string"
},
"specificationVersion": {
"type": "string"
},
"specificationVendor": {
"type": "string"
},
"implementationTitle": {
"type": "string"
},
"implementationVersion": {
"type": "string"
},
"implementationVendor": {
"type": "string"
},
"annotations": {
"type": "array",
"items": {
"$ref": "#/definitions/Annotation"
}
},
"declaredAnnotations": {
"type": "array",
"items": {
"$ref": "#/definitions/Annotation"
}
},
"sealed": {
"type": "boolean"
}
}
},
"PrettyPrinter": {
"type": "object"
},
"ProducerConfig": {
"type": "object",
"properties": {
"maxPendingMessages": {
"type": "integer",
"format": "int32"
},
"maxPendingMessagesAcrossPartitions": {
"type": "integer",
"format": "int32"
},
"useThreadLocalProducers": {
"type": "boolean"
},
"cryptoConfig": {
"$ref": "#/definitions/CryptoConfig"
},
"batchBuilder": {
"type": "string"
}
}
},
"PropertyName": {
"type": "object",
"properties": {
"empty": {
"type": "boolean"
},
"simpleName": {
"type": "string"
},
"namespace": {
"type": "string"
}
}
},
"PropertyNamingStrategy": {
"type": "object"
},
"PublicKey": {
"type": "object",
"properties": {
"algorithm": {
"type": "string"
},
"encoded": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
},
"format": {
"type": "string"
}
}
},
"Resources": {
"type": "object",
"properties": {
"cpu": {
"type": "number",
"format": "double"
},
"ram": {
"type": "integer",
"format": "int64"
},
"disk": {
"type": "integer",
"format": "int64"
}
}
},
"SerializationConfig": {
"type": "object",
"properties": {
"annotationIntrospector": {
"$ref": "#/definitions/AnnotationIntrospector"
},
"defaultPropertyInclusion": {
"$ref": "#/definitions/Value"
},
"filterProvider": {
"$ref": "#/definitions/FilterProvider"
},
"defaultPrettyPrinter": {
"$ref": "#/definitions/PrettyPrinter"
},
"serializationInclusion": {
"type": "string",
"enum": [
"ALWAYS",
"NON_NULL",
"NON_ABSENT",
"NON_EMPTY",
"NON_DEFAULT",
"USE_DEFAULTS"
]
},
"serializationFeatures": {
"type": "integer",
"format": "int32"
},
"attributes": {
"$ref": "#/definitions/ContextAttributes"
},
"rootName": {
"type": "string"
},
"fullRootName": {
"$ref": "#/definitions/PropertyName"
},
"subtypeResolver": {
"$ref": "#/definitions/SubtypeResolver"
},
"defaultVisibilityChecker": {
"$ref": "#/definitions/VisibilityCheckerObject"
},
"timeZone": {
"$ref": "#/definitions/TimeZone"
},
"locale": {
"$ref": "#/definitions/Locale"
},
"typeFactory": {
"$ref": "#/definitions/TypeFactory"
},
"handlerInstantiator": {
"$ref": "#/definitions/HandlerInstantiator"
},
"propertyNamingStrategy": {
"$ref": "#/definitions/PropertyNamingStrategy"
},
"dateFormat": {
"$ref": "#/definitions/DateFormat"
},
"base64Variant": {
"$ref": "#/definitions/Base64Variant"
},
"annotationProcessingEnabled": {
"type": "boolean"
},
"classIntrospector": {
"$ref": "#/definitions/ClassIntrospector"
}
}
},
"SerializerFactory": {
"type": "object"
},
"SerializerProvider": {
"type": "object",
"properties": {
"timeZone": {
"$ref": "#/definitions/TimeZone"
},
"locale": {
"$ref": "#/definitions/Locale"
},
"config": {
"$ref": "#/definitions/SerializationConfig"
},
"typeFactory": {
"$ref": "#/definitions/TypeFactory"
},
"annotationIntrospector": {
"$ref": "#/definitions/AnnotationIntrospector"
},
"generator": {
"$ref": "#/definitions/JsonGenerator"
},
"defaultNullValueSerializer": {
"$ref": "#/definitions/JsonSerializerObject"
},
"filterProvider": {
"$ref": "#/definitions/FilterProvider"
},
"defaultNullKeySerializer": {
"$ref": "#/definitions/JsonSerializerObject"
}
}
},
"ShortBuilder": {
"type": "object"
},
"SocketAddress": {
"type": "object"
},
"SourceConfig": {
"type": "object",
"properties": {
"tenant": {
"type": "string"
},
"namespace": {
"type": "string"
},
"name": {
"type": "string"
},
"className": {
"type": "string"
},
"topicName": {
"type": "string"
},
"producerConfig": {
"$ref": "#/definitions/ProducerConfig"
},
"serdeClassName": {
"type": "string"
},
"schemaType": {
"type": "string"
},
"configs": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"secrets": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"parallelism": {
"type": "integer",
"format": "int32"
},
"processingGuarantees": {
"type": "string",
"enum": [
"ATLEAST_ONCE",
"ATMOST_ONCE",
"EFFECTIVELY_ONCE"
]
},
"resources": {
"$ref": "#/definitions/Resources"
},
"archive": {
"type": "string"
},
"runtimeFlags": {
"type": "string"
},
"customRuntimeOptions": {
"type": "string"
},
"batchSourceConfig": {
"$ref": "#/definitions/BatchSourceConfig"
},
"batchBuilder": {
"type": "string"
}
}
},
"SourceInstanceStatus": {
"type": "object",
"properties": {
"instanceId": {
"type": "integer",
"format": "int32"
},
"status": {
"$ref": "#/definitions/SourceInstanceStatusData"
}
}
},
"SourceInstanceStatusData": {
"type": "object",
"properties": {
"running": {
"type": "boolean"
},
"error": {
"type": "string"
},
"numRestarts": {
"type": "integer",
"format": "int64"
},
"numReceivedFromSource": {
"type": "integer",
"format": "int64"
},
"numSystemExceptions": {
"type": "integer",
"format": "int64"
},
"latestSystemExceptions": {
"type": "array",
"items": {
"$ref": "#/definitions/ExceptionInformation"
}
},
"numSourceExceptions": {
"type": "integer",
"format": "int64"
},
"latestSourceExceptions": {
"type": "array",
"items": {
"$ref": "#/definitions/ExceptionInformation"
}
},
"numWritten": {
"type": "integer",
"format": "int64"
},
"lastReceivedTime": {
"type": "integer",
"format": "int64"
},
"workerId": {
"type": "string"
}
}
},
"SourceStatus": {
"type": "object",
"properties": {
"numInstances": {
"type": "integer",
"format": "int32"
},
"numRunning": {
"type": "integer",
"format": "int32"
},
"instances": {
"type": "array",
"items": {
"$ref": "#/definitions/SourceInstanceStatus"
}
}
}
},
"SubtypeResolver": {
"type": "object"
},
"TimeZone": {
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"id": {
"type": "string"
},
"dstsavings": {
"type": "integer",
"format": "int32"
},
"rawOffset": {
"type": "integer",
"format": "int32"
}
}
},
"TypeBindings": {
"type": "object",
"properties": {
"empty": {
"type": "boolean"
},
"typeParameters": {
"type": "array",
"items": {
"$ref": "#/definitions/JavaType"
}
}
}
},
"TypeFactory": {
"type": "object",
"properties": {
"classLoader": {
"$ref": "#/definitions/ClassLoader"
}
}
},
"UpdateOptions": {
"type": "object",
"properties": {
"update-auth-data": {
"type": "boolean",
"description": "Whether or not to update the auth data"
}
},
"description": "Options while updating the sink"
},
"Value": {
"type": "object",
"properties": {
"contentInclusion": {
"type": "string",
"enum": [
"ALWAYS",
"NON_NULL",
"NON_ABSENT",
"NON_EMPTY",
"NON_DEFAULT",
"USE_DEFAULTS"
]
},
"valueInclusion": {
"type": "string",
"enum": [
"ALWAYS",
"NON_NULL",
"NON_ABSENT",
"NON_EMPTY",
"NON_DEFAULT",
"USE_DEFAULTS"
]
}
}
},
"VisibilityChecker": {
"type": "object"
},
"VisibilityCheckerObject": {
"type": "object"
}
}
}