TOOLRESULTS

toolresults.projects.getSettings

valid {
    input.ReqMap.ProjectID == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.create

enum_HistoryTestPlatform := [ "unknownPlatform", "android", "ios" ]

valid {
    input.Body.displayName == STRING
    input.Body.historyId == STRING
    input.Body.name == STRING
    input.Body.testPlatform == enum_HistoryTestPlatform[_]
    input.ReqMap.ProjectID == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.clusters.get

valid {
    input.ReqMap.clusterId == STRING
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.clusters.list

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.create

enum_ExecutionState := [ "unknownState", "pending", "inProgress", "complete" ]
enum_OutcomeSummary := [ "unset", "success", "failure", "inconclusive", "skipped", "flaky" ]

valid {
    input.Body.completionTime.nanos == INTEGER
    input.Body.completionTime.seconds == STRING
    input.Body.creationTime.nanos == INTEGER
    input.Body.creationTime.seconds == STRING
    input.Body.dimensionDefinitions[_].STRING == STRING
    input.Body.executionId == STRING
    input.Body.outcome.failureDetail.crashed == BOOLEAN
    input.Body.outcome.failureDetail.deviceOutOfMemory == BOOLEAN
    input.Body.outcome.failureDetail.failedRoboscript == BOOLEAN
    input.Body.outcome.failureDetail.notInstalled == BOOLEAN
    input.Body.outcome.failureDetail.otherNativeCrash == BOOLEAN
    input.Body.outcome.failureDetail.timedOut == BOOLEAN
    input.Body.outcome.failureDetail.unableToCrawl == BOOLEAN
    input.Body.outcome.inconclusiveDetail.abortedByUser == BOOLEAN
    input.Body.outcome.inconclusiveDetail.hasErrorLogs == BOOLEAN
    input.Body.outcome.inconclusiveDetail.infrastructureFailure == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleAppVersion == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleArchitecture == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleDevice == BOOLEAN
    input.Body.outcome.successDetail.otherNativeCrash == BOOLEAN
    input.Body.outcome.summary == enum_OutcomeSummary[_]
    input.Body.specification.androidTest.androidAppInfo.name == STRING
    input.Body.specification.androidTest.androidAppInfo.packageName == STRING
    input.Body.specification.androidTest.androidAppInfo.versionCode == STRING
    input.Body.specification.androidTest.androidAppInfo.versionName == STRING
    input.Body.specification.androidTest.androidInstrumentationTest.testPackageId == STRING
    input.Body.specification.androidTest.androidInstrumentationTest.testRunnerClass == STRING
    input.Body.specification.androidTest.androidInstrumentationTest.testTargets[_] == STRING
    input.Body.specification.androidTest.androidInstrumentationTest.useOrchestrator == BOOLEAN
    input.Body.specification.androidTest.androidRoboTest.appInitialActivity == STRING
    input.Body.specification.androidTest.androidRoboTest.bootstrapPackageId == STRING
    input.Body.specification.androidTest.androidRoboTest.bootstrapRunnerClass == STRING
    input.Body.specification.androidTest.androidRoboTest.maxDepth == INTEGER
    input.Body.specification.androidTest.androidRoboTest.maxSteps == INTEGER
    input.Body.specification.androidTest.androidTestLoop.STRING == STRING
    input.Body.specification.androidTest.testTimeout.nanos == INTEGER
    input.Body.specification.androidTest.testTimeout.seconds == STRING
    input.Body.specification.iosTest.iosAppInfo.name == STRING
    input.Body.specification.iosTest.iosRoboTest.STRING == STRING
    input.Body.specification.iosTest.iosTestLoop.bundleId == STRING
    input.Body.specification.iosTest.iosXcTest.bundleId == STRING
    input.Body.specification.iosTest.iosXcTest.xcodeVersion == STRING
    input.Body.specification.iosTest.testTimeout.nanos == INTEGER
    input.Body.specification.iosTest.testTimeout.seconds == STRING
    input.Body.state == enum_ExecutionState[_]
    input.Body.testExecutionMatrixId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.environments.get

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.environments.list

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.get

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.list

valid {
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.patch

enum_ExecutionState := [ "unknownState", "pending", "inProgress", "complete" ]
enum_OutcomeSummary := [ "unset", "success", "failure", "inconclusive", "skipped", "flaky" ]

valid {
    input.Body.completionTime.nanos == INTEGER
    input.Body.completionTime.seconds == STRING
    input.Body.creationTime.nanos == INTEGER
    input.Body.creationTime.seconds == STRING
    input.Body.dimensionDefinitions[_].STRING == STRING
    input.Body.executionId == STRING
    input.Body.outcome.failureDetail.crashed == BOOLEAN
    input.Body.outcome.failureDetail.deviceOutOfMemory == BOOLEAN
    input.Body.outcome.failureDetail.failedRoboscript == BOOLEAN
    input.Body.outcome.failureDetail.notInstalled == BOOLEAN
    input.Body.outcome.failureDetail.otherNativeCrash == BOOLEAN
    input.Body.outcome.failureDetail.timedOut == BOOLEAN
    input.Body.outcome.failureDetail.unableToCrawl == BOOLEAN
    input.Body.outcome.inconclusiveDetail.abortedByUser == BOOLEAN
    input.Body.outcome.inconclusiveDetail.hasErrorLogs == BOOLEAN
    input.Body.outcome.inconclusiveDetail.infrastructureFailure == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleAppVersion == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleArchitecture == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleDevice == BOOLEAN
    input.Body.outcome.successDetail.otherNativeCrash == BOOLEAN
    input.Body.outcome.summary == enum_OutcomeSummary[_]
    input.Body.specification.androidTest.androidAppInfo.name == STRING
    input.Body.specification.androidTest.androidAppInfo.packageName == STRING
    input.Body.specification.androidTest.androidAppInfo.versionCode == STRING
    input.Body.specification.androidTest.androidAppInfo.versionName == STRING
    input.Body.specification.androidTest.androidInstrumentationTest.testPackageId == STRING
    input.Body.specification.androidTest.androidInstrumentationTest.testRunnerClass == STRING
    input.Body.specification.androidTest.androidInstrumentationTest.testTargets[_] == STRING
    input.Body.specification.androidTest.androidInstrumentationTest.useOrchestrator == BOOLEAN
    input.Body.specification.androidTest.androidRoboTest.appInitialActivity == STRING
    input.Body.specification.androidTest.androidRoboTest.bootstrapPackageId == STRING
    input.Body.specification.androidTest.androidRoboTest.bootstrapRunnerClass == STRING
    input.Body.specification.androidTest.androidRoboTest.maxDepth == INTEGER
    input.Body.specification.androidTest.androidRoboTest.maxSteps == INTEGER
    input.Body.specification.androidTest.androidTestLoop.STRING == STRING
    input.Body.specification.androidTest.testTimeout.nanos == INTEGER
    input.Body.specification.androidTest.testTimeout.seconds == STRING
    input.Body.specification.iosTest.iosAppInfo.name == STRING
    input.Body.specification.iosTest.iosRoboTest.STRING == STRING
    input.Body.specification.iosTest.iosTestLoop.bundleId == STRING
    input.Body.specification.iosTest.iosXcTest.bundleId == STRING
    input.Body.specification.iosTest.iosXcTest.xcodeVersion == STRING
    input.Body.specification.iosTest.testTimeout.nanos == INTEGER
    input.Body.specification.iosTest.testTimeout.seconds == STRING
    input.Body.state == enum_ExecutionState[_]
    input.Body.testExecutionMatrixId == STRING
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.accessibilityClusters

valid {
    input.ReqMap.name == STRING
    input.Qs.locale == STRING
    input.ProviderMetadata.Region == STRING
}

toolresults.projects.histories.executions.steps.create

enum_IndividualOutcomeOutcomeSummary := [ "unset", "success", "failure", "inconclusive", "skipped", "flaky" ]
enum_OutcomeSummary := [ "unset", "success", "failure", "inconclusive", "skipped", "flaky" ]
enum_PrimaryStepRollUp := [ "unset", "success", "failure", "inconclusive", "skipped", "flaky" ]
enum_StepState := [ "unknownState", "pending", "inProgress", "complete" ]
enum_TestIssueCategory := [ "unspecifiedCategory", "common", "robo" ]
enum_TestIssueSeverity := [ "unspecifiedSeverity", "info", "suggestion", "warning", "severe" ]
enum_TestIssueType := [ "unspecifiedType", "fatalException", "nativeCrash", "anr", "unusedRoboDirective", "compatibleWithOrchestrator", "launcherActivityNotFound", "startActivityNotFound", "incompleteRoboScriptExecution", "completeRoboScriptExecution", "failedToInstall", "availableDeepLinks", "nonSdkApiUsageViolation", "nonSdkApiUsageReport", "encounteredNonAndroidUiWidgetScreen", "encounteredLoginScreen", "performedGoogleLogin", "iosException", "iosCrash", "performedMonkeyActions", "usedRoboDirective", "usedRoboIgnoreDirective", "insufficientCoverage", "inAppPurchases", "crashDialogError", "uiElementsTooDeep", "blankScreen", "overlappingUiElements", "unityException", "deviceOutOfMemory", "logcatCollectionError", "detectedAppSplashScreen", "assetIssue" ]

valid {
    input.Body.completionTime.nanos == INTEGER
    input.Body.completionTime.seconds == STRING
    input.Body.creationTime.nanos == INTEGER
    input.Body.creationTime.seconds == STRING
    input.Body.description == STRING
    input.Body.deviceUsageDuration.nanos == INTEGER
    input.Body.deviceUsageDuration.seconds == STRING
    input.Body.dimensionValue[_].key == STRING
    input.Body.dimensionValue[_].value == STRING
    input.Body.hasImages == BOOLEAN
    input.Body.labels[_].key == STRING
    input.Body.labels[_].value == STRING
    input.Body.multiStep.multistepNumber == INTEGER
    input.Body.multiStep.primaryStep.individualOutcome[_].multistepNumber == INTEGER
    input.Body.multiStep.primaryStep.individualOutcome[_].outcomeSummary == enum_IndividualOutcomeOutcomeSummary[_]
    input.Body.multiStep.primaryStep.individualOutcome[_].runDuration.nanos == INTEGER
    input.Body.multiStep.primaryStep.individualOutcome[_].runDuration.seconds == STRING
    input.Body.multiStep.primaryStep.individualOutcome[_].stepId == STRING
    input.Body.multiStep.primaryStep.rollUp == enum_PrimaryStepRollUp[_]
    input.Body.multiStep.primaryStepId == STRING
    input.Body.name == STRING
    input.Body.outcome.failureDetail.crashed == BOOLEAN
    input.Body.outcome.failureDetail.deviceOutOfMemory == BOOLEAN
    input.Body.outcome.failureDetail.failedRoboscript == BOOLEAN
    input.Body.outcome.failureDetail.notInstalled == BOOLEAN
    input.Body.outcome.failureDetail.otherNativeCrash == BOOLEAN
    input.Body.outcome.failureDetail.timedOut == BOOLEAN
    input.Body.outcome.failureDetail.unableToCrawl == BOOLEAN
    input.Body.outcome.inconclusiveDetail.abortedByUser == BOOLEAN
    input.Body.outcome.inconclusiveDetail.hasErrorLogs == BOOLEAN
    input.Body.outcome.inconclusiveDetail.infrastructureFailure == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleAppVersion == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleArchitecture == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleDevice == BOOLEAN
    input.Body.outcome.successDetail.otherNativeCrash == BOOLEAN
    input.Body.outcome.summary == enum_OutcomeSummary[_]
    input.Body.runDuration.nanos == INTEGER
    input.Body.runDuration.seconds == STRING
    input.Body.state == enum_StepState[_]
    input.Body.stepId == STRING
    input.Body.testExecutionStep.testIssues[_].category == enum_TestIssueCategory[_]
    input.Body.testExecutionStep.testIssues[_].errorMessage == STRING
    input.Body.testExecutionStep.testIssues[_].severity == enum_TestIssueSeverity[_]
    input.Body.testExecutionStep.testIssues[_].stackTrace.exception == STRING
    input.Body.testExecutionStep.testIssues[_].type == enum_TestIssueType[_]
    input.Body.testExecutionStep.testIssues[_].warning.typeUrl == STRING
    input.Body.testExecutionStep.testIssues[_].warning.value == STRING
    input.Body.testExecutionStep.testSuiteOverviews[_].elapsedTime.nanos == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].elapsedTime.seconds == STRING
    input.Body.testExecutionStep.testSuiteOverviews[_].errorCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].failureCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].flakyCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].name == STRING
    input.Body.testExecutionStep.testSuiteOverviews[_].skippedCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].totalCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].xmlSource.fileUri == STRING
    input.Body.testExecutionStep.testTiming.testProcessDuration.nanos == INTEGER
    input.Body.testExecutionStep.testTiming.testProcessDuration.seconds == STRING
    input.Body.testExecutionStep.toolExecution.commandLineArguments[_] == STRING
    input.Body.testExecutionStep.toolExecution.exitCode.number == INTEGER
    input.Body.testExecutionStep.toolExecution.toolLogs[_].fileUri == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].creationTime.nanos == INTEGER
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].creationTime.seconds == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].output.fileUri == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].testCase.className == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].testCase.name == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].testCase.testSuiteName == STRING
    input.Body.toolExecutionStep.toolExecution.commandLineArguments[_] == STRING
    input.Body.toolExecutionStep.toolExecution.exitCode.number == INTEGER
    input.Body.toolExecutionStep.toolExecution.toolLogs[_].fileUri == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].creationTime.nanos == INTEGER
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].creationTime.seconds == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].output.fileUri == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].testCase.className == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].testCase.name == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].testCase.testSuiteName == STRING
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.get

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.getPerfMetricsSummary

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.list

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.patch

enum_IndividualOutcomeOutcomeSummary := [ "unset", "success", "failure", "inconclusive", "skipped", "flaky" ]
enum_OutcomeSummary := [ "unset", "success", "failure", "inconclusive", "skipped", "flaky" ]
enum_PrimaryStepRollUp := [ "unset", "success", "failure", "inconclusive", "skipped", "flaky" ]
enum_StepState := [ "unknownState", "pending", "inProgress", "complete" ]
enum_TestIssueCategory := [ "unspecifiedCategory", "common", "robo" ]
enum_TestIssueSeverity := [ "unspecifiedSeverity", "info", "suggestion", "warning", "severe" ]
enum_TestIssueType := [ "unspecifiedType", "fatalException", "nativeCrash", "anr", "unusedRoboDirective", "compatibleWithOrchestrator", "launcherActivityNotFound", "startActivityNotFound", "incompleteRoboScriptExecution", "completeRoboScriptExecution", "failedToInstall", "availableDeepLinks", "nonSdkApiUsageViolation", "nonSdkApiUsageReport", "encounteredNonAndroidUiWidgetScreen", "encounteredLoginScreen", "performedGoogleLogin", "iosException", "iosCrash", "performedMonkeyActions", "usedRoboDirective", "usedRoboIgnoreDirective", "insufficientCoverage", "inAppPurchases", "crashDialogError", "uiElementsTooDeep", "blankScreen", "overlappingUiElements", "unityException", "deviceOutOfMemory", "logcatCollectionError", "detectedAppSplashScreen", "assetIssue" ]

valid {
    input.Body.completionTime.nanos == INTEGER
    input.Body.completionTime.seconds == STRING
    input.Body.creationTime.nanos == INTEGER
    input.Body.creationTime.seconds == STRING
    input.Body.description == STRING
    input.Body.deviceUsageDuration.nanos == INTEGER
    input.Body.deviceUsageDuration.seconds == STRING
    input.Body.dimensionValue[_].key == STRING
    input.Body.dimensionValue[_].value == STRING
    input.Body.hasImages == BOOLEAN
    input.Body.labels[_].key == STRING
    input.Body.labels[_].value == STRING
    input.Body.multiStep.multistepNumber == INTEGER
    input.Body.multiStep.primaryStep.individualOutcome[_].multistepNumber == INTEGER
    input.Body.multiStep.primaryStep.individualOutcome[_].outcomeSummary == enum_IndividualOutcomeOutcomeSummary[_]
    input.Body.multiStep.primaryStep.individualOutcome[_].runDuration.nanos == INTEGER
    input.Body.multiStep.primaryStep.individualOutcome[_].runDuration.seconds == STRING
    input.Body.multiStep.primaryStep.individualOutcome[_].stepId == STRING
    input.Body.multiStep.primaryStep.rollUp == enum_PrimaryStepRollUp[_]
    input.Body.multiStep.primaryStepId == STRING
    input.Body.name == STRING
    input.Body.outcome.failureDetail.crashed == BOOLEAN
    input.Body.outcome.failureDetail.deviceOutOfMemory == BOOLEAN
    input.Body.outcome.failureDetail.failedRoboscript == BOOLEAN
    input.Body.outcome.failureDetail.notInstalled == BOOLEAN
    input.Body.outcome.failureDetail.otherNativeCrash == BOOLEAN
    input.Body.outcome.failureDetail.timedOut == BOOLEAN
    input.Body.outcome.failureDetail.unableToCrawl == BOOLEAN
    input.Body.outcome.inconclusiveDetail.abortedByUser == BOOLEAN
    input.Body.outcome.inconclusiveDetail.hasErrorLogs == BOOLEAN
    input.Body.outcome.inconclusiveDetail.infrastructureFailure == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleAppVersion == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleArchitecture == BOOLEAN
    input.Body.outcome.skippedDetail.incompatibleDevice == BOOLEAN
    input.Body.outcome.successDetail.otherNativeCrash == BOOLEAN
    input.Body.outcome.summary == enum_OutcomeSummary[_]
    input.Body.runDuration.nanos == INTEGER
    input.Body.runDuration.seconds == STRING
    input.Body.state == enum_StepState[_]
    input.Body.stepId == STRING
    input.Body.testExecutionStep.testIssues[_].category == enum_TestIssueCategory[_]
    input.Body.testExecutionStep.testIssues[_].errorMessage == STRING
    input.Body.testExecutionStep.testIssues[_].severity == enum_TestIssueSeverity[_]
    input.Body.testExecutionStep.testIssues[_].stackTrace.exception == STRING
    input.Body.testExecutionStep.testIssues[_].type == enum_TestIssueType[_]
    input.Body.testExecutionStep.testIssues[_].warning.typeUrl == STRING
    input.Body.testExecutionStep.testIssues[_].warning.value == STRING
    input.Body.testExecutionStep.testSuiteOverviews[_].elapsedTime.nanos == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].elapsedTime.seconds == STRING
    input.Body.testExecutionStep.testSuiteOverviews[_].errorCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].failureCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].flakyCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].name == STRING
    input.Body.testExecutionStep.testSuiteOverviews[_].skippedCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].totalCount == INTEGER
    input.Body.testExecutionStep.testSuiteOverviews[_].xmlSource.fileUri == STRING
    input.Body.testExecutionStep.testTiming.testProcessDuration.nanos == INTEGER
    input.Body.testExecutionStep.testTiming.testProcessDuration.seconds == STRING
    input.Body.testExecutionStep.toolExecution.commandLineArguments[_] == STRING
    input.Body.testExecutionStep.toolExecution.exitCode.number == INTEGER
    input.Body.testExecutionStep.toolExecution.toolLogs[_].fileUri == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].creationTime.nanos == INTEGER
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].creationTime.seconds == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].output.fileUri == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].testCase.className == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].testCase.name == STRING
    input.Body.testExecutionStep.toolExecution.toolOutputs[_].testCase.testSuiteName == STRING
    input.Body.toolExecutionStep.toolExecution.commandLineArguments[_] == STRING
    input.Body.toolExecutionStep.toolExecution.exitCode.number == INTEGER
    input.Body.toolExecutionStep.toolExecution.toolLogs[_].fileUri == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].creationTime.nanos == INTEGER
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].creationTime.seconds == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].output.fileUri == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].testCase.className == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].testCase.name == STRING
    input.Body.toolExecutionStep.toolExecution.toolOutputs[_].testCase.testSuiteName == STRING
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.perfMetricsSummary.create

enum_PerfMetricsSummaryPerfMetrics := [ "perfMetricTypeUnspecified", "memory", "cpu", "network", "graphics" ]

valid {
    input.Body.appStartTime.fullyDrawnTime.nanos == INTEGER
    input.Body.appStartTime.fullyDrawnTime.seconds == STRING
    input.Body.appStartTime.initialDisplayTime.nanos == INTEGER
    input.Body.appStartTime.initialDisplayTime.seconds == STRING
    input.Body.executionId == STRING
    input.Body.graphicsStats.buckets[_].frameCount == STRING
    input.Body.graphicsStats.buckets[_].renderMillis == STRING
    input.Body.graphicsStats.highInputLatencyCount == STRING
    input.Body.graphicsStats.jankyFrames == STRING
    input.Body.graphicsStats.missedVsyncCount == STRING
    input.Body.graphicsStats.p50Millis == STRING
    input.Body.graphicsStats.p90Millis == STRING
    input.Body.graphicsStats.p95Millis == STRING
    input.Body.graphicsStats.p99Millis == STRING
    input.Body.graphicsStats.slowBitmapUploadCount == STRING
    input.Body.graphicsStats.slowDrawCount == STRING
    input.Body.graphicsStats.slowUiThreadCount == STRING
    input.Body.graphicsStats.totalFrames == STRING
    input.Body.historyId == STRING
    input.Body.perfEnvironment.cpuInfo.cpuProcessor == STRING
    input.Body.perfEnvironment.cpuInfo.cpuSpeedInGhz == NUMBER
    input.Body.perfEnvironment.cpuInfo.numberOfCores == INTEGER
    input.Body.perfEnvironment.memoryInfo.memoryCapInKibibyte == STRING
    input.Body.perfEnvironment.memoryInfo.memoryTotalInKibibyte == STRING
    input.Body.perfMetrics[_] == enum_PerfMetricsSummaryPerfMetrics[_]
    input.Body.projectId == STRING
    input.Body.stepId == STRING
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.perfSampleSeries.create

enum_BasicPerfSampleSeriesPerfMetricType := [ "perfMetricTypeUnspecified", "memory", "cpu", "network", "graphics" ]
enum_BasicPerfSampleSeriesPerfUnit := [ "perfUnitUnspecified", "kibibyte", "percent", "bytesPerSecond", "framesPerSecond", "byte" ]
enum_BasicPerfSampleSeriesSampleSeriesLabel := [ "sampleSeriesTypeUnspecified", "memoryRssPrivate", "memoryRssShared", "memoryRssTotal", "memoryTotal", "cpuUser", "cpuKernel", "cpuTotal", "ntBytesTransferred", "ntBytesReceived", "networkSent", "networkReceived", "graphicsFrameRate" ]

valid {
    input.Body.basicPerfSampleSeries.perfMetricType == enum_BasicPerfSampleSeriesPerfMetricType[_]
    input.Body.basicPerfSampleSeries.perfUnit == enum_BasicPerfSampleSeriesPerfUnit[_]
    input.Body.basicPerfSampleSeries.sampleSeriesLabel == enum_BasicPerfSampleSeriesSampleSeriesLabel[_]
    input.Body.executionId == STRING
    input.Body.historyId == STRING
    input.Body.projectId == STRING
    input.Body.sampleSeriesId == STRING
    input.Body.stepId == STRING
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.perfSampleSeries.get

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.sampleSeriesId == STRING
    input.ReqMap.stepId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.perfSampleSeries.list

enum_FilterParameter := [ "perfMetricTypeUnspecified", "memory", "cpu", "network", "graphics" ]

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.Qs.filter == enum_FilterParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate

valid {
    input.Body.perfSamples[_].sampleTime.nanos == INTEGER
    input.Body.perfSamples[_].sampleTime.seconds == STRING
    input.Body.perfSamples[_].value == NUMBER
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.sampleSeriesId == STRING
    input.ReqMap.stepId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.sampleSeriesId == STRING
    input.ReqMap.stepId == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.publishXunitXmlFiles

valid {
    input.Body.xunitXmlFiles[_].fileUri == STRING
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.testCases.get

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.ReqMap.testCaseId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.testCases.list

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.executions.steps.thumbnails.list

valid {
    input.ReqMap.executionId == STRING
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ReqMap.stepId == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.get

valid {
    input.ReqMap.historyId == STRING
    input.ReqMap.ProjectID == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.histories.list

valid {
    input.ReqMap.ProjectID == STRING
    input.Qs.filterByName == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

toolresults.projects.initializeSettings

valid {
    input.ReqMap.ProjectID == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}