Skip to content

Commit 63774cd

Browse files
committed
openapi: adding more info in x-state
1 parent d0fded3 commit 63774cd

File tree

5 files changed

+1543
-1220
lines changed

5 files changed

+1543
-1220
lines changed

compiler-rs/clients_schema_to_openapi/src/lib.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,18 +158,22 @@ pub fn availability_as_extensions(availabilities: &Option<Availabilities>) -> In
158158
// We may have several availabilities, but since generally exists only on stateful (stack)
159159
for (_, availability) in avails {
160160
if let Some(stability) = &availability.stability {
161+
let mut since_str = "".to_string();
162+
if let Some(since) = &availability.since {
163+
since_str = "; Added in ".to_string() + since;
164+
}
161165
match stability {
162166
Stability::Beta => {
163-
result.insert("x-beta".to_string(), serde_json::Value::Bool(true));
167+
let beta_since = "Beta".to_string() + &since_str;
168+
result.insert("x-state".to_string(), serde_json::Value::String(beta_since));
164169
}
165170
Stability::Experimental => {
166-
result.insert("x-state".to_string(), serde_json::Value::String("Technical preview".to_string()));
171+
let exp_since = "Technical preview".to_string() + &since_str;
172+
result.insert("x-state".to_string(), serde_json::Value::String(exp_since));
167173
}
168174
Stability::Stable => {
169-
if let Some(since) = &availability.since {
170-
let stable_since = "Added in ".to_string() + since;
171-
result.insert("x-state".to_string(), serde_json::Value::String(stable_since));
172-
}
175+
let stable_since = "Generally available".to_string() + &since_str;
176+
result.insert("x-state".to_string(), serde_json::Value::String(stable_since));
173177
}
174178
}
175179
}

compiler-rs/clients_schema_to_openapi/src/main.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,16 @@ mod tests {
151151
.run()
152152
}
153153

154+
#[test]
155+
fn test_stack() -> anyhow::Result<()> {
156+
Cli {
157+
schema: "../../output/schema/schema.json".into(),
158+
flavor: None,
159+
output: Some("../../output/openapi/elasticsearch-openapi.json".into()),
160+
}
161+
.run()
162+
}
163+
154164
#[test]
155165
fn test_serverless() -> anyhow::Result<()> {
156166
Cli {
Binary file not shown.

0 commit comments

Comments
 (0)