diff --git a/api/tests.yaml b/api/tests.yaml index 3a15a0d8da..3d63faed86 100644 --- a/api/tests.yaml +++ b/api/tests.yaml @@ -177,6 +177,8 @@ components: type: string value: type: string + error: + type: string metadata: type: object diff --git a/cli/openapi/model_test_run_outputs_inner.go b/cli/openapi/model_test_run_outputs_inner.go index 1731166f15..37a3a82331 100644 --- a/cli/openapi/model_test_run_outputs_inner.go +++ b/cli/openapi/model_test_run_outputs_inner.go @@ -22,6 +22,7 @@ type TestRunOutputsInner struct { Name *string `json:"name,omitempty"` SpanId *string `json:"spanId,omitempty"` Value *string `json:"value,omitempty"` + Error *string `json:"error,omitempty"` } // NewTestRunOutputsInner instantiates a new TestRunOutputsInner object @@ -137,6 +138,38 @@ func (o *TestRunOutputsInner) SetValue(v string) { o.Value = &v } +// GetError returns the Error field value if set, zero value otherwise. +func (o *TestRunOutputsInner) GetError() string { + if o == nil || isNil(o.Error) { + var ret string + return ret + } + return *o.Error +} + +// GetErrorOk returns a tuple with the Error field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *TestRunOutputsInner) GetErrorOk() (*string, bool) { + if o == nil || isNil(o.Error) { + return nil, false + } + return o.Error, true +} + +// HasError returns a boolean if a field has been set. +func (o *TestRunOutputsInner) HasError() bool { + if o != nil && !isNil(o.Error) { + return true + } + + return false +} + +// SetError gets a reference to the given string and assigns it to the Error field. +func (o *TestRunOutputsInner) SetError(v string) { + o.Error = &v +} + func (o TestRunOutputsInner) MarshalJSON() ([]byte, error) { toSerialize, err := o.ToMap() if err != nil { @@ -156,6 +189,9 @@ func (o TestRunOutputsInner) ToMap() (map[string]interface{}, error) { if !isNil(o.Value) { toSerialize["value"] = o.Value } + if !isNil(o.Error) { + toSerialize["error"] = o.Error + } return toSerialize, nil } diff --git a/server/executor/assertion_runner.go b/server/executor/assertion_runner.go index 870f4ed5ac..ab57d0eb98 100644 --- a/server/executor/assertion_runner.go +++ b/server/executor/assertion_runner.go @@ -253,7 +253,7 @@ func (e *defaultAssertionRunner) validateOutputResolution(ctx context.Context, r return nil } - anotherErr := e.eventEmitter.Emit(ctx, events.TestOutputGenerationWarning(request.Test.ID, request.Run.ID, outputName)) + anotherErr := e.eventEmitter.Emit(ctx, events.TestOutputGenerationWarning(request.Test.ID, request.Run.ID, outputModel.Error, outputName)) if anotherErr != nil { log.Printf("[AssertionRunner] Test %s Run %d: fail to emit TestOutputGenerationWarning event: %s\n", request.Test.ID, request.Run.ID, anotherErr.Error()) } diff --git a/server/executor/outputs_processor.go b/server/executor/outputs_processor.go index c4317b2b61..833e720b42 100644 --- a/server/executor/outputs_processor.go +++ b/server/executor/outputs_processor.go @@ -59,6 +59,21 @@ func outputProcessor(ctx context.Context, outputs maps.Ordered[string, model.Out } err = parsed.ForEach(func(key string, out parsedOutput) error { + if out.err != nil { + res, err = res.Add(key, model.RunOutput{ + Value: "", + SpanID: "", + Name: key, + Resolved: false, + Error: out.err, + }) + if err != nil { + return fmt.Errorf(`cannot process output "%s": %w`, key, err) + } + + return nil + } + spans := out.selector.Filter(tr) stores := append([]expression.DataStore{expression.MetaAttributesDataStore{SelectedSpans: spans}}, ds...) @@ -66,6 +81,7 @@ func outputProcessor(ctx context.Context, outputs maps.Ordered[string, model.Out value := "" spanId := "" resolved := false + var outputError error = nil spans. ForEach(func(_ int, span model.Span) bool { value = extractAttr(span, stores, out.expr) @@ -77,6 +93,7 @@ func outputProcessor(ctx context.Context, outputs maps.Ordered[string, model.Out OrEmpty(func() { value = extractAttr(model.Span{}, stores, out.expr) resolved = false + outputError = fmt.Errorf(`cannot find matching spans for output "%s"`, key) }) res, err = res.Add(key, model.RunOutput{ @@ -84,6 +101,7 @@ func outputProcessor(ctx context.Context, outputs maps.Ordered[string, model.Out SpanID: spanId, Name: key, Resolved: resolved, + Error: outputError, }) if err != nil { return fmt.Errorf(`cannot process output "%s": %w`, key, err) @@ -112,25 +130,31 @@ func extractAttr(span model.Span, ds []expression.DataStore, expr expression.Exp type parsedOutput struct { selector selectors.Selector expr expression.Expr + err error } func parseOutputs(outputs maps.Ordered[string, model.Output]) (maps.Ordered[string, parsedOutput], error) { var parsed maps.Ordered[string, parsedOutput] parseErr := outputs.ForEach(func(key string, out model.Output) error { + var selector selectors.Selector + var expr expression.Expr + var outputErr error = nil + expr, err := expression.Parse(out.Value) if err != nil { - return fmt.Errorf(`cannot parse output "%s" value "%s": %w`, key, out.Value, err) + outputErr = fmt.Errorf(`cannot parse output "%s" value "%s": %w`, key, out.Value, err) } - selector, err := selectors.New(string(out.Selector)) + selector, err = selectors.New(string(out.Selector)) if err != nil { - return fmt.Errorf(`cannot parse output "%s" selector "%s": %w`, key, string(out.Selector), err) + outputErr = fmt.Errorf(`cannot parse output "%s" selector "%s": %w`, key, string(out.Selector), err) } parsed, _ = parsed.Add(key, parsedOutput{ selector: selector, expr: expr, + err: outputErr, }) return nil }) diff --git a/server/http/mappings/tests.go b/server/http/mappings/tests.go index 404e9755e8..94805f4e04 100644 --- a/server/http/mappings/tests.go +++ b/server/http/mappings/tests.go @@ -325,6 +325,7 @@ func (m OpenAPI) RunOutputs(in maps.Ordered[string, model.RunOutput]) []openapi. Name: key, Value: val.Value, SpanId: val.SpanID, + Error: errToString(val.Error), }) return nil }) @@ -496,6 +497,7 @@ func (m Model) RunOutputs(in []openapi.TestRunOutputsInner) maps.Ordered[string, Value: output.Value, Name: output.Name, SpanID: output.SpanId, + Error: fmt.Errorf(output.Error), }) } diff --git a/server/model/events/events.go b/server/model/events/events.go index 3713b2cc7f..bbd7100923 100644 --- a/server/model/events/events.go +++ b/server/model/events/events.go @@ -307,14 +307,14 @@ func TraceStoppedInfo(testID id.ID, runID int) model.TestRunEvent { } } -func TestOutputGenerationWarning(testID id.ID, runID int, output string) model.TestRunEvent { +func TestOutputGenerationWarning(testID id.ID, runID int, err error, output string) model.TestRunEvent { return model.TestRunEvent{ TestID: testID, RunID: runID, Stage: model.StageTest, Type: "OUTPUT_GENERATION_WARNING", Title: fmt.Sprintf(`Output '%s' not generated`, output), - Description: fmt.Sprintf(`The value for the output '%s' could not be generated`, output), + Description: fmt.Sprintf(`The output '%s' returned an error. Error: %s`, output, err.Error()), CreatedAt: time.Now(), DataStoreConnection: model.ConnectionResult{}, Polling: model.PollingInfo{}, diff --git a/server/model/json.go b/server/model/json.go index 155a6ca89b..735feaf667 100644 --- a/server/model/json.go +++ b/server/model/json.go @@ -10,6 +10,45 @@ import ( "go.opentelemetry.io/otel/trace" ) +func (ro RunOutput) MarshalJSON() ([]byte, error) { + return json.Marshal(&struct { + Name string + Value string + SpanID string + Resolved bool + Error string + }{ + Name: ro.Name, + Value: ro.Value, + SpanID: ro.SpanID, + Resolved: ro.Resolved, + Error: errToString(ro.Error), + }) +} + +func (ro *RunOutput) UnmarshalJSON(data []byte) error { + aux := struct { + Name string + Value string + SpanID string + Resolved bool + Error string + }{} + if err := json.Unmarshal(data, &aux); err != nil { + return err + } + + ro.Name = aux.Name + ro.Value = aux.Value + ro.SpanID = aux.SpanID + ro.Resolved = aux.Resolved + if err := stringToErr(aux.Error); err != nil { + ro.Error = err + } + + return nil +} + func (sar SpanAssertionResult) MarshalJSON() ([]byte, error) { sid := "" if sar.SpanID != nil { diff --git a/server/model/tests.go b/server/model/tests.go index bf965a6b2a..ac8c3fcb80 100644 --- a/server/model/tests.go +++ b/server/model/tests.go @@ -123,6 +123,7 @@ type ( Value string SpanID string Resolved bool + Error error } AssertionResult struct { diff --git a/server/openapi/model_test_run_outputs_inner.go b/server/openapi/model_test_run_outputs_inner.go index e40cc35e4b..dcea4786db 100644 --- a/server/openapi/model_test_run_outputs_inner.go +++ b/server/openapi/model_test_run_outputs_inner.go @@ -15,6 +15,8 @@ type TestRunOutputsInner struct { SpanId string `json:"spanId,omitempty"` Value string `json:"value,omitempty"` + + Error string `json:"error,omitempty"` } // AssertTestRunOutputsInnerRequired checks if the required fields are not zero-ed diff --git a/web/src/components/TestOutput/TestOutput.styled.ts b/web/src/components/TestOutput/TestOutput.styled.ts index da9c841699..f199a544f7 100644 --- a/web/src/components/TestOutput/TestOutput.styled.ts +++ b/web/src/components/TestOutput/TestOutput.styled.ts @@ -1,4 +1,4 @@ -import {MoreOutlined} from '@ant-design/icons'; +import {InfoCircleFilled, MoreOutlined} from '@ant-design/icons'; import {Typography} from 'antd'; import styled from 'styled-components'; @@ -60,3 +60,7 @@ export const ActionsContainer = styled.div` display: flex; justify-content: flex-end; `; + +export const IconWarning = styled(InfoCircleFilled)` + color: ${({theme}) => theme.color.warningYellow}; +`; diff --git a/web/src/components/TestOutput/TestOutput.tsx b/web/src/components/TestOutput/TestOutput.tsx index e7af644b3d..d04efcd33f 100644 --- a/web/src/components/TestOutput/TestOutput.tsx +++ b/web/src/components/TestOutput/TestOutput.tsx @@ -1,4 +1,4 @@ -import {Tag} from 'antd'; +import {Tag, Tooltip} from 'antd'; import {useCallback} from 'react'; import AttributeValue from 'components/AttributeValue'; import {useTestOutput} from 'providers/TestOutput/TestOutput.provider'; @@ -18,7 +18,7 @@ interface IProps { const TestOutput = ({ index, - output: {id, name, isDeleted, isDraft, spanId, selector, value, valueRun, valueRunDraft}, + output: {id, name, isDeleted, isDraft, spanId, selector, value, valueRun, valueRunDraft, error}, output, onEdit, onDelete, @@ -75,6 +75,11 @@ const TestOutput = ({ )} + {error && ( + + + + )} diff --git a/web/src/models/TestOutput.model.ts b/web/src/models/TestOutput.model.ts index 431b574395..5b6ad3c6f7 100644 --- a/web/src/models/TestOutput.model.ts +++ b/web/src/models/TestOutput.model.ts @@ -11,6 +11,7 @@ type TestOutput = { valueRunDraft: string; id: number; spanId: string; + error: string; }; function TestOutput({name = '', selector = {}, value = ''}: TRawTestOutput, id = -1): TestOutput { @@ -24,6 +25,7 @@ function TestOutput({name = '', selector = {}, value = ''}: TRawTestOutput, id = valueRun: '', valueRunDraft: '', spanId: '', + error: '', }; } diff --git a/web/src/models/TestRunOutput.model.ts b/web/src/models/TestRunOutput.model.ts index 8954a5bfc4..23fd2ba9e5 100644 --- a/web/src/models/TestRunOutput.model.ts +++ b/web/src/models/TestRunOutput.model.ts @@ -4,14 +4,16 @@ export type TRawTestRunOutput = { name?: string; value?: string; spanId?: string; + error?: string; }; type TestRunOutput = Model; -const TestRunOutput = ({name = '', value = '', spanId = ''}: TRawTestRunOutput): TestRunOutput => { +const TestRunOutput = ({name = '', value = '', spanId = '', error = ''}: TRawTestRunOutput): TestRunOutput => { return { name, value, spanId, + error, }; }; diff --git a/web/src/redux/testOutputs/slice.ts b/web/src/redux/testOutputs/slice.ts index 65ce7feae7..ad0802888d 100644 --- a/web/src/redux/testOutputs/slice.ts +++ b/web/src/redux/testOutputs/slice.ts @@ -48,6 +48,7 @@ const testOutputsSlice = createSlice({ ...output, valueRun: runOutputs[index]?.value ?? '', spanId: runOutputs[index]?.spanId ?? '', + error: runOutputs[index]?.error ?? '', })); }, }, diff --git a/web/src/types/Generated.types.ts b/web/src/types/Generated.types.ts index e67498b458..5e9ad02fe9 100644 --- a/web/src/types/Generated.types.ts +++ b/web/src/types/Generated.types.ts @@ -239,20 +239,7 @@ export interface operations { }; /** get transactions */ getTransactions: { - parameters: { - query: { - /** indicates how many transactions can be returned by each page */ - take?: number; - /** indicates how many transactions will be skipped when paginating */ - skip?: number; - /** query to search transactions, based on transaction name and description */ - query?: string; - /** indicates the sort field for the transactions */ - sortBy?: "created" | "name" | "last_run"; - /** indicates the sort direction for the transactions */ - sortDirection?: "asc" | "desc"; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -288,11 +275,7 @@ export interface operations { }; /** get transaction */ getTransaction: { - parameters: { - path: { - transactionId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -306,11 +289,7 @@ export interface operations { }; /** update transaction action */ updateTransaction: { - parameters: { - path: { - transactionId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 204: never; @@ -325,11 +304,7 @@ export interface operations { }; /** delete a transaction */ deleteTransaction: { - parameters: { - path: { - transactionId: string; - }; - }; + parameters: {}; responses: { /** OK */ 204: never; @@ -337,12 +312,7 @@ export interface operations { }; /** get a transaction specific version */ getTransactionVersion: { - parameters: { - path: { - transactionId: string; - version: number; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -356,12 +326,7 @@ export interface operations { }; /** Get the transaction as an YAML file */ getTransactionVersionDefinitionFile: { - parameters: { - path: { - transactionId: string; - version: number; - }; - }; + parameters: {}; responses: { /** OK */ 200: { @@ -373,17 +338,7 @@ export interface operations { }; /** Get all runs from a particular transaction */ getTransactionRuns: { - parameters: { - path: { - transactionId: string; - }; - query: { - /** indicates how many results can be returned by each page */ - take?: number; - /** indicates how many results will be skipped when paginating */ - skip?: number; - }; - }; + parameters: {}; responses: { /** OK */ 200: { @@ -395,11 +350,7 @@ export interface operations { }; /** run a particular transaction */ runTransaction: { - parameters: { - path: { - transactionId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -416,12 +367,7 @@ export interface operations { }; /** Get a specific run from a particular transaction */ getTransactionRun: { - parameters: { - path: { - transactionId: string; - runId: number; - }; - }; + parameters: {}; responses: { /** OK */ 200: { @@ -435,12 +381,7 @@ export interface operations { }; /** Delete a specific run from a particular transaction */ deleteTransactionRun: { - parameters: { - path: { - transactionId: string; - runId: number; - }; - }; + parameters: {}; responses: { /** OK */ 204: never; @@ -450,20 +391,7 @@ export interface operations { }; /** get tests */ getTests: { - parameters: { - query: { - /** indicates how many tests can be returned by each page */ - take?: number; - /** indicates how many tests will be skipped when paginating */ - skip?: number; - /** query to search tests, based on test name and description */ - query?: string; - /** indicates the sort field for the tests */ - sortBy?: "created" | "name" | "last_run"; - /** indicates the sort direction for the tests */ - sortDirection?: "asc" | "desc"; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -499,11 +427,7 @@ export interface operations { }; /** get test */ getTest: { - parameters: { - path: { - testId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -517,11 +441,7 @@ export interface operations { }; /** update test action */ updateTest: { - parameters: { - path: { - testId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 204: never; @@ -536,11 +456,7 @@ export interface operations { }; /** delete a test */ deleteTest: { - parameters: { - path: { - testId: string; - }; - }; + parameters: {}; responses: { /** OK */ 204: never; @@ -548,17 +464,7 @@ export interface operations { }; /** get the runs from a particular test */ getTestRuns: { - parameters: { - path: { - testId: string; - }; - query: { - /** indicates how many results can be returned by each page */ - take?: number; - /** indicates how many results will be skipped when paginating */ - skip?: number; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -574,11 +480,7 @@ export interface operations { }; /** run a particular test */ runTest: { - parameters: { - path: { - testId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -601,15 +503,7 @@ export interface operations { }; /** get the spans ids that would be selected by a specific selector query */ getTestResultSelectedSpans: { - parameters: { - path: { - testId: string; - runId: string; - }; - query: { - query?: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -621,12 +515,7 @@ export interface operations { }; /** use this method to test a definition against an actual trace without creating a new version or persisting anything */ dryRunAssertion: { - parameters: { - path: { - testId: string; - runId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -643,12 +532,7 @@ export interface operations { }; /** rerun a test run */ rerunTestRun: { - parameters: { - path: { - testId: string; - runId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -660,12 +544,7 @@ export interface operations { }; /** get test run results in JUnit xml format */ getRunResultJUnit: { - parameters: { - path: { - testId: string; - runId: string; - }; - }; + parameters: {}; responses: { /** JUnit formatted file */ 200: { @@ -677,12 +556,7 @@ export interface operations { }; /** export test and test run information for debugging */ exportTestRun: { - parameters: { - path: { - testId: string; - runId: string; - }; - }; + parameters: {}; responses: { /** successfuly exported test and test run information */ 200: { @@ -710,12 +584,7 @@ export interface operations { }; /** get a particular test Run */ getTestRun: { - parameters: { - path: { - testId: string; - runId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -727,12 +596,7 @@ export interface operations { }; /** delete a test run */ deleteTestRun: { - parameters: { - path: { - testId: string; - runId: string; - }; - }; + parameters: {}; responses: { /** OK */ 204: never; @@ -740,11 +604,7 @@ export interface operations { }; /** Gets definition for a test */ getTestSpecs: { - parameters: { - path: { - testId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 201: { @@ -756,12 +616,7 @@ export interface operations { }; /** get a test specific version */ getTestVersion: { - parameters: { - path: { - testId: string; - version: number; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -775,12 +630,7 @@ export interface operations { }; /** Get the test definition as an YAML file */ getTestVersionDefinitionFile: { - parameters: { - path: { - testId: string; - version: number; - }; - }; + parameters: {}; responses: { /** OK */ 200: { @@ -792,12 +642,7 @@ export interface operations { }; /** stops the execution of a test run */ stopTestRun: { - parameters: { - path: { - testId: string; - runId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: unknown; @@ -807,12 +652,7 @@ export interface operations { }; /** get events from a test run */ getTestRunEvents: { - parameters: { - path: { - testId: string; - runId: number; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -824,20 +664,7 @@ export interface operations { }; /** Get Environments */ getEnvironments: { - parameters: { - query: { - /** indicates how many environments can be returned by each page */ - take?: number; - /** indicates how many environments will be skipped when paginating */ - skip?: number; - /** query to search environments, based on environments name and description */ - query?: string; - /** indicates the sort field for the environments */ - sortBy?: "created" | "name"; - /** indicates the sort direction for the environments */ - sortDirection?: "asc" | "desc"; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -954,20 +781,7 @@ export interface operations { }; /** get resources */ getResources: { - parameters: { - query: { - /** indicates how many transactions can be returned by each page */ - take?: number; - /** indicates how many transactions will be skipped when paginating */ - skip?: number; - /** query to search transactions, based on transaction name and description */ - query?: string; - /** indicates the sort field for the transactions */ - sortBy?: "created" | "name" | "last_run"; - /** indicates the sort direction for the transactions */ - sortDirection?: "asc" | "desc"; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -999,12 +813,7 @@ export interface operations { }; /** Get Tracetest configuration */ getConfiguration: { - parameters: { - path: { - /** ID of the configuration resource used on Tracetest. It should be set as 'current'. */ - configId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -1019,12 +828,7 @@ export interface operations { }; /** Update Tracetest configuration */ updateConfiguration: { - parameters: { - path: { - /** ID of the configuration resource used on Tracetest. It should be set as 'current'. */ - configId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -1045,12 +849,7 @@ export interface operations { }; /** Get a polling profile used on Tracetest to configure how to fetch traces in a test. */ getPollingProfile: { - parameters: { - path: { - /** ID of a polling profile used on Tracetest to configure how to fetch traces in a test. It should be set as 'current'. */ - pollingProfileId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -1067,12 +866,7 @@ export interface operations { }; /** Update a polling profile used on Tracetest to configure how to fetch traces in a test. */ updatePollingProfile: { - parameters: { - path: { - /** ID of a polling profile used on Tracetest to configure how to fetch traces in a test. It should be set as 'current'. */ - pollingProfileId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -1097,18 +891,7 @@ export interface operations { }; /** List demonstrations used on Tracetest as quick start examples. */ listDemos: { - parameters: { - query: { - /** Indicates the maximum number of demos that can be returned on this call. */ - take?: number; - /** Indicates how many demos will be skipped when paginating. */ - skip?: number; - /** Indicates the sort field for on which all demos will be sorted. */ - sortBy?: "type" | "enabled"; - /** Indicates the sort direction for the demos (ascending or descending). */ - sortDirection?: "asc" | "desc"; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -1151,12 +934,7 @@ export interface operations { }; /** Get a demonstration used on Tracetest as quick start examples. */ getDemo: { - parameters: { - path: { - /** ID of a demonstration used on Tracetest as quick start examples. */ - demoId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -1173,12 +951,7 @@ export interface operations { }; /** Update a demonstration used on Tracetest as quick start examples. */ updateDemo: { - parameters: { - path: { - /** ID of a demonstration used on Tracetest as quick start examples. */ - demoId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -1203,12 +976,7 @@ export interface operations { }; /** Delete a demonstration used on Tracetest as quick start examples. */ deleteDemo: { - parameters: { - path: { - /** ID of a demonstration used on Tracetest as quick start examples. */ - demoId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 204: never; @@ -1222,20 +990,7 @@ export interface operations { }; /** Get all Data Stores */ getDataStores: { - parameters: { - query: { - /** indicates how many data stores can be returned by each page */ - take?: number; - /** indicates how many data stores will be skipped when paginating */ - skip?: number; - /** query to search data stores, based on data store name */ - query?: string; - /** indicates the sort field for the data stores */ - sortBy?: "created" | "name"; - /** indicates the sort direction for the data stores */ - sortDirection?: "asc" | "desc"; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -1271,11 +1026,7 @@ export interface operations { }; /** Get a Data Store */ getDataStore: { - parameters: { - path: { - dataStoreId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 200: { @@ -1289,11 +1040,7 @@ export interface operations { }; /** Update a Data Store */ updateDataStore: { - parameters: { - path: { - dataStoreId: string; - }; - }; + parameters: {}; responses: { /** successful operation */ 204: never; @@ -1308,11 +1055,7 @@ export interface operations { }; /** Delete a Data Store */ deleteDataStore: { - parameters: { - path: { - dataStoreId: string; - }; - }; + parameters: {}; responses: { /** OK */ 204: never; @@ -1320,11 +1063,7 @@ export interface operations { }; /** Get the data store as an YAML file */ getDataStoreDefinitionFile: { - parameters: { - path: { - dataStoreId: string; - }; - }; + parameters: {}; responses: { /** OK */ 200: { @@ -1705,6 +1444,44 @@ export interface external { }; operations: {}; }; + "parameters.yaml": { + paths: {}; + components: { + parameters: { + /** @description id of the test */ + testId: string; + /** @description id of the run */ + runId: number; + /** @description version of the test */ + version: number; + /** @description id of the transaction */ + transactionId: string; + /** @description indicates how many resources can be returned by each page */ + take: number; + /** @description indicates how many resources will be skipped when paginating */ + skip: number; + /** @description query to search resources */ + query: string; + /** @description indicates the sort field for the resources */ + runnableResourceSortBy: "created" | "name" | "last_run"; + /** @description indicates the sort field for the resources */ + sortBy: "created" | "name"; + /** @description indicates the sort field for the resources */ + switchableResourceSortBy: "type" | "enabled"; + /** @description indicates the sort direction for the resources */ + sortDirection: "asc" | "desc"; + /** @description ID of the configuration resource used on Tracetest. It should be set as 'current' */ + configId: string; + /** @description ID of a demonstration used on Tracetest as quick start examples */ + demoId: string; + /** @description ID of a polling profile used on Tracetest to configure how to fetch traces in a test. It should be set as 'current' */ + pollingProfileId: string; + /** @description ID of a datastore used on Tracetest to configure how to fetch traces in a test */ + dataStoreId: string; + }; + }; + operations: {}; + }; "resources.yaml": { paths: {}; components: { @@ -1843,6 +1620,7 @@ export interface external { name?: string; spanId?: string; value?: string; + error?: string; }[]; metadata?: { [key: string]: string }; transactionId?: string;