tracing.projects.traces.batchWrite

enum_LinkType := [ "TYPE_UNSPECIFIED", "CHILD", "PARENT" ]
enum_NetworkEventType := [ "TYPE_UNSPECIFIED", "SENT", "RECV" ]

valid {
    input.Body.spans[_].displayName.truncatedCharacterCount == INTEGER
    input.Body.spans[_].displayName.value == STRING
    input.Body.spans[_].timeEvents.timeEvent[_].networkEvent.time == STRING
    input.Body.spans[_].timeEvents.timeEvent[_].networkEvent.type == enum_NetworkEventType[_]
    input.Body.spans[_].timeEvents.timeEvent[_].networkEvent.messageId == STRING
    input.Body.spans[_].timeEvents.timeEvent[_].networkEvent.messageSize == STRING
    input.Body.spans[_].timeEvents.timeEvent[_].annotation.description.truncatedCharacterCount == INTEGER
    input.Body.spans[_].timeEvents.timeEvent[_].annotation.description.value == STRING
    input.Body.spans[_].timeEvents.timeEvent[_].annotation.attributes.droppedAttributesCount == INTEGER
    input.Body.spans[_].timeEvents.timeEvent[_].annotation.attributes.attributeMap.STRING.intValue == STRING
    input.Body.spans[_].timeEvents.timeEvent[_].annotation.attributes.attributeMap.STRING.stringValue.truncatedCharacterCount == INTEGER
    input.Body.spans[_].timeEvents.timeEvent[_].annotation.attributes.attributeMap.STRING.stringValue.value == STRING
    input.Body.spans[_].timeEvents.timeEvent[_].annotation.attributes.attributeMap.STRING.boolValue == BOOLEAN
    input.Body.spans[_].timeEvents.timeEvent[_].time == STRING
    input.Body.spans[_].timeEvents.droppedNetworkEventsCount == INTEGER
    input.Body.spans[_].timeEvents.droppedAnnotationsCount == INTEGER
    input.Body.spans[_].status.details[_].STRING == ANY
    input.Body.spans[_].status.code == INTEGER
    input.Body.spans[_].status.message == STRING
    input.Body.spans[_].name == STRING
    input.Body.spans[_].stackTrace.stackTraceHashId == STRING
    input.Body.spans[_].stackTrace.stackFrames.droppedFramesCount == INTEGER
    input.Body.spans[_].stackTrace.stackFrames.frame[_].fileName.truncatedCharacterCount == INTEGER
    input.Body.spans[_].stackTrace.stackFrames.frame[_].fileName.value == STRING
    input.Body.spans[_].stackTrace.stackFrames.frame[_].sourceVersion.truncatedCharacterCount == INTEGER
    input.Body.spans[_].stackTrace.stackFrames.frame[_].sourceVersion.value == STRING
    input.Body.spans[_].stackTrace.stackFrames.frame[_].originalFunctionName.truncatedCharacterCount == INTEGER
    input.Body.spans[_].stackTrace.stackFrames.frame[_].originalFunctionName.value == STRING
    input.Body.spans[_].stackTrace.stackFrames.frame[_].functionName.truncatedCharacterCount == INTEGER
    input.Body.spans[_].stackTrace.stackFrames.frame[_].functionName.value == STRING
    input.Body.spans[_].stackTrace.stackFrames.frame[_].lineNumber == STRING
    input.Body.spans[_].stackTrace.stackFrames.frame[_].loadModule.module.truncatedCharacterCount == INTEGER
    input.Body.spans[_].stackTrace.stackFrames.frame[_].loadModule.module.value == STRING
    input.Body.spans[_].stackTrace.stackFrames.frame[_].loadModule.buildId.truncatedCharacterCount == INTEGER
    input.Body.spans[_].stackTrace.stackFrames.frame[_].loadModule.buildId.value == STRING
    input.Body.spans[_].stackTrace.stackFrames.frame[_].columnNumber == STRING
    input.Body.spans[_].links.link[_].traceId == STRING
    input.Body.spans[_].links.link[_].spanId == STRING
    input.Body.spans[_].links.link[_].type == enum_LinkType[_]
    input.Body.spans[_].links.droppedLinksCount == INTEGER
    input.Body.spans[_].attributes.droppedAttributesCount == INTEGER
    input.Body.spans[_].attributes.attributeMap.STRING.intValue == STRING
    input.Body.spans[_].attributes.attributeMap.STRING.stringValue.truncatedCharacterCount == INTEGER
    input.Body.spans[_].attributes.attributeMap.STRING.stringValue.value == STRING
    input.Body.spans[_].attributes.attributeMap.STRING.boolValue == BOOLEAN
    input.Body.spans[_].spanId == STRING
    input.Body.spans[_].parentSpanId == STRING
    input.Body.spans[_].endTime == STRING
    input.Body.spans[_].startTime == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

tracing.projects.traces.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.endTime == STRING
    input.Qs.pageToken == STRING
    input.Qs.startTime == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.orderBy == STRING
    input.ProviderMetadata.Region == STRING
}

tracing.projects.traces.listSpans

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tracing.projects.traces.spans.create

enum_LinkType := [ "TYPE_UNSPECIFIED", "CHILD", "PARENT" ]
enum_NetworkEventType := [ "TYPE_UNSPECIFIED", "SENT", "RECV" ]

valid {
    input.Body.displayName.truncatedCharacterCount == INTEGER
    input.Body.displayName.value == STRING
    input.Body.timeEvents.timeEvent[_].networkEvent.time == STRING
    input.Body.timeEvents.timeEvent[_].networkEvent.type == enum_NetworkEventType[_]
    input.Body.timeEvents.timeEvent[_].networkEvent.messageId == STRING
    input.Body.timeEvents.timeEvent[_].networkEvent.messageSize == STRING
    input.Body.timeEvents.timeEvent[_].annotation.description.truncatedCharacterCount == INTEGER
    input.Body.timeEvents.timeEvent[_].annotation.description.value == STRING
    input.Body.timeEvents.timeEvent[_].annotation.attributes.droppedAttributesCount == INTEGER
    input.Body.timeEvents.timeEvent[_].annotation.attributes.attributeMap.STRING.intValue == STRING
    input.Body.timeEvents.timeEvent[_].annotation.attributes.attributeMap.STRING.stringValue.truncatedCharacterCount == INTEGER
    input.Body.timeEvents.timeEvent[_].annotation.attributes.attributeMap.STRING.stringValue.value == STRING
    input.Body.timeEvents.timeEvent[_].annotation.attributes.attributeMap.STRING.boolValue == BOOLEAN
    input.Body.timeEvents.timeEvent[_].time == STRING
    input.Body.timeEvents.droppedNetworkEventsCount == INTEGER
    input.Body.timeEvents.droppedAnnotationsCount == INTEGER
    input.Body.status.details[_].STRING == ANY
    input.Body.status.code == INTEGER
    input.Body.status.message == STRING
    input.Body.name == STRING
    input.Body.stackTrace.stackTraceHashId == STRING
    input.Body.stackTrace.stackFrames.droppedFramesCount == INTEGER
    input.Body.stackTrace.stackFrames.frame[_].fileName.truncatedCharacterCount == INTEGER
    input.Body.stackTrace.stackFrames.frame[_].fileName.value == STRING
    input.Body.stackTrace.stackFrames.frame[_].sourceVersion.truncatedCharacterCount == INTEGER
    input.Body.stackTrace.stackFrames.frame[_].sourceVersion.value == STRING
    input.Body.stackTrace.stackFrames.frame[_].originalFunctionName.truncatedCharacterCount == INTEGER
    input.Body.stackTrace.stackFrames.frame[_].originalFunctionName.value == STRING
    input.Body.stackTrace.stackFrames.frame[_].functionName.truncatedCharacterCount == INTEGER
    input.Body.stackTrace.stackFrames.frame[_].functionName.value == STRING
    input.Body.stackTrace.stackFrames.frame[_].lineNumber == STRING
    input.Body.stackTrace.stackFrames.frame[_].loadModule.module.truncatedCharacterCount == INTEGER
    input.Body.stackTrace.stackFrames.frame[_].loadModule.module.value == STRING
    input.Body.stackTrace.stackFrames.frame[_].loadModule.buildId.truncatedCharacterCount == INTEGER
    input.Body.stackTrace.stackFrames.frame[_].loadModule.buildId.value == STRING
    input.Body.stackTrace.stackFrames.frame[_].columnNumber == STRING
    input.Body.links.link[_].traceId == STRING
    input.Body.links.link[_].spanId == STRING
    input.Body.links.link[_].type == enum_LinkType[_]
    input.Body.links.droppedLinksCount == INTEGER
    input.Body.attributes.droppedAttributesCount == INTEGER
    input.Body.attributes.attributeMap.STRING.intValue == STRING
    input.Body.attributes.attributeMap.STRING.stringValue.truncatedCharacterCount == INTEGER
    input.Body.attributes.attributeMap.STRING.stringValue.value == STRING
    input.Body.attributes.attributeMap.STRING.boolValue == BOOLEAN
    input.Body.spanId == STRING
    input.Body.parentSpanId == STRING
    input.Body.endTime == STRING
    input.Body.startTime == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}