File size: 3,538 Bytes
d8435ba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
use api::rest::models::{CollectionsResponse, HardwareUsage, VersionInfo};
use api::rest::schema::PointInsertOperations;
use api::rest::{
    FacetRequest, FacetResponse, QueryGroupsRequest, QueryRequest, QueryRequestBatch,
    QueryResponse, Record, ScoredPoint, SearchMatrixOffsetsResponse, SearchMatrixPairsResponse,
    SearchMatrixRequest, UpdateVectors,
};
use collection::operations::cluster_ops::ClusterOperations;
use collection::operations::consistency_params::ReadConsistency;
use collection::operations::payload_ops::{DeletePayload, SetPayload};
use collection::operations::point_ops::{PointsSelector, WriteOrdering};
use collection::operations::snapshot_ops::{
    ShardSnapshotRecover, SnapshotDescription, SnapshotRecover,
};
use collection::operations::types::{
    AliasDescription, CollectionClusterInfo, CollectionExistence, CollectionInfo,
    CollectionsAliasesResponse, CountRequest, CountResult, DiscoverRequest, DiscoverRequestBatch,
    GroupsResult, PointGroup, PointRequest, RecommendGroupsRequest, RecommendRequest,
    RecommendRequestBatch, ScrollRequest, ScrollResult, SearchGroupsRequest, SearchRequest,
    SearchRequestBatch, UpdateResult,
};
use collection::operations::vector_ops::DeleteVectors;
use schemars::gen::SchemaSettings;
use schemars::JsonSchema;
use serde::Serialize;
use storage::content_manager::collection_meta_ops::{
    ChangeAliasesOperation, CreateCollection, UpdateCollection,
};
use storage::types::ClusterStatus;

use crate::common::helpers::LocksOption;
use crate::common::points::{CreateFieldIndex, UpdateOperations};
use crate::common::telemetry::TelemetryData;

mod actix;
mod common;
mod settings;
mod tracing;

#[derive(Serialize, JsonSchema)]
struct AllDefinitions {
    a1: CollectionsResponse,
    a2: CollectionInfo,
    // a3: CollectionMetaOperations,
    a4: PointRequest,
    a5: Record,
    a6: SearchRequest,
    a7: ScoredPoint,
    a8: UpdateResult,
    // a9: CollectionUpdateOperations,
    aa: RecommendRequest,
    ab: ScrollRequest,
    ac: ScrollResult,
    ad: CreateCollection,
    ae: UpdateCollection,
    af: ChangeAliasesOperation,
    ag: CreateFieldIndex,
    ah: PointsSelector,
    ai: PointInsertOperations,
    aj: SetPayload,
    ak: DeletePayload,
    al: ClusterStatus,
    am: SnapshotDescription,
    an: CountRequest,
    ao: CountResult,
    ap: CollectionClusterInfo,
    aq: TelemetryData,
    ar: ClusterOperations,
    at: SearchRequestBatch,
    au: RecommendRequestBatch,
    av: LocksOption,
    aw: SnapshotRecover,
    ax: CollectionsAliasesResponse,
    ay: AliasDescription,
    az: WriteOrdering,
    b1: ReadConsistency,
    b2: UpdateVectors,
    b3: DeleteVectors,
    b4: PointGroup,
    b5: SearchGroupsRequest,
    b6: RecommendGroupsRequest,
    b7: GroupsResult,
    b8: UpdateOperations,
    b9: ShardSnapshotRecover,
    ba: DiscoverRequest,
    bb: DiscoverRequestBatch,
    bc: VersionInfo,
    bd: CollectionExistence,
    be: QueryRequest,
    bf: QueryRequestBatch,
    bg: QueryResponse,
    bh: QueryGroupsRequest,
    bi: SearchMatrixRequest,
    bj: SearchMatrixOffsetsResponse,
    bk: SearchMatrixPairsResponse,
    bl: FacetRequest,
    bm: FacetResponse,
    bn: HardwareUsage,
}

fn save_schema<T: JsonSchema>() {
    let settings = SchemaSettings::draft07();
    let gen = settings.into_generator();
    let schema = gen.into_root_schema_for::<T>();
    let schema_str = serde_json::to_string_pretty(&schema).unwrap();
    println!("{schema_str}")
}

fn main() {
    save_schema::<AllDefinitions>();
}