[Streams] Terraform support POC#243796
Closed
rStelmach wants to merge 16 commits intoelastic:mainfrom
Closed
Conversation
Contributor
|
🤖 Jobs for this PR can be triggered through checkboxes. 🚧
ℹ️ To trigger the CI, please tick the checkbox below 👇
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DR
_ingest, and_groupare all strongly typed in the generated Go client (no moreinterface{}/json.RawMessagefor these parts).kibana.yamlfrom this branch and confirmed that a Terraform POC can use a client generated from it via a newelasticstack_kibana_streamresource.Background
interface{}/json.RawMessagein Go.Kibana: Streams + OAS changes (this PR)
Streamlang conditions
conditionSchemastays az.discriminatedUnion('type', ['filter','and','or','not','never','always'])and is tagged as@kbn/oas-component:StreamlangCondition.components.schemas.StreamlangConditionand rewrites recursive positions (and.items,or.items,not) to self‑$ref.kibana.yaml/ Go, all recursive condition slots areStreamlangCondition(And []StreamlangCondition,Or []StreamlangCondition,Not StreamlangCondition), notinterface{}.Streamlang steps
kinddiscriminator and are wrapped into aStreamlangStepunion, tagged as@kbn/oas-component:StreamlangStep.processing.steps.items(including nestedwhere.steps) to$ref: '#/components/schemas/StreamlangStep'.processing.stepsis[]StreamlangStepin Go, with proper union wrappers instead of[]interface{}.Ingest lifecycle
{ dsl: {...} } | { ilm: {...} } | { inherit: {} }) to atype‑tagged discriminated union.typefrom legacy keys on read so existing documents stay valid.ingest.lifecycleis a tagged union in OAS and a set of concrete structs in Go.GET/DELETE request bodies
isVoidRequestBodySchemato the router‑to‑OAS layer to detect thez.undefined()sentinel and dropoperation.requestBodyfor real body‑less GET/DELETE routes.GET /api/streams*andDELETE /api/streams*no longer have bogus request bodies, and the generated client drops the...JSONBody = interface{}aliases andWithBodyhelpers for those operations.Full OAS regeneration
server.oas.enabled, captured a clean Streams‑only snapshot (for linting) and then regenerated the full OAS tooas_docs/output/kibana.yaml.terraform's PR : elastic/terraform-provider-elasticstack#1473