{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ai-foundry/json-schema/azure-ai-foundry-vector-store-options-schema.json",
  "title": "VectorStoreOptions",
  "description": "Request object for creating a vector store.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_superseded/azure-ai-foundry-vector-stores-api-openapi.yml#/components/schemas/VectorStoreOptions",
  "type": "object",
  "properties": {
    "file_ids": {
      "type": "array",
      "description": "A list of file IDs that the vector store should use. Useful for tools like `file_search` that can access files.",
      "maxItems": 500,
      "items": {
        "type": "string"
      },
      "x-ms-client-name": "fileIds"
    },
    "name": {
      "type": "string",
      "description": "The name of the vector store."
    },
    "configuration": {
      "$ref": "#/$defs/VectorStoreConfiguration",
      "description": "The vector store configuration, used when vector store is created from Azure asset URIs.",
      "x-ms-client-name": "storeConfiguration"
    },
    "expires_after": {
      "$ref": "#/$defs/VectorStoreExpirationPolicy",
      "description": "Details on when this vector store expires",
      "x-ms-client-name": "expiresAfter"
    },
    "chunking_strategy": {
      "$ref": "#/$defs/VectorStoreChunkingStrategyRequest",
      "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. Only applicable if file_ids is non-empty.",
      "x-ms-client-name": "chunkingStrategy"
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ],
      "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$defs": {
    "VectorStoreChunkingStrategyRequest": {
      "type": "object",
      "description": "An abstract representation of a vector store chunking strategy configuration.",
      "properties": {
        "type": {
          "$ref": "#/$defs/VectorStoreChunkingStrategyRequestType",
          "description": "The object type."
        }
      },
      "required": [
        "type"
      ]
    },
    "VectorStoreChunkingStrategyRequestType": {
      "type": "string",
      "description": "Type of chunking strategy",
      "enum": [
        "auto",
        "static"
      ],
      "x-ms-enum": {
        "name": "VectorStoreChunkingStrategyRequestType",
        "modelAsString": true,
        "values": [
          {
            "name": "auto",
            "value": "auto"
          },
          {
            "name": "static",
            "value": "static"
          }
        ]
      }
    },
    "VectorStoreConfiguration": {
      "type": "object",
      "description": "Vector storage configuration is the list of data sources, used when multiple\nfiles can be used for the enterprise file search.",
      "properties": {
        "data_sources": {
          "type": "array",
          "description": "Data sources",
          "items": {
            "$ref": "#/$defs/VectorStoreDataSource"
          },
          "x-ms-client-name": "dataSources"
        }
      },
      "required": [
        "data_sources"
      ]
    },
    "VectorStoreDataSource": {
      "type": "object",
      "description": "The structure, containing Azure asset URI path and the asset type of the file used as a data source\nfor the enterprise file search.",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Asset URI.",
          "x-ms-client-name": "assetIdentifier"
        },
        "type": {
          "$ref": "#/$defs/VectorStoreDataSourceAssetType",
          "description": "The asset type",
          "x-ms-client-name": "assetType"
        }
      },
      "required": [
        "uri",
        "type"
      ]
    },
    "VectorStoreDataSourceAssetType": {
      "type": "string",
      "description": "Type of vector storage asset. Asset type may be a uri_asset, in this case it should contain asset URI ID,\nin the case of id_asset it should contain the data ID.",
      "enum": [
        "uri_asset",
        "id_asset"
      ],
      "x-ms-enum": {
        "name": "VectorStoreDataSourceAssetType",
        "modelAsString": true,
        "values": [
          {
            "name": "uri_asset",
            "value": "uri_asset",
            "description": "Azure URI"
          },
          {
            "name": "id_asset",
            "value": "id_asset",
            "description": "The data ID"
          }
        ]
      }
    },
    "VectorStoreExpirationPolicy": {
      "type": "object",
      "description": "The expiration policy for a vector store.",
      "properties": {
        "anchor": {
          "$ref": "#/$defs/VectorStoreExpirationPolicyAnchor",
          "description": "Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`."
        },
        "days": {
          "type": "integer",
          "format": "int32",
          "description": "The anchor timestamp after which the expiration policy applies.",
          "minimum": 1,
          "maximum": 365
        }
      },
      "required": [
        "anchor",
        "days"
      ]
    },
    "VectorStoreExpirationPolicyAnchor": {
      "type": "string",
      "description": "Describes the relationship between the days and the expiration of this vector store",
      "enum": [
        "last_active_at"
      ],
      "x-ms-enum": {
        "name": "VectorStoreExpirationPolicyAnchor",
        "modelAsString": true,
        "values": [
          {
            "name": "lastActiveAt",
            "value": "last_active_at",
            "description": "The expiration policy is based on the last time the vector store was active."
          }
        ]
      }
    }
  }
}