{
    "components": {
        "schemas": {
            "BatchingConfig": {
                "properties": {
                    "batchBuilder": {
                        "type": "string"
                    },
                    "batchingMaxBytes": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "batchingMaxMessages": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "batchingMaxPublishDelayMs": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "enabled": {
                        "type": "boolean"
                    },
                    "roundRobinRouterBatchingPartitionSwitchFrequency": {
                        "format": "int32",
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "ConnectorDefinition": {
                "properties": {
                    "description": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "sinkClass": {
                        "type": "string"
                    },
                    "sinkConfigClass": {
                        "type": "string"
                    },
                    "sourceClass": {
                        "type": "string"
                    },
                    "sourceConfigClass": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "ConsumerConfig": {
                "properties": {
                    "consumerProperties": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "type": "object"
                    },
                    "cryptoConfig": {
                        "$ref": "#/components/schemas/CryptoConfig"
                    },
                    "messagePayloadProcessorConfig": {
                        "$ref": "#/components/schemas/MessagePayloadProcessorConfig"
                    },
                    "poolMessages": {
                        "type": "boolean"
                    },
                    "receiverQueueSize": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "regexPattern": {
                        "type": "boolean"
                    },
                    "schemaProperties": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "type": "object"
                    },
                    "schemaType": {
                        "type": "string"
                    },
                    "serdeClassName": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "CryptoConfig": {
                "properties": {
                    "consumerCryptoFailureAction": {
                        "enum": [
                            "FAIL",
                            "DISCARD",
                            "CONSUME"
                        ],
                        "type": "string"
                    },
                    "cryptoKeyReaderClassName": {
                        "type": "string"
                    },
                    "cryptoKeyReaderConfig": {
                        "additionalProperties": {
                            "type": "object"
                        },
                        "type": "object"
                    },
                    "encryptionKeys": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "producerCryptoFailureAction": {
                        "enum": [
                            "FAIL",
                            "SEND"
                        ],
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "ExceptionInformation": {
                "properties": {
                    "exceptionString": {
                        "type": "string"
                    },
                    "timestampMs": {
                        "format": "int64",
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "FormDataContentDisposition": {
                "properties": {
                    "creationDate": {
                        "format": "date-time",
                        "type": "string"
                    },
                    "fileName": {
                        "type": "string"
                    },
                    "modificationDate": {
                        "format": "date-time",
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "parameters": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "type": "object"
                    },
                    "readDate": {
                        "format": "date-time",
                        "type": "string"
                    },
                    "size": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "type": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "FunctionConfig": {
                "properties": {
                    "autoAck": {
                        "type": "boolean"
                    },
                    "batchBuilder": {
                        "type": "string"
                    },
                    "className": {
                        "type": "string"
                    },
                    "cleanupSubscription": {
                        "type": "boolean"
                    },
                    "customRuntimeOptions": {
                        "type": "string"
                    },
                    "customSchemaInputs": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "type": "object"
                    },
                    "customSchemaOutputs": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "type": "object"
                    },
                    "customSerdeInputs": {
                        "additionalProperties": {
                            "type": "string"
                        },
                        "type": "object"
                    },
                    "deadLetterTopic": {
                        "type": "string"
                    },
                    "exposePulsarAdminClientEnabled": {
                        "type": "boolean"
                    },
                    "forwardSourceMessageProperty": {
                        "type": "boolean"
                    },
                    "fqfn": {
                        "type": "string"
                    },
                    "functionType": {
                        "type": "string"
                    },
                    "go": {
                        "type": "string"
                    },
                    "inputSpecs": {
                        "additionalProperties": {
                            "$ref": "#/components/schemas/ConsumerConfig"
                        },
                        "type": "object"
                    },
                    "inputTypeClassName": {
                        "type": "string"
                    },
                    "inputs": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "jar": {
                        "type": "string"
                    },
                    "logTopic": {
                        "type": "string"
                    },
                    "maxMessageRetries": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "maxPendingAsyncRequests": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "namespace": {
                        "type": "string"
                    },
                    "output": {
                        "type": "string"
                    },
                    "outputSchemaType": {
                        "type": "string"
                    },
                    "outputSerdeClassName": {
                        "type": "string"
                    },
                    "outputTypeClassName": {
                        "type": "string"
                    },
                    "parallelism": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "processingGuarantees": {
                        "enum": [
                            "ATLEAST_ONCE",
                            "ATMOST_ONCE",
                            "EFFECTIVELY_ONCE",
                            "MANUAL"
                        ],
                        "type": "string"
                    },
                    "producerConfig": {
                        "$ref": "#/components/schemas/ProducerConfig"
                    },
                    "py": {
                        "type": "string"
                    },
                    "resources": {
                        "$ref": "#/components/schemas/Resources"
                    },
                    "retainKeyOrdering": {
                        "type": "boolean"
                    },
                    "retainOrdering": {
                        "type": "boolean"
                    },
                    "runtime": {
                        "enum": [
                            "JAVA",
                            "PYTHON",
                            "GO"
                        ],
                        "type": "string"
                    },
                    "runtimeFlags": {
                        "type": "string"
                    },
                    "secrets": {
                        "additionalProperties": {
                            "type": "object"
                        },
                        "type": "object"
                    },
                    "skipToLatest": {
                        "type": "boolean"
                    },
                    "subName": {
                        "type": "string"
                    },
                    "subscriptionPosition": {
                        "enum": [
                            "Latest",
                            "Earliest"
                        ],
                        "type": "string"
                    },
                    "tenant": {
                        "type": "string"
                    },
                    "timeoutMs": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "topicsPattern": {
                        "type": "string"
                    },
                    "userConfig": {
                        "additionalProperties": {
                            "type": "object"
                        },
                        "type": "object"
                    },
                    "windowConfig": {
                        "$ref": "#/components/schemas/WindowConfig"
                    }
                },
                "type": "object"
            },
            "FunctionDefinition": {
                "properties": {
                    "description": {
                        "type": "string"
                    },
                    "functionClass": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "FunctionInstanceStatsData": {
                "properties": {
                    "avgProcessLatency": {
                        "format": "double",
                        "type": "number"
                    },
                    "lastInvocation": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "oneMin": {
                        "$ref": "#/components/schemas/FunctionInstanceStatsDataBase"
                    },
                    "processedSuccessfullyTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "receivedTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "systemExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "userExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "userMetrics": {
                        "additionalProperties": {
                            "format": "double",
                            "type": "number"
                        },
                        "type": "object"
                    }
                },
                "type": "object"
            },
            "FunctionInstanceStatsDataBase": {
                "properties": {
                    "avgProcessLatency": {
                        "format": "double",
                        "type": "number"
                    },
                    "processedSuccessfullyTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "receivedTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "systemExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "userExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "FunctionInstanceStatsDataBaseImpl": {
                "properties": {
                    "avgProcessLatency": {
                        "format": "double",
                        "type": "number"
                    },
                    "processedSuccessfullyTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "receivedTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "systemExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "userExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "FunctionInstanceStatsDataImpl": {
                "properties": {
                    "1min": {
                        "$ref": "#/components/schemas/FunctionInstanceStatsDataBaseImpl"
                    },
                    "avgProcessLatency": {
                        "format": "double",
                        "type": "number"
                    },
                    "lastInvocation": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "processedSuccessfullyTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "receivedTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "systemExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "userExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "userMetrics": {
                        "additionalProperties": {
                            "format": "double",
                            "type": "number"
                        },
                        "type": "object"
                    }
                },
                "type": "object"
            },
            "FunctionInstanceStatsImpl": {
                "properties": {
                    "instanceId": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "metrics": {
                        "$ref": "#/components/schemas/FunctionInstanceStatsData"
                    }
                },
                "type": "object"
            },
            "FunctionInstanceStatus": {
                "properties": {
                    "instanceId": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "status": {
                        "$ref": "#/components/schemas/FunctionInstanceStatusData"
                    }
                },
                "type": "object"
            },
            "FunctionInstanceStatusData": {
                "properties": {
                    "averageLatency": {
                        "format": "double",
                        "type": "number"
                    },
                    "error": {
                        "type": "string"
                    },
                    "lastInvocationTime": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "latestSystemExceptions": {
                        "items": {
                            "$ref": "#/components/schemas/ExceptionInformation"
                        },
                        "type": "array"
                    },
                    "latestUserExceptions": {
                        "items": {
                            "$ref": "#/components/schemas/ExceptionInformation"
                        },
                        "type": "array"
                    },
                    "numReceived": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "numRestarts": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "numSuccessfullyProcessed": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "numSystemExceptions": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "numUserExceptions": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "running": {
                        "type": "boolean"
                    },
                    "workerId": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "FunctionState": {
                "properties": {
                    "byteValue": {
                        "format": "byte",
                        "type": "string"
                    },
                    "key": {
                        "type": "string"
                    },
                    "numberValue": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "stringValue": {
                        "type": "string"
                    },
                    "version": {
                        "format": "int64",
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "FunctionStatsImpl": {
                "properties": {
                    "1min": {
                        "$ref": "#/components/schemas/FunctionInstanceStatsDataBaseImpl"
                    },
                    "avgProcessLatency": {
                        "format": "double",
                        "type": "number"
                    },
                    "instances": {
                        "items": {
                            "$ref": "#/components/schemas/FunctionInstanceStatsImpl"
                        },
                        "type": "array"
                    },
                    "lastInvocation": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "processedSuccessfullyTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "receivedTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "systemExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "userExceptionsTotal": {
                        "format": "int64",
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "FunctionStatus": {
                "properties": {
                    "instances": {
                        "items": {
                            "$ref": "#/components/schemas/FunctionInstanceStatus"
                        },
                        "type": "array"
                    },
                    "numInstances": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "numRunning": {
                        "format": "int32",
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "MessagePayloadProcessorConfig": {
                "properties": {
                    "className": {
                        "type": "string"
                    },
                    "config": {
                        "additionalProperties": {
                            "type": "object"
                        },
                        "type": "object"
                    }
                },
                "type": "object"
            },
            "ProducerConfig": {
                "properties": {
                    "batchBuilder": {
                        "type": "string"
                    },
                    "batchingConfig": {
                        "$ref": "#/components/schemas/BatchingConfig"
                    },
                    "compressionType": {
                        "enum": [
                            "NONE",
                            "LZ4",
                            "ZLIB",
                            "ZSTD",
                            "SNAPPY"
                        ],
                        "type": "string"
                    },
                    "cryptoConfig": {
                        "$ref": "#/components/schemas/CryptoConfig"
                    },
                    "maxPendingMessages": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "maxPendingMessagesAcrossPartitions": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "useThreadLocalProducers": {
                        "type": "boolean"
                    }
                },
                "type": "object"
            },
            "Resources": {
                "properties": {
                    "cpu": {
                        "format": "double",
                        "type": "number"
                    },
                    "disk": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "ram": {
                        "format": "int64",
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "UpdateOptions": {
                "description": "Options while updating the sink",
                "properties": {
                    "update-auth-data": {
                        "description": "Whether or not to update the auth data",
                        "type": "boolean"
                    }
                },
                "type": "object"
            },
            "WindowConfig": {
                "properties": {
                    "actualWindowFunctionClassName": {
                        "type": "string"
                    },
                    "lateDataTopic": {
                        "type": "string"
                    },
                    "maxLagMs": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "processingGuarantees": {
                        "enum": [
                            "ATLEAST_ONCE",
                            "ATMOST_ONCE"
                        ],
                        "type": "string"
                    },
                    "slidingIntervalCount": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "slidingIntervalDurationMs": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "timestampExtractorClassName": {
                        "type": "string"
                    },
                    "watermarkEmitIntervalMs": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "windowLengthCount": {
                        "format": "int32",
                        "type": "integer"
                    },
                    "windowLengthDurationMs": {
                        "format": "int64",
                        "type": "integer"
                    }
                },
                "type": "object"
            }
        }
    },
    "info": {
        "description": "This provides the REST API for Pulsar Functions operations",
        "license": {
            "name": "Apache 2.0",
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
        },
        "title": "Pulsar Functions REST API",
        "version": "v3"
    },
    "openapi": "3.0.1",
    "paths": {
        "/admin/v3/functions/builtins": {
            "get": {
                "operationId": "getBuiltinFunction",
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "items": {
                                        "$ref": "#/components/schemas/FunctionDefinition"
                                    },
                                    "type": "array"
                                }
                            }
                        },
                        "description": "Fetches the list of built-in Pulsar functions"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "408": {
                        "description": "Request timeout"
                    }
                },
                "summary": "Fetches the list of built-in Pulsar functions",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/builtins/reload": {
            "post": {
                "operationId": "reloadBuiltinFunctions",
                "responses": {
                    "200": {
                        "description": "Operation successful"
                    },
                    "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."
                    }
                },
                "summary": "Reload the built-in Functions",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/connectors": {
            "get": {
                "deprecated": true,
                "operationId": "getConnectorsList",
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "items": {
                                        "$ref": "#/components/schemas/ConnectorDefinition"
                                    },
                                    "type": "array"
                                }
                            }
                        },
                        "description": "Fetches a list of supported Pulsar IO connectors currently running in cluster mode"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "408": {
                        "description": "Request timeout"
                    }
                },
                "summary": "Fetches a list of supported Pulsar IO connectors currently running in cluster mode",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}": {
            "get": {
                "operationId": "listFunctions",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "items": {
                                        "type": "string"
                                    },
                                    "type": "array"
                                }
                            }
                        },
                        "description": "Lists all Pulsar Functions currently deployed in a given namespace"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    }
                },
                "summary": "Lists all Pulsar Functions currently deployed in a given namespace",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}": {
            "delete": {
                "operationId": "deregisterFunction",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Pulsar Function was successfully deleted"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "404": {
                        "description": "The Pulsar Function doesn't exist"
                    },
                    "408": {
                        "description": "Request timeout"
                    }
                },
                "summary": "Deletes a Pulsar Function currently running in cluster mode",
                "tags": [
                    "functions"
                ]
            },
            "get": {
                "operationId": "getFunctionInfo",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FunctionConfig"
                                }
                            }
                        },
                        "description": "Fetches information about a Pulsar Function currently running in cluster mode"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "404": {
                        "description": "The Pulsar Function doesn't exist"
                    },
                    "408": {
                        "description": "Request timeout"
                    }
                },
                "summary": "Fetches information about a Pulsar Function currently running in cluster mode",
                "tags": [
                    "functions"
                ]
            },
            "post": {
                "operationId": "registerFunction",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "data": {
                                        "$ref": "#/components/schemas/FormDataContentDisposition"
                                    },
                                    "functionConfig": {
                                        "$ref": "#/components/schemas/FunctionConfig"
                                    },
                                    "url": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Pulsar Function successfully created"
                    },
                    "400": {
                        "description": "Invalid request (The Pulsar Function already exists, etc.)"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "408": {
                        "description": "Request timeout"
                    }
                },
                "summary": "Creates a new Pulsar Function in cluster mode",
                "tags": [
                    "functions"
                ]
            },
            "put": {
                "operationId": "updateFunction",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "data": {
                                        "$ref": "#/components/schemas/FormDataContentDisposition"
                                    },
                                    "functionConfig": {
                                        "$ref": "#/components/schemas/FunctionConfig"
                                    },
                                    "updateOptions": {
                                        "$ref": "#/components/schemas/UpdateOptions"
                                    },
                                    "url": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Pulsar Function successfully updated"
                    },
                    "400": {
                        "description": "Invalid request (The Pulsar Function doesn't exist, etc.)"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    }
                },
                "summary": "Updates a Pulsar Function currently running in cluster mode",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/restart": {
            "post": {
                "operationId": "restartFunction",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Operation successful"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "404": {
                        "description": "The Pulsar Function does not exist"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "summary": "Restart all instances of a Pulsar Function",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/start": {
            "post": {
                "operationId": "startFunction",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Operation successful"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "404": {
                        "description": "The Pulsar Function does not exist"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "summary": "Start all instances of a Pulsar Function",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/state/{key}": {
            "get": {
                "operationId": "getFunctionState",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The stats key",
                        "in": "path",
                        "name": "key",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FunctionState"
                                }
                            }
                        },
                        "description": "Fetch the current state associated with a Pulsar Function"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "404": {
                        "description": "The key does not exist"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "summary": "Fetch the current state associated with a Pulsar Function",
                "tags": [
                    "functions"
                ]
            },
            "post": {
                "operationId": "putFunctionState",
                "parameters": [
                    {
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "path",
                        "name": "key",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "state": {
                                        "$ref": "#/components/schemas/FunctionState"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Operation successful"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "404": {
                        "description": "The Pulsar Function does not exist"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "summary": "Put the state associated with a Pulsar Function",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/stats": {
            "get": {
                "operationId": "getFunctionStats",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FunctionStatsImpl"
                                }
                            }
                        },
                        "description": "Displays the stats of a Pulsar Function"
                    },
                    "307": {
                        "description": "Current broker doesn't serve the namespace of this function"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "404": {
                        "description": "The Pulsar Function doesn't exist"
                    }
                },
                "summary": "Displays the stats of a Pulsar Function",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/status": {
            "get": {
                "operationId": "getFunctionStatus",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FunctionStatus"
                                }
                            }
                        },
                        "description": "Displays the status of a Pulsar Function"
                    },
                    "307": {
                        "description": "Current broker doesn't serve the namespace of this function"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "404": {
                        "description": "The Pulsar Function doesn't exist"
                    }
                },
                "summary": "Displays the status of a Pulsar Function",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/stop": {
            "post": {
                "operationId": "stopFunction",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Operation successful"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "404": {
                        "description": "The Pulsar Function does not exist"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "summary": "Stop all instances of a Pulsar Function",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/trigger": {
            "post": {
                "operationId": "triggerFunction",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "data": {
                                        "description": "The value with which you want to trigger the Pulsar Function",
                                        "type": "string"
                                    },
                                    "dataStream": {
                                        "description": "The path to the file that contains the data with which you'd like to trigger the Pulsar Function",
                                        "type": "object"
                                    },
                                    "topic": {
                                        "description": "The specific topic name that the Pulsar Function consumes from which you want to inject the data to",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Triggers a Pulsar Function with a user-specified value or file data"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "404": {
                        "description": "The Pulsar Function does not exist"
                    },
                    "408": {
                        "description": "Request timeout"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "summary": "Triggers a Pulsar Function with a user-specified value or file data",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/{instanceId}/restart": {
            "post": {
                "operationId": "restartFunction_1",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are restarted)",
                        "in": "path",
                        "name": "instanceId",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Operation successful"
                    },
                    "307": {
                        "description": "Current broker doesn't serve the namespace of this function"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "404": {
                        "description": "The Pulsar Function does not exist"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "summary": "Restart an instance of a Pulsar Function",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/{instanceId}/start": {
            "post": {
                "operationId": "startFunction_1",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are started.)",
                        "in": "path",
                        "name": "instanceId",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Operation successful"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "404": {
                        "description": "The Pulsar Function does not exist"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "summary": "Start an instance of a Pulsar Function",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/{instanceId}/stats": {
            "get": {
                "operationId": "getFunctionInstanceStats",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned)",
                        "in": "path",
                        "name": "instanceId",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FunctionInstanceStatsDataImpl"
                                }
                            }
                        },
                        "description": "Displays the stats of a Pulsar Function instance"
                    },
                    "307": {
                        "description": "Current broker doesn't serve the namespace of this function"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "404": {
                        "description": "The Pulsar Function doesn't exist"
                    }
                },
                "summary": "Displays the stats of a Pulsar Function instance",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/{instanceId}/status": {
            "get": {
                "operationId": "getFunctionInstanceStatus",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned)",
                        "in": "path",
                        "name": "instanceId",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FunctionInstanceStatusData"
                                }
                            }
                        },
                        "description": "Displays the status of a Pulsar Function instance"
                    },
                    "307": {
                        "description": "Current broker doesn't serve the namespace of this function"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "403": {
                        "description": "The requester doesn't have admin permissions"
                    },
                    "404": {
                        "description": "The Pulsar Function doesn't exist"
                    }
                },
                "summary": "Displays the status of a Pulsar Function instance",
                "tags": [
                    "functions"
                ]
            }
        },
        "/admin/v3/functions/{tenant}/{namespace}/{functionName}/{instanceId}/stop": {
            "post": {
                "operationId": "stopFunction_1",
                "parameters": [
                    {
                        "description": "The tenant of a Pulsar Function",
                        "in": "path",
                        "name": "tenant",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The namespace of a Pulsar Function",
                        "in": "path",
                        "name": "namespace",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The name of a Pulsar Function",
                        "in": "path",
                        "name": "functionName",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are stopped.)",
                        "in": "path",
                        "name": "instanceId",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Operation successful"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "404": {
                        "description": "The Pulsar Function does not exist"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "summary": "Stop an instance of a Pulsar Function",
                "tags": [
                    "functions"
                ]
            }
        }
    },
    "servers": [
        {
            "url": "http://localhost:8080"
        }
    ],
    "tags": [
        {
            "description": "Functions admin apis",
            "name": "functions"
        }
    ]
}
