type HttpRequestLog { id: ID! url: String! method: HttpMethod! proto: String! headers: [HttpHeader!]! body: String timestamp: Time! response: HttpResponseLog } type HttpResponseLog { """ Will be the same ID as its related request ID. """ id: ID! proto: HttpProtocol! statusCode: Int! statusReason: String! body: String headers: [HttpHeader!]! } type HttpHeader { key: String! value: String! } type Project { id: ID! name: String! isActive: Boolean! } type ScopeRule { url: Regexp header: ScopeHeader body: Regexp } input ScopeRuleInput { url: Regexp header: ScopeHeaderInput body: Regexp } type ScopeHeader { key: Regexp value: Regexp } input ScopeHeaderInput { key: Regexp value: Regexp } type CloseProjectResult { success: Boolean! } type DeleteProjectResult { success: Boolean! } type ClearHTTPRequestLogResult { success: Boolean! } type DeleteSenderRequestsResult { success: Boolean! } input HttpRequestLogFilterInput { onlyInScope: Boolean searchExpression: String } type HttpRequestLogFilter { onlyInScope: Boolean! searchExpression: String } input SenderRequestInput { id: ID url: URL! method: HttpMethod proto: HttpProtocol headers: [HttpHeaderInput!] body: String } input HttpHeaderInput { key: String! value: String! } type SenderRequest { id: ID! sourceRequestLogID: ID url: URL! method: HttpMethod! proto: HttpProtocol! headers: [HttpHeader!] body: String timestamp: Time! response: HttpResponseLog } input SenderRequestFilterInput { onlyInScope: Boolean searchExpression: String } type SenderRequestFilter { onlyInScope: Boolean! searchExpression: String } type Query { httpRequestLog(id: ID!): HttpRequestLog httpRequestLogs: [HttpRequestLog!]! httpRequestLogFilter: HttpRequestLogFilter activeProject: Project projects: [Project!]! scope: [ScopeRule!]! senderRequest(id: ID!): SenderRequest senderRequests: [SenderRequest!]! } type Mutation { createProject(name: String!): Project openProject(id: ID!): Project closeProject: CloseProjectResult! deleteProject(id: ID!): DeleteProjectResult! clearHTTPRequestLog: ClearHTTPRequestLogResult! setScope(scope: [ScopeRuleInput!]!): [ScopeRule!]! setHttpRequestLogFilter( filter: HttpRequestLogFilterInput ): HttpRequestLogFilter setSenderRequestFilter(filter: SenderRequestFilterInput): SenderRequestFilter createOrUpdateSenderRequest(request: SenderRequestInput!): SenderRequest! createSenderRequestFromHttpRequestLog(id: ID!): SenderRequest! sendRequest(id: ID!): SenderRequest! deleteSenderRequests: DeleteSenderRequestsResult! } enum HttpMethod { GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH } enum HttpProtocol { HTTP1 HTTP2 } scalar Time scalar Regexp scalar URL