Kong · Schema

PartialVectordb

API GatewayAI GatewayAI ConnectivityAgent GatewayEvent GatewayMCP RegistryService MeshLLMKafkaKonnectOpen Source

Properties

Name Type Description
config object
created_at integer Unix epoch when the resource was created.
id string A string representing a UUID (universally unique identifier).
name string A unique string representing a UTF-8 encoded name.
tags array A set of strings representing tags.
type string
updated_at integer Unix epoch when the resource was last updated.
View JSON Schema on GitHub

JSON Schema

kong-partialvectordb-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/PartialVectordb",
  "title": "PartialVectordb",
  "type": "object",
  "properties": {
    "config": {
      "type": "object",
      "properties": {
        "dimensions": {
          "description": "the desired dimensionality for the vectors",
          "type": "integer"
        },
        "distance_metric": {
          "description": "the distance metric to use for vector searches",
          "type": "string",
          "enum": [
            "cosine",
            "euclidean"
          ]
        },
        "pgvector": {
          "type": "object",
          "properties": {
            "database": {
              "description": "the database of the pgvector database",
              "type": "string",
              "default": "kong-pgvector"
            },
            "host": {
              "description": "the host of the pgvector database",
              "type": "string",
              "default": "127.0.0.1"
            },
            "password": {
              "description": "the password of the pgvector database",
              "type": "string",
              "x-encrypted": true,
              "x-referenceable": true
            },
            "port": {
              "description": "the port of the pgvector database",
              "type": "integer",
              "default": 5432
            },
            "ssl": {
              "description": "whether to use ssl for the pgvector database",
              "type": "boolean",
              "default": false
            },
            "ssl_cert": {
              "description": "the path of ssl cert to use for the pgvector database",
              "type": "string"
            },
            "ssl_cert_key": {
              "description": "the path of ssl cert key to use for the pgvector database",
              "type": "string"
            },
            "ssl_required": {
              "description": "whether ssl is required for the pgvector database",
              "type": "boolean",
              "default": false
            },
            "ssl_verify": {
              "description": "whether to verify ssl for the pgvector database",
              "type": "boolean",
              "default": true
            },
            "ssl_version": {
              "description": "the ssl version to use for the pgvector database",
              "type": "string",
              "default": "tlsv1_2",
              "enum": [
                "any",
                "tlsv1_2",
                "tlsv1_3"
              ]
            },
            "timeout": {
              "description": "the timeout of the pgvector database",
              "type": "number",
              "default": 5000
            },
            "user": {
              "description": "the user of the pgvector database",
              "type": "string",
              "default": "postgres",
              "x-referenceable": true
            }
          }
        },
        "redis": {
          "type": "object",
          "properties": {
            "cloud_authentication": {
              "description": "Cloud auth related configs for connecting to a Cloud Provider's Redis instance.",
              "type": "object",
              "properties": {
                "auth_provider": {
                  "description": "Auth providers to be used to authenticate to a Cloud Provider's Redis instance.",
                  "type": "string",
                  "enum": [
                    "aws",
                    "azure",
                    "gcp"
                  ],
                  "x-referenceable": true
                },
                "aws_access_key_id": {
                  "description": "AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "aws_assume_role_arn": {
                  "description": "The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "aws_cache_name": {
                  "description": "The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`.",
                  "type": "string",
                  "x-referenceable": true
                },
                "aws_is_serverless": {
                  "description": "This flag specifies whether the cluster is serverless when auth_provider is set to `aws`.",
                  "type": "boolean",
                  "default": true
                },
                "aws_region": {
                  "description": "The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`.",
                  "type": "string",
                  "x-referenceable": true
                },
                "aws_role_session_name": {
                  "description": "The session name for the temporary credentials when assuming the IAM role.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "aws_secret_access_key": {
                  "description": "AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "azure_client_id": {
                  "description": "Azure Client ID to be used for authentication when `auth_provider` is set to `azure`.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "azure_client_secret": {
                  "description": "Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "azure_tenant_id": {
                  "description": "Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "gcp_service_account_json": {
                  "description": "GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                }
              }
            },
            "cluster_max_redirections": {
              "description": "Maximum retry attempts for redirection.",
              "type": "integer",
              "default": 5
            },
            "cluster_nodes": {
              "description": "Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.",
              "type": "array",
              "items": {
                "properties": {
                  "ip": {
                    "description": "A string representing a host name, such as example.com.",
                    "type": "string",
                    "default": "127.0.0.1"
                  },
                  "port": {
                    "description": "An integer representing a port number between 0 and 65535, inclusive.",
                    "type": "integer",
                    "default": 6379,
                    "maximum": 65535,
                    "minimum": 0
                  }
                },
                "type": "object"
              },
              "minLength": 1
            },
            "connect_timeout": {
              "description": "An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.",
              "type": "integer",
              "default": 2000,
              "maximum": 2147483646,
              "minimum": 0
            },
            "connection_is_proxied": {
              "description": "If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.",
              "type": "boolean",
              "default": false
            },
            "database": {
              "description": "Database to use for the Redis connection when using the `redis` strategy",
              "type": "integer",
              "default": 0
            },
            "host": {
              "description": "A string representing a host name, such as example.com.",
              "type": "string",
              "default": "127.0.0.1",
              "x-referenceable": true
            },
            "keepalive_backlog": {
              "description": "Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.",
              "type": "integer",
              "maximum": 2147483646,
              "minimum": 0
            },
            "keepalive_pool_size": {
              "description": "The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.",
              "type": "integer",
              "default": 256,
              "maximum": 2147483646,
              "minimum": 1
            },
            "password": {
              "description": "Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.",
              "type": "string",
              "x-encrypted": true,
              "x-referenceable": true
            },
            "port": {
              "description": "An integer representing a port number between 0 and 65535, inclusive.",
              "type": "integer",
              "default": 6379,
              "maximum": 65535,
              "minimum": 0,
              "x-referenceable": true
            },
            "read_timeout": {
              "description": "An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.",
              "type": "integer",
              "default": 2000,
              "maximum": 2147483646,
              "minimum": 0
            },
            "send_timeout": {
              "description": "An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.",
              "type": "integer",
              "default": 2000,
              "maximum": 2147483646,
              "minimum": 0
            },
            "sentinel_master": {
              "description": "Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.",
              "type": "string"
            },
            "sentinel_nodes": {
              "description": "Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.",
              "type": "array",
              "items": {
                "properties": {
                  "host": {
                    "description": "A string representing a host name, such as example.com.",
                    "type": "string",
                    "default": "127.0.0.1"
                  },
                  "port": {
                    "description": "An integer representing a port number between 0 and 65535, inclusive.",
                    "type": "integer",
                    "default": 6379,
                    "maximum": 65535,
                    "minimum": 0
                  }
                },
                "type": "object"
              },
              "minLength": 1
            },
            "sentinel_password": {
              "description": "Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.",
              "type": "string",
              "x-encrypted": true,
              "x-referenceable": true
            },
            "sentinel_role": {
              "description": "Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.",
              "type": "string",
              "enum": [
                "any",
                "master",
                "slave"
              ]
            },
            "sentinel_username": {
              "description": "Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+.",
              "type": "string",
              "x-referenceable": true
            },
            "server_name": {
              "description": "A string representing an SNI (server name indication) value for TLS.",
              "type": "string",
              "x-referenceable": true
            },
            "ssl": {
              "description": "If set to true, uses SSL to connect to Redis.",
              "type": "boolean",
              "default": false
            },
            "ssl_verify": {
              "description": "If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.",
              "type": "boolean",
              "default": true
            },
            "username": {
              "description": "Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.",
              "type": "string",
              "x-referenceable": true
            }
          }
        },
        "strategy": {
          "description": "which vector database driver to use",
          "type": "string",
          "enum": [
            "pgvector",
            "redis"
          ]
        },
        "threshold": {
          "description": "the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar.",
          "type": "number"
        }
      },
      "required": [
        "dimensions",
        "distance_metric",
        "strategy"
      ]
    },
    "created_at": {
      "description": "Unix epoch when the resource was created.",
      "type": "integer",
      "nullable": true
    },
    "id": {
      "description": "A string representing a UUID (universally unique identifier).",
      "type": "string",
      "nullable": true
    },
    "name": {
      "description": "A unique string representing a UTF-8 encoded name.",
      "type": "string",
      "nullable": true
    },
    "tags": {
      "description": "A set of strings representing tags.",
      "type": "array",
      "items": {
        "description": "A string representing a tag.",
        "type": "string"
      },
      "nullable": true
    },
    "type": {
      "type": "string",
      "const": "vectordb",
      "x-terraform-transform-const": true
    },
    "updated_at": {
      "description": "Unix epoch when the resource was last updated.",
      "type": "integer",
      "nullable": true
    }
  },
  "example": {
    "config": {
      "dimensions": 1536,
      "distance_metric": "cosine",
      "pgvector": {
        "database": "kong-pgvector",
        "host": "127.0.0.1",
        "password": "password",
        "port": 5432,
        "user": "postgres"
      },
      "strategy": "pgvector"
    },
    "type": "vectordb"
  },
  "additionalProperties": false,
  "required": [
    "type",
    "config"
  ]
}