openapi: 3.0.1
info:
title: OpenMetadata APIs Agent Executions Search API
description: Common types and API definition for OpenMetadata
contact:
name: OpenMetadata
url: https://open-metadata.org
email: openmetadata-dev@googlegroups.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
version: '1.13'
servers:
- url: /api
description: Current Host
- url: http://localhost:8585/api
description: Endpoint URL
security:
- BearerAuth: []
tags:
- name: Search
description: APIs related to search and suggest.
paths:
/v1/search/aggregate:
get:
tags:
- Search
summary: Get aggregated fields
description: Get aggregated fields from entities.
operationId: getAggregateFields
parameters:
- name: index
in: query
schema:
type: string
default: table
- name: field
in: query
description: Field in an entity.
schema:
type: string
- name: value
in: query
description: value for searching in aggregation
schema:
type: string
default: ''
- name: sourceFields
in: query
description: List of fields to fetch from _source per bucket.
schema:
type: string
- name: q
in: query
description: 'Search Query Text, Pass *text* for substring match; Pass without wildcards for exact match.
1. For listing all tables or topics pass q=*
2. For search tables or topics pass q=*search_term*
3. For searching field names such as search by columnNames pass q=columnNames:address, for searching deleted entities, use q=deleted:true
4. For searching by tag names pass q=tags.tagFQN:user.email
5. When user selects a filter pass q=query_text AND tags.tagFQN:user.email AND platform:MYSQL
6. Search with multiple values of same filter q=tags.tagFQN:user.email AND tags.tagFQN:user.address
NOTE: logic operators such as AND, OR and NOT must be in uppercase '
required: true
schema:
type: string
- name: size
in: query
description: Size field to limit the no.of results returned, defaults to 10
schema:
type: integer
format: int32
default: 10
- name: deleted
in: query
schema:
type: boolean
default: false
- name: queryText
in: query
description: Free-text search query to scope aggregation results
schema:
type: string
responses:
'200':
description: Table Aggregate API
content:
application/json:
schema:
$ref: '#/components/schemas/Suggest'
post:
tags:
- Search
summary: Get aggregated Search Request
description: Get aggregated fields from entities.
operationId: aggregateSearchRequest
requestBody:
content:
'*/*':
schema:
$ref: '#/components/schemas/AggregationRequest'
responses:
'200':
description: Table Aggregate API
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
/v1/search/stats/orphan:
delete:
tags:
- Search
summary: Clean orphan indexes
description: Delete all orphan indexes (indexes with zero aliases) from the search cluster.
operationId: cleanOrphanIndexes
responses:
'200':
description: Cleanup result
content:
application/json:
schema:
$ref: '#/components/schemas/OrphanCleanupResponse'
'409':
description: Conflict - Search indexing is currently running
/v1/search/export:
get:
tags:
- Search
summary: Export search results as CSV (streaming)
description: Exports the current search results as a streaming CSV download. The response is streamed directly to the client without buffering the entire result set in memory.
operationId: exportSearchResults
parameters:
- name: q
in: query
description: Search Query Text
schema:
type: string
default: '*'
- name: index
in: query
description: ElasticSearch Index name, defaults to table
schema:
type: string
default: table
- name: deleted
in: query
description: Filter documents by deleted param. By default deleted is false
schema:
type: boolean
- name: query_filter
in: query
description: Elasticsearch query that will be combined with the query_string query generator from the `query` argument
schema:
type: string
- name: post_filter
in: query
description: Elasticsearch query that will be used as a post_filter
schema:
type: string
- name: sort_field
in: query
description: Sort the search results by field
schema:
type: string
default: _score
- name: sort_order
in: query
description: Sort order asc for ascending or desc for descending, defaults to desc
schema:
type: string
default: desc
- name: size
in: query
description: Maximum number of rows to export. When null, exports all matching results up to the hard cap.
schema:
type: integer
format: int32
- name: from
in: query
description: Starting offset for export. Use with size to export a specific page of results (e.g., from=30&size=15 for page 3).
schema:
type: integer
format: int32
default: 0
responses:
'200':
description: CSV file stream
content:
text/csv; charset=utf-8: {}
/v1/search/entityTypeCounts:
get:
tags:
- Search
summary: Get exact entity type counts
description: Get exact counts of entities by type for a given search query. This endpoint provides accurate counts when searching across all entity types.
operationId: getEntityTypeCounts
parameters:
- name: q
in: query
description: Search query text
required: true
schema:
type: string
- name: index
in: query
description: Index to search in (all, dataAsset, table, etc.)
schema:
type: string
default: dataAsset
- name: deleted
in: query
description: Filter documents by deleted param. By default deleted is false
schema:
type: boolean
- name: query_filter
in: query
description: Elasticsearch query that will be combined with the query_string query generator from the `query` argument
schema:
type: string
- name: post_filter
in: query
description: Elasticsearch query that will be used as a post_filter
schema:
type: string
responses:
'200':
description: Entity type counts response
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
/v1/search/stats:
get:
tags:
- Search
summary: Get search cluster statistics
description: Get statistics about the search cluster including indexes, shards, and orphan indexes.
operationId: getSearchStats
responses:
'200':
description: Search statistics
content:
application/json:
schema:
$ref: '#/components/schemas/SearchStatsResponse'
/v1/search/preview:
post:
tags:
- Search
summary: Preview Search Results
description: Preview search results based on provided SearchSettings without saving changes.
operationId: previewSearch
requestBody:
description: Preview request containing search settings
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewSearchRequest'
required: true
responses:
'200':
description: Search preview response
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
/v1/search/reindexEntities:
post:
tags:
- Search
summary: Only Reindex the selected entities in Elasticsearch.
description: 'Only Reindex the selected entities in Elasticsearch. Maximum 500 entities per request. Job timeout: 30 minutes.'
operationId: reindexOnlySelectedEntities.
parameters:
- name: timeoutMinutes
in: query
description: 'Job timeout in minutes (default: 30, max: 60)'
schema:
type: integer
format: int32
default: 5
requestBody:
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/EntityReference'
responses:
'200':
description: Reindex process started.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
'400':
description: Bad request - too many entities or invalid input.
/v1/search/query:
get:
tags:
- Search
summary: Search entities
description: Search entities using query text. Use query params `from` and `size` for pagination. Use `sort_field` to sort the results in `sort_order`.
operationId: searchEntitiesWithQuery
parameters:
- name: q
in: query
description: 'Search Query Text, Pass *text* for substring match; Pass without wildcards for exact match.
1. For listing all tables or topics pass q=*
2. For search tables or topics pass q=*search_term*
3. For searching field names such as search by columnNames pass q=columnNames:address , for searching deleted entities, use q=deleted:true
4. For searching by tag names pass q=tags.tagFQN:user.email
5. When user selects a filter pass q=query_text AND q=tags.tagFQN:user.email AND platform:MYSQL
6. Search with multiple values of same filter q=tags.tagFQN:user.email AND tags.tagFQN:user.address
7. Search by service version and type q=service.type:databaseService AND version:0.1
8. Search Tables with Specific Constraints q=tableConstraints.constraintType.keyword:PRIMARY_KEY AND NOT tier.tagFQN:Tier.Tier1
9. Search with owners q=owner.displayName.keyword:owner_name
NOTE: logic operators such as AND, OR and NOT must be in uppercase '
required: true
schema:
type: string
default: '*'
- name: index
in: query
description: ElasticSearch Index name, defaults to table_search_index
schema:
type: string
default: table
- name: deleted
in: query
description: Filter documents by deleted param. By default deleted is false
schema:
type: boolean
- name: from
in: query
description: From field to paginate the results, defaults to 0
schema:
type: integer
format: int32
default: 0
- name: size
in: query
description: Size field to limit the no.of results returned, defaults to 10
schema:
type: integer
format: int32
default: 10
- name: search_after
in: query
description: 'Pagination cursor. Repeat once per sort value: ?search_after=v1&search_after=v2. Each value carried as its own parameter so values containing '','' (e.g. a glossary term FQN) are safe.'
schema:
type: array
items:
type: string
- name: sort_field
in: query
description: Sort the search results by field, available fields to sort weekly_stats , daily_stats, monthly_stats, last_updated_timestamp
schema:
type: string
default: _score
- name: sort_order
in: query
description: Sort order asc for ascending or desc for descending, defaults to desc
schema:
type: string
default: desc
- name: track_total_hits
in: query
description: Track Total Hits
schema:
type: boolean
default: false
- name: query_filter
in: query
description: Elasticsearch query that will be combined with the query_string query generator from the `query` argument
schema:
type: string
- name: post_filter
in: query
description: Elasticsearch query that will be used as a post_filter
schema:
type: string
- name: fetch_source
in: query
description: Get document body for each hit
schema:
type: boolean
default: true
- name: include_source_fields
in: query
description: Get only selected fields of the document body for each hit. Empty value will return all fields
schema:
type: array
items:
type: string
- name: exclude_source_fields
in: query
description: Exclude specified fields from the document body for each hit. Use this to exclude heavy fields like 'columns' for better performance
schema:
type: array
items:
type: string
- name: getHierarchy
in: query
description: Fetch search results in hierarchical order of children elements. By default hierarchy is not fetched. Currently only supported for glossary_term_search_index.
schema:
type: boolean
default: false
- name: explain
in: query
description: Explain the results of the query. Defaults to false. Only for debugging purposes.
schema:
type: boolean
default: false
- name: include_aggregations
in: query
description: Include aggregations in the search response. Defaults to true. Set to false to skip aggregations for faster response times when only search results are needed.
schema:
type: boolean
default: true
responses:
'200':
description: search response
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
/v1/search/fieldQuery:
get:
tags:
- Search
summary: Search entities
operationId: searchEntitiesWithSpecificFieldAndValue
parameters:
- name: fieldName
in: query
description: field name
schema:
type: string
- name: fieldValue
in: query
description: field value
schema:
type: string
- name: index
in: query
description: Search Index name, defaults to table_search_index
schema:
type: string
default: table
- name: deleted
in: query
description: Filter documents by deleted param. By default deleted is false
schema:
type: boolean
default: false
- name: from
in: query
description: From field to paginate the results, defaults to 0
schema:
type: integer
format: int32
default: 0
- name: size
in: query
description: Size field to limit the no.of results returned, defaults to 10
schema:
type: integer
format: int32
default: 10
responses:
'200':
description: search response
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
/v1/search/sourceUrl:
get:
tags:
- Search
summary: Search entities
operationId: searchEntitiesWithSourceUrl
parameters:
- name: sourceUrl
in: query
description: source url
schema:
type: string
responses:
'200':
description: search response
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
/v1/search/get/{index}/doc/{id}:
get:
tags:
- Search
summary: Search entities in ES index with Id
operationId: searchEntityInEsIndexWithId
parameters:
- name: id
in: path
description: document Id
required: true
schema:
type: string
format: uuid
- name: index
in: path
description: Index Name
required: true
schema:
type: string
responses:
'200':
description: search response
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
/v1/search/nlq/query:
get:
tags:
- Search
summary: Search entities using Natural Language Query (NLQ)
description: Search entities using Natural Language Queries (NLQ) with full search capabilities.
operationId: searchEntitiesWithNLQ
parameters:
- name: q
in: query
description: NLQ query string in natural language
schema:
type: string
- name: index
in: query
description: ElasticSearch Index name, defaults to table_search_index
schema:
type: string
default: table
- name: deleted
in: query
description: Filter documents by deleted param. By default deleted is false
schema:
type: boolean
default: false
- name: from
in: query
description: From field to paginate the results, defaults to 0
schema:
type: integer
format: int32
default: 0
- name: size
in: query
description: Size field to limit the no.of results returned, defaults to 10
schema:
type: integer
format: int32
default: 10
- name: search_after
in: query
description: 'Pagination cursor. Repeat once per sort value: ?search_after=v1&search_after=v2.'
schema:
type: array
items:
type: string
- name: sort_field
in: query
description: Sort the search results by field
schema:
type: string
default: _score
- name: sort_order
in: query
description: Sort order asc for ascending or desc for descending, defaults to desc
schema:
type: string
default: desc
- name: track_total_hits
in: query
description: Track Total Hits
schema:
type: boolean
default: false
- name: query_filter
in: query
description: Additional filters to apply
schema:
type: string
- name: post_filter
in: query
description: Post-filters to apply
schema:
type: string
- name: fetch_source
in: query
description: Get document body for each hit
schema:
type: boolean
default: true
- name: include_source_fields
in: query
description: Get only selected fields of the document body
schema:
type: array
items:
type: string
- name: exclude_source_fields
in: query
description: Exclude specified fields from the document body for each hit
schema:
type: array
items:
type: string
- name: getHierarchy
in: query
description: Fetch results in hierarchical order
schema:
type: boolean
default: false
- name: explain
in: query
description: Explain the results of the query
schema:
type: boolean
default: false
responses:
'200':
description: NLQ search response
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
/v1/search/templates:
put:
tags:
- Search
summary: Sync all index templates
description: Create or update index templates for all entity types from indexMapping.json. Templates ensure proper mappings when ES/OS auto-creates indices.
operationId: syncAllIndexTemplates
responses:
'200':
description: Sync result
'403':
description: Admin only
/v1/search/templates/{entityType}:
put:
tags:
- Search
summary: Sync index template for a specific entity type
description: Create or update index template for a specific entity type from indexMapping.json.
operationId: syncIndexTemplateByEntityType
parameters:
- name: entityType
in: path
description: Entity type
required: true
schema:
type: string
responses:
'200':
description: Template synced
'400':
description: Invalid entity type
'403':
description: Admin only
components:
schemas:
TagLabelRecognizerMetadata:
required:
- recognizerId
- recognizerName
- score
type: object
properties:
recognizerId:
type: string
format: uuid
recognizerName:
type: string
score:
type: number
format: double
target:
type: string
enum:
- content
- column_name
patterns:
type: array
items:
$ref: '#/components/schemas/PatternMatch'
Range:
type: object
properties:
gt:
type: number
format: double
gte:
type: number
format: double
lt:
type: number
format: double
lte:
type: number
format: double
TitleSection:
type: object
properties:
title:
type: string
description:
type: string
order:
type: integer
format: int32
AllowedFieldValueBoostFields:
required:
- entityType
- fields
type: object
properties:
entityType:
type: string
fields:
type: array
items:
$ref: '#/components/schemas/Field__1'
ExtensionFieldGuidelines:
required:
- header
- sections
type: object
properties:
header:
type: string
sections:
type: array
items:
$ref: '#/components/schemas/GuidelineSection'
examples:
type: array
items:
$ref: '#/components/schemas/QueryExample'
FieldBoost:
required:
- field
type: object
properties:
field:
type: string
boost:
type: number
format: double
matchType:
type: string
enum:
- exact
- phrase
- fuzzy
- standard
CoverImage:
type: object
properties:
url:
type: string
position:
type: string
GlobalSettings:
type: object
properties:
enableAccessControl:
type: boolean
maxAggregateSize:
type: integer
format: int32
maxResultHits:
type: integer
format: int32
maxAnalyzedOffset:
type: integer
format: int32
aggregations:
type: array
items:
$ref: '#/components/schemas/Aggregation'
highlightFields:
type: array
items:
type: string
termBoosts:
type: array
items:
$ref: '#/components/schemas/TermBoost'
fieldValueBoosts:
type: array
items:
$ref: '#/components/schemas/FieldValueBoost'
keywordWeight:
type: number
format: double
semanticWeight:
type: number
format: double
AdditionalSettings:
type: object
PreviewSearchRequest:
required:
- index
- query
- searchSettings
type: object
properties:
query:
type: string
index:
type: string
searchSettings:
$ref: '#/components/schemas/SearchSettings'
from:
type: integer
format: int32
size:
type: integer
format: int32
sortField:
type: string
sortOrder:
type: string
enum:
- asc
- desc
trackTotalHits:
type: boolean
queryFilter:
type: string
postFilter:
type: string
fetchSource:
type: boolean
includeSourceFields:
type: array
items:
type: string
explain:
type: boolean
Aggregation:
required:
- name
- type
type: object
properties:
name:
type: string
type:
type: string
enum:
- terms
- range
- histogram
- date_histogram
- filters
- missing
- nested
- reverse_nested
- top_hits
- max
- min
- avg
- sum
- stats
field:
type: string
script:
type: string
AggregationRequest:
required:
- fieldName
type: object
properties:
query:
type: string
index:
type: string
fieldName:
type: string
fieldValue:
type: string
deleted:
type: boolean
size:
type: integer
format: int32
sourceFields:
type: array
items:
type: string
queryText:
type: string
topHits:
$ref: '#/components/schemas/TopHits'
SearchResponse:
type: object
SearchStatsResponse$OrphanIndex:
type: object
properties:
name:
type: string
sizeInBytes:
type: integer
format: int32
sizeFormatted:
type: string
SearchStatsResponse$IndexStats:
type: object
properties:
name:
type: string
documents:
type: integer
format: int32
primaryShards:
type: integer
format: int32
replicaShards:
type: integer
format: int32
sizeInBytes:
type: integer
format: int32
sizeFormatted:
type: string
health:
type: string
aliases:
type: array
items:
type: string
FieldValueBoost:
required:
- factor
- field
type: object
properties:
field:
type: string
factor:
type: number
format: double
modifier:
type: string
enum:
- none
- log
- log1p
- log2p
- ln
- ln1p
- ln2p
- square
- sqrt
- reciprocal
missing:
type: number
format: double
condition:
$ref: '#/components/schemas/Condition'
SearchSettings:
type: object
properties:
globalSettings:
$ref: '#/components/schemas/GlobalSettings'
assetTypeConfigurations:
type: array
items:
$ref: '#/components/schemas/AssetTypeConfiguration'
defaultConfiguration:
$ref: '#/components/schemas/AssetTypeConfiguration'
allowedFields:
type: array
items:
$ref: '#/components/schemas/AllowedSearchFields'
allowedFieldValueBoosts:
type: array
items:
$ref: '#/components/schemas/AllowedFieldValueBoostFields'
nlqConfiguration:
$ref: '#/components/schemas/NLQConfiguration'
QueryExample:
required:
- esQuery
- query
type: object
properties:
description:
type: string
query:
type: string
esQuery:
type: string
entityTypes:
type: array
items:
type: string
MatchTypeBoostMultipliers:
type: object
properties:
exactMatchMultiplier:
type: number
format: double
phraseMatchMultiplier:
type: number
format: double
fuzzyMatchMultiplier:
type: number
format: double
AllowedSearchFields:
required:
- entityType
- fields
type: object
properties:
entityType:
type: string
fields:
type: array
items:
$ref: '#/components/schemas/Field'
GuidelineSection:
required:
- guidelines
- title
type: object
properties:
title:
type: string
guidelines:
type: array
items:
type: string
Suggest:
type: object
properties:
completion:
type: boolean
phrase:
type: boolean
term:
type: boolean
TermBoost:
required:
- boost
- field
- value
type: object
properties:
field:
type: string
value:
type: string
boost:
type: number
format: double
AssetTypeConfiguration:
required:
- assetType
type: object
properties:
assetType:
type: string
searchFields:
type: array
items:
$ref: '#/components/schemas/FieldBoost'
highlightFields:
type: array
items:
type: string
aggregations:
type: array
items:
$ref: '#/components/schemas/Aggregation'
termBoosts:
type: array
items:
$ref: '#/components/schemas/TermBoost'
fieldValueBoosts:
type: array
items:
$ref: '#/components/schemas/FieldValueBoost'
scoreMode:
type: string
enum:
- multiply
- sum
- avg
- first
- max
- min
boostMode:
type: string
enum:
- multiply
- replace
- sum
- avg
- max
- min
additionalSettings:
$ref: '#/components/schemas/AdditionalSettings'
matchTypeBoostMultipliers:
$ref: '#/components/schemas/MatchTypeBoostMultipliers'
OrphanCleanupResponse:
type: object
properties:
deletedIndexes:
type: array
items:
type: string
deletedCount:
type: integer
format: int32
SearchStatsResponse:
type: object
properties:
clusterHealth:
type: string
totalIndexes:
type: integer
format: int32
totalDocuments:
type: integer
format: int32
totalSizeInBytes:
type: integer
format: int32
totalSizeFormatted:
type: string
totalPrimaryShards:
type: integer
format: int32
totalReplicaShards:
type: integer
format: int32
indexes:
type: array
items:
$ref: '#/components/schemas/SearchStatsResponse$IndexStats'
orphanIndexes:
type: array
items:
$ref: '#/components/schemas/SearchStatsResponse$OrphanIndex'
isSearchIndexingRunning:
type: boolean
expectedIndexCount:
type: integer
format: int32
missingIndexes:
type: array
items:
type: string
MappingConfiguration:
type: object
properties:
includeMappings:
type: boolean
mappingSection:
$ref: '#/components/schemas/TitleSection'
fieldInterpretations:
type: array
items:
$ref: '#/components/schemas/FieldInterpretation'
Style:
type: object
properties:
color:
type: string
iconURL:
type: string
coverImage:
$ref: '#/components/schemas/CoverImage'
TagLabel:
required:
- labelType
- source
- state
- tagFQN
type: object
properties:
tagFQN:
type: string
name:
type: string
displayName:
type: string
description:
type: string
style:
$ref: '#/components/schemas/Style'
source:
type: string
enum:
- Classification
- Glossary
labelType:
type: string
enum:
- Manual
- Propagated
- Automated
- Derived
- Generated
state:
type: string
enum:
- Suggested
- Confirmed
href:
type: string
format: uri
reason:
type: string
appliedAt:
type: string
format: date-time
appliedBy:
type: string
metadata:
$ref: '#/components/schemas/TagLabelMetadata'
PatternMatch:
required:
- name
- score
type: object
properties:
name:
type: string
regex:
type: string
score:
type: number
format: double
TagLabelMetadata:
type: object
properties:
recognizer:
$ref: '#/components/schemas/TagLabelRecognizerMetadata'
expiryDate:
type: integer
format: int64
TopHits:
type: object
properties:
size:
type: integer
format: int32
sortField:
type: string
sortOrder:
type: string
enum:
- asc
- desc
PromptSection:
required:
- content
- section
type: object
properties:
section:
type: string
content:
type: string
order:
type: integer
format: int32
NLQConfiguration:
type: object
properties:
promptTemplate:
type: string
globalInstructions:
type: array
items:
$ref: '#/components/schemas/PromptSection'
entitySpecificInstructions:
type: array
items:
$ref: '#/components/schemas/EntitySpecificInstruction'
examples:
type: array
items:
$ref: '#/components/schemas/QueryExample'
mappingConfiguration:
$ref: '#/components/schemas/MappingConfiguration'
extensionFieldGuidelines:
$ref: '#/components/schemas/ExtensionFieldGuidelines'
Field:
required:
- dataType
- name
type: object
properties:
name:
maxLength: 128
minLength: 1
type: string
displayName:
type: string
dataType:
type: string
enum:
- RECORD
- 'NULL'
- BOOLEAN
- INT
- LONG
- BYTES
- FLOAT
- DOUBLE
- TIMESTAMP
- TIMESTAMPZ
- TIME
- DATE
- STRING
- ARRAY
- MAP
- ENUM
- UNION
- FIXED
- ERROR
- UNKNOWN
dataTypeDisplay:
type: string
description:
type: string
fullyQualifiedName:
maxLength: 3072
minLength: 1
type: string
tags:
type: array
items:
$ref: '#/components/schemas/TagLabel'
children:
type: array
items:
$ref: '#/components/schemas/Field'
Condition:
type: object
properties:
range:
$ref: '#/components/schemas/Range'
FieldInterpretation:
required:
- explanation
- pattern
type: object
properties:
pattern:
type: string
explanation:
type: string
EntityReference:
required:
- id
- type
type: object
properties:
id:
type: string
format: uuid
type:
type: string
name:
type: string
fullyQualifiedName:
type: string
description:
type: string
displayName:
type: string
deleted:
type: boolean
inherited:
type: boolean
href:
type: string
format: uri
EntitySpecificInstruction:
required:
- entityType
- sections
type: object
properties:
entityType:
type: string
sections:
type: array
items:
$ref: '#/components/schemas/PromptSection'
Field__1:
required:
- description
- name
type: object
properties:
name:
type: string
description:
type: string
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT